Utilidades: Scripts com Powershell

Subscribe to my newsletter and never miss my upcoming articles

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

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

Set-ExecutionPolicy Unrestricted

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
}

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
}

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

}

Validar Acesso ao Ip:Porta

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

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"
}

Créditos

Photo by Pakata Goh on Unsplash

No Comments Yet