PowerShell to według Microsoftu potężne narzędzie do automatyzacji zadań administracyjnych. Poniżej 20 przydatnych skryptów, które potencjalnie mogą ułatwić zarządzanie systemem Windows — zarówno w sieci domowej, jak i w małej firmie.
Skrypty systemowe
# 1. Sprawdź zajętość dysków
Get-PSDrive -PSProvider FileSystem | Select-Object Name,
@{N="Użyte GB";E={[math]::Round($_.Used/1GB,1)}},
@{N="Wolne GB";E={[math]::Round($_.Free/1GB,1)}}
# 2. Lista procesów > 100 MB RAM
Get-Process | Where-Object WorkingSet64 -gt 100MB |
Sort-Object WorkingSet64 -Descending |
Select-Object Name, @{N="RAM MB";E={[math]::Round($_.WorkingSet64/1MB,1)}}
# 3. Zatrzymane usługi (które powinny działać)
Get-Service | Where-Object {$_.StartType -eq "Automatic" -and $_.Status -eq "Stopped"}
# 4. Ostatnie błędy w Event Log
Get-EventLog -LogName System -EntryType Error -Newest 20 |
Select-Object TimeGenerated, Source, Message
Skrypty sieciowe
# 5. Skanuj sieć lokalną (ping sweep)
1..254 | ForEach-Object {
$ip = "192.168.1.$_"
if (Test-Connection $ip -Count 1 -Quiet) {
Write-Host "$ip jest aktywny" -ForegroundColor Green
}
}
# 6. Sprawdź otwarte porty na hoście
1..1024 | ForEach-Object {
$port = $_
$tcp = New-Object System.Net.Sockets.TcpClient
try {
$tcp.Connect("192.168.1.1", $port)
Write-Host "Port $port OTWARTY" -ForegroundColor Green
$tcp.Close()
} catch {}
}
Skrypty zarządzania plikami
# 7. Usuń pliki starsze niż 30 dni
Get-ChildItem "C:Temp" -Recurse |
Where-Object {$_.LastWriteTime -lt (Get-Date).AddDays(-30)} |
Remove-Item -Force
# 8. Znajdź duplikaty plików
Get-ChildItem "D:Dokumenty" -Recurse -File |
Group-Object Length | Where-Object Count -gt 1 |
ForEach-Object { $_.Group | Select-Object FullName, Length }
⚠️ Nota prawna: Artykuł ma charakter wyłącznie informacyjny. Redakcja iPraktyk.pl nie ponosi odpowiedzialności za działania podjęte na podstawie zawartych tu treści. Wszelkie czynności wykonujesz na własne ryzyko i odpowiedzialność. Przed wdrożeniem rozwiązań produkcyjnych skonsultuj się ze specjalistą.