Hľadáš rýchly, spoľahlivý a opakovateľný spôsob, ako spravovať Windows? Tieto overené powershell skripty odstránia bezcieľne klikanie v GUI a zrýchlia ti prácu na každom stroji. Všetko je pripravené na kopírovanie a spustenie, s krátkym vysvetlením, prečo a kedy daný príkaz použiť.
Ako tento článok používať
Všetky ukážky sú pripravené tak, aby šli kopírovať & spustiť v PowerShelli. Pri akciách, ktoré menia systém, uvádzam, že vyžadujú Run as Administrator. Preferujem moderné cmdlety (CIM, Get‑WinEvent) a bezpečné postupy.
Tip na štart: Vytvor si priečinok C:\Scripts, skripty ulož do .ps1 a tie najčastejšie si naplánuj cez Plánovač úloh.
Rýchly štart: bezpečnosť a príprava
- Spúšťanie skriptov iba počas testu
|
1 |
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass -Force |
- Povolenie vzdialenej správy (lab/test)
|
1 |
Enable-PSRemoting -Force |
- Aktualizácia PowerShellGet & NuGet
|
1 2 |
Install-PackageProvider -Name NuGet -Force Set-PSRepository -Name 'PSGallery' -InstallationPolicy Trusted |
30 skriptov podľa kategórií
Inventár a audit
1) Rýchly technický inventár PC
|
1 |
Get-ComputerInfo | Select-Object OsName, OsVersion, CsModel, CsManufacturer, CsTotalPhysicalMemory, BiosVersion |
Prehľad OS, modelu, výrobcu, RAM a BIOS.
2) BIOS informácie cez CIM
|
1 |
Get-CimInstance -ClassName Win32_BIOS | Select-Object SMBIOSBIOSVersion, Manufacturer, ReleaseDate |
Preferuj CIM pred zastaraným Get-WmiObject.
3) RAM moduly pre audit/upgrade
|
1 2 |
Get-CimInstance -ClassName Win32_PhysicalMemory | Select-Object Manufacturer, Speed, @{n='CapacityGB';e={[math]::Round($_.Capacity/1GB,2)}} |
4) Nainštalovaný softvér (bezpečne cez Register)
|
1 2 3 4 5 |
$paths = 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall', 'HKLM:\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall' Get-ChildItem $paths | ForEach-Object { Get-ItemProperty $_.PsPath | Select-Object DisplayName, DisplayVersion, Publisher, InstallDate } | Where-Object DisplayName | Sort-Object DisplayName |
Vyhni sa Win32_Product – môže spúšťať MSI repair.
5) Posledné hotfixy / patch level
|
1 |
Get-HotFix | Select-Object Description, HotFixID, InstalledOn | Sort-Object InstalledOn -Descending |
Sieť a konektivita
6) IP konfigurácia všetkých rozhraní
|
1 |
Get-NetIPAddress | Select-Object InterfaceAlias, IPAddress, PrefixLength, AddressFamily |
7) Test dostupnosti (ping)
|
1 |
Test-Connection -TargetName 192.168.1.1 -Count 4 |
8) Otvorené TCP spojenia
|
1 |
Get-NetTCPConnection | Select-Object LocalAddress, LocalPort, RemoteAddress, RemotePort, State |
9) Nastavenie statickej IP a DNS (Admin)
|
1 2 |
New-NetIPAddress -InterfaceAlias 'Ethernet' -IPAddress 192.168.1.100 -PrefixLength 24 -DefaultGateway 192.168.1.1 Set-DnsClientServerAddress -InterfaceAlias 'Ethernet' -ServerAddresses 1.1.1.1,8.8.8.8 |
10) HTTP health‑check webu
|
1 2 3 4 |
try { $r = Invoke-WebRequest -Uri 'https://tvojweb.sk' -TimeoutSec 10 "Status: $($r.StatusCode) $($r.StatusDescription)" } catch { $_.Exception.Message } |
Používatelia a systém
11) Lokálni používatelia a ich stav
|
1 |
Get-LocalUser | Select-Object Name, Enabled, LastLogon |
12) Vytvorenie lokálneho účtu (Admin)
|
1 2 |
$pw = ConvertTo-SecureString 'Heslo123!' -AsPlainText -Force New-LocalUser -Name 'novyuzivatel' -Password $pw -FullName 'Nový používateľ' -Description 'Lab' |
13) Hromadná zmena hesiel aktívnych účtov (Admin)
|
1 2 3 4 |
$pw = ConvertTo-SecureString 'NoveHeslo!2025' -AsPlainText -Force Get-LocalUser | Where-Object Enabled | ForEach-Object { Set-LocalUser -Name $_.Name -Password $pw } |
14) Vynútený reštart / vypnutie (Admin)
|
1 2 3 |
Restart-Computer -Force # alebo Stop-Computer -Force |
15) Posledné systémové udalosti (moderné API)
|
1 2 |
Get-WinEvent -LogName System -MaxEvents 50 | Select-Object TimeCreated, Id, LevelDisplayName, ProviderName, Message |
16) Kontrola zabezpečeného kanála do domény (DC)
|
1 |
Test-ComputerSecureChannel -Verbose |
17) (Opatrne) blokovanie USB Mass Storage (Admin, vyžaduje reštart)
|
1 |
Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Services\USBSTOR' -Name Start -Value 4 |
V enterprise prostredí uprednostni GPO/MDM.
Aktualizácie a balíčky
18) Windows Update cez PSWindowsUpdate (Admin)
|
1 2 |
Install-Module PSWindowsUpdate -Force Get-WindowsUpdate -AcceptAll -Install -AutoReboot |
19) História nainštalovaných aktualizácií
|
1 |
Get-WindowsUpdate -History | Select-Object Date, Title, Result | Sort-Object Date -Descending |
20) Inštalácia aplikácie cez Winget
|
1 |
winget install --id 7zip.7zip --accept-source-agreements --accept-package-agreements |
21) Hromadná inštalácia balíkov cez Winget
|
1 2 |
$apps = 'Google.Chrome','Git.Git','Microsoft.VisualStudioCode' foreach($a in $apps){ winget install --id $a --silent --accept-source-agreements --accept-package-agreements } |
Údržba, súbory a procesy
22) Vymazanie TEMP súborov používateľa
|
1 |
Remove-Item -Path "$env:TEMP\*" -Recurse -Force -ErrorAction SilentlyContinue |
23) Odstránenie starých záloh (> 30 dní)
|
1 2 3 |
Get-ChildItem 'D:\Backups' -Recurse | Where-Object { $_.LastWriteTime -lt (Get-Date).AddDays(-30) } | Remove-Item -Force |
24) Hľadanie súborov podľa prípony
|
1 |
Get-ChildItem -Path 'C:\' -Recurse -Filter *.log -ErrorAction SilentlyContinue |
25) Export služieb do CSV
|
1 2 |
Get-Service | Select-Object Name, Status, StartType | Export-Csv -Path 'C:\services.csv' -NoTypeInformation -Encoding UTF8 |
26) Voľné a použité miesto na diskoch
|
1 2 3 4 |
Get-PSDrive -PSProvider FileSystem | Select-Object Name, @{n='FreeGB';e={[math]::Round($_.Free/1GB,2)}}, @{n='UsedGB';e={[math]::Round(($_.Used)/1GB,2)}} |
27) Hromadné ukončenie procesov (príklad: Chrome)
|
1 |
Get-Process chrome -ErrorAction SilentlyContinue | Stop-Process -Force |
28) Záloha dokumentov všetkých profilov (Admin)
|
1 2 3 4 5 6 |
$src = 'C:\Users' $dst = 'D:\Backup_Documents' Get-ChildItem $src -Directory | ForEach-Object { $p = Join-Path $_.FullName 'Documents' if(Test-Path $p){ Copy-Item "$p\*.docx" $dst -Recurse -Force -ErrorAction SilentlyContinue } } |
29) MAC adresy všetkých adaptérov
|
1 |
Get-NetAdapter | Select-Object Name, MacAddress, Status, LinkSpeed |
30) Spustenie procesu na viacerých počítačoch (PS Remoting)
|
1 |
Invoke-Command -ComputerName PC1,PC2,PC3 -ScriptBlock { Start-Process notepad.exe } |
Akcia: Označ si 5–7 powershell skriptov, ktoré budeš používať denne, a spoj ich do jedného skriptu.
Mini‑case: GUI vs. skript – koľko klikov ušetríš?
- Úloha: Skontrolovať patch level na 10 PC a uložiť výsledok.
- GUI spôsob: 10× sa prihlásiš, otvoríš Nastavenia → Windows Update → História (> 80 klikov).
- Skript: 1 príkaz s PSRemoting + export do CSV.
|
1 2 3 |
Invoke-Command -ComputerName (Get-Content .\hosts.txt) -ScriptBlock { Get-HotFix | Select Description, HotFixID, InstalledOn } | Export-Csv .\hotfix_audit.csv -NoTypeInformation |
Najvyhľadávanejšie powershell skripty a kedy ich použiť
- Get-Process / Stop-Process – rýchle ukončenie seknutých aplikácií.
- Get-Service / Restart-Service – servisná údržba bez RDP.
- Get-EventLog / Get-WinEvent – troubleshooting bez GUI.
- Invoke-WebRequest – monitoring a sťahovanie artefaktov.
- winget – štandardizovaná inštalácia balíkov na všetkých strojoch.
Tip: Vytvor si vlastný „toolbelt“ – textový súbor s najčastejšími powershell príkazmi a aliasmi.
Tipy na vlastné automatizácie
- Použi Plánovač úloh na pravidelné spúšťanie.
- Loguj do CSV/JSON a ukladaj na centrálne zdieľané úložisko.
- Výstupy posielaj cez e‑mail/webhook (Teams/Slack) alebo ulož do SIEM.
- Vo väčších prostrediach nasadzuj cez Desired State Configuration alebo Intune/MDM.
Zamysli sa: Ktoré manuálne úlohy robíš raz týždenne? Vieš ich premeniť na 3–4 powershell skripty?
Záver
- Máš k dispozícii 30 skriptov „copy & run“.
- Preferuj moderné cmdlety (
Get-CimInstance,Get-WinEvent). - Využívaj PSRemoting – škáluje sa lepšie než RDP.
- Buduj si vlastný balík PowerShell skriptov na denné použitie a postupne ho rozširuj.
Pozri si tiež:
- Windows CMD príkazy – rýchly prehľad pre helpdesk
- Winget: kompletný sprievodca balíčkovaním
- Plánovač úloh: ako robiť úlohy odolné voči chybám
Anketa: Ktoré powershell skripty používaš najčastejšie? Daj vedieť v komentároch a doplním tipy.
Bonus: Master skript + profil
Master skript – spustí viac úloh za sebou a založí logy.
|
1 2 3 4 5 6 7 8 |
$log = "C:\\Scripts\\run-$((Get-Date).ToString('yyyyMMdd-HHmm')).log" "Start: $(Get-Date)" | Tee-Object -FilePath $log & C:\\Scripts\\audit.ps1 | Tee-Object -FilePath $log -Append & C:\\Scripts\\cleanup.ps1 | Tee-Object -FilePath $log -Append & C:\\Scripts\\updates.ps1 | Tee-Object -FilePath $log -Append "End: $(Get-Date)" | Tee-Object -FilePath $log -Append |
Profil (AllUsersAllHosts) – pridaj aliasy a najčastejšie powershell skripty.
|
1 2 3 |
$profilePath = "$env:ProgramData\\Microsoft\\PowerShell\\Profile.ps1" 'Set-Alias ll Get-ChildItem' | Out-File -FilePath $profilePath -Append -Encoding utf8 'Set-Alias gs Get-Service' | Out-File -FilePath $profilePath -Append -Encoding utf8 |
Odporúčané články
- Wi-Fi a Powershell : 10 + 2 príkazy pre správu
- PowerShell : 10 príkazov, ktoré využiješ každý deň
- Softvér pre PowerShell. Ktorý je najlepší ?
Zdroje :
Microsoft , Microsoft Tech Community





