DEV Community

Anderson Braz
Anderson Braz

Posted on • Originally published at andersonbraz.com on

Utilidades: Scripts com Powershell

Atuando na sustentação ou operação de aplicações para ambiente de produção. Sempre nos deparamos com situações corriqueiras que demandam a necessidade de tratarmos incidentes ou atividades de trabalho em curto espaço de tempo.

Tratando-se de ambientes Windows eu costumo lançar mão de algumas rotinas utilizando o Powershell. E aqui gostaria de compartilhar alguns dos meus procedimentos mais rotineiros.

Verificação de Políticas de Execução

Get-ExecutionPolicy -List

Enter fullscreen mode Exit fullscreen mode

Habilitando Políticas de Execução sem Restrições

Set-ExecutionPolicy Unrestricted

Enter fullscreen mode Exit fullscreen mode

Exclusão de Arquivos

Script para apagar arquivos temporários, ou com uma determinada extensão, de um determinado diretório especifico.


$FilePath = "C:\Windows\Temp\*"
$KeyWord = "*.tmp"
$Files = Get-ChildItem -Path $FilePath -Include $KeyWord -Recurse

ForEach($File In $Files)
{
    $Item = $File.FullName
    Write-Output $Item
    Remove-Item $Item -Force
}

Enter fullscreen mode Exit fullscreen mode

Exclusão de Diretórios

Script para apagar diretórios que contenham uma determinada palavra num determinado local especifico.


$FolderPath = "C:\Temp\"
$KeyWord = "*Quarantine*"
$Files = Get-ChildItem -Path $FolderPath -dir -r | Where-Object {$_.name -like $KeyWord}

ForEach($Folder In $Folders)
{
    $Item = $Folder.FullName
    Write-Output $Item
    Remove-Item $Item -Force -Recurse
}

Enter fullscreen mode Exit fullscreen mode

Compactação de Arquivos (7zip)


$KeyWord = "*.log"
$LogPath = "E:\Logs\W3SVC*\"
$Limit = (Get-Date).AddDays(-150)

$Files = Get-ChildItem -Path $LogPath -Include $KeyWord -Recurse | Where CreationTime -lt $Limit
ForEach ($File In $Files) 
{
    $Item = $File.FullName
    Write-Output "File Found: " $Item 
    & "E:\Program Files\7-Zip\7z.exe" a -tzip ($Item + ".zip") $Item

}

Enter fullscreen mode Exit fullscreen mode

Validar Acesso ao Ip:Porta

New-Object System.Net.Sockets.TcpClient("192.168.0.15", 80)

Enter fullscreen mode Exit fullscreen mode

Verificar Tamanho de Diretórios

$Path = "C:\inetpub\wwwroot\andersonbraz\"
$colItems = Get-ChildItem $Path | Where-Object {$_.PSIsContainer -eq $true} | Sort-Object

ForEach ($i In $colItems)
{
    $subFolderItems = Get-ChildItem $i.FullName -Recurse -Force | Where-Object {$_.PSIsContainer -eq $false} | Measure-Object -Property Length -Sum | Select-Object Sum
    $i.FullName + " -- " + "{0:N2}" -f ($subFolderItems.sum / 1MB) + " MB"
}

Enter fullscreen mode Exit fullscreen mode

Créditos

Photo by Pakata Goh on Unsplash

AWS Q Developer image

Your AI Code Assistant

Ask anything about your entire project, code and get answers and even architecture diagrams. Built to handle large projects, Amazon Q Developer works alongside you from idea to production code.

Start free in your IDE

Top comments (0)

AWS GenAI LIVE image

Real challenges. Real solutions. Real talk.

From technical discussions to philosophical debates, AWS and AWS Partners examine the impact and evolution of gen AI.

Learn more

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay