Oto kolejne przydatne skrypty PowerShell, które mogą być użyteczne w codziennej administracji Windows Server:
1. Skrypt do sprawdzania i restartowania usług
Czasami może wystąpić potrzeba sprawdzenia stanu usługi oraz jej ponownego uruchomienia w razie potrzeby. Poniższy skrypt sprawdza stan usługi, a jeśli nie działa, uruchamia ją:
# Zmienna z nazwą usługi
$serviceName = "wuauserv"
# Pobranie statusu usługi
$service = Get-Service -Name $serviceName
if ($service.Status -ne "Running") {
Write-Host "Usługa $serviceName jest zatrzymana. Próba jej uruchomienia..."
Start-Service -Name $serviceName
Write-Host "Usługa $serviceName została uruchomiona."
} else {
Write-Host "Usługa $serviceName już działa."
}
2. Skrypt do tworzenia użytkowników w Active Directory z pliku CSV

Skrypt poniżej pozwala na masowe dodawanie użytkowników do Active Directory na podstawie danych z pliku CSV. Dzięki temu administratorzy mogą szybko utworzyć wielu użytkowników:
# Ścieżka do pliku CSV
$csvPath = "C:\ścieżka\do\plik.csv"
# Wczytanie danych z pliku CSV
$users = Import-Csv -Path $csvPath
# Tworzenie użytkowników
foreach ($user in $users) {
$password = ConvertTo-SecureString $user.Password -AsPlainText -Force
New-ADUser -SamAccountName $user.Username -UserPrincipalName "$($user.Username)@domain.com" -Name $user.Name -GivenName $user.GivenName -Surname $user.Surname -Enabled $true -AccountPassword $password -PasswordNeverExpires $true -Path "CN=Users,DC=domain,DC=com"
Write-Host "Użytkownik $($user.Username) został utworzony."
}
Plik CSV powinien zawierać kolumny takie jak: Username
, Password
, Name
, GivenName
, Surname
.
3. Skrypt do eksportu listy zainstalowanych programów
PowerShell pozwala na łatwe wyeksportowanie listy zainstalowanych programów na komputerze lub serwerze. Poniższy skrypt zapisuje listę aplikacji do pliku tekstowego:
# Eksportowanie listy zainstalowanych programów do pliku tekstowego
Get-WmiObject -Class Win32_Product | Select-Object Name, Version | Out-File "C:\ścieżka\do\plik.txt"
Write-Host "Lista zainstalowanych programów została zapisana."
4. Skrypt do monitorowania logów zdarzeń systemowych
Skrypt ten sprawdza logi zdarzeń systemowych w celu wykrycia krytycznych błędów. Używa Event Viewer do uzyskania informacji o błędach i zapisu ich do pliku:
# Pobranie zdarzeń krytycznych
Get-EventLog -LogName System -EntryType Error | Select-Object TimeGenerated, Message | Out-File "C:\ścieżka\do\bladów.txt"
Write-Host "Zdarzenia krytyczne zostały zapisane."
5. Skrypt do zbierania informacji o systemie
PowerShell może zbierać informacje o systemie operacyjnym, pamięci, procesorze i dyskach twardych. Oto skrypt, który zbiera podstawowe dane o serwerze:
# Zbieranie informacji o systemie
$os = Get-WmiObject -Class Win32_OperatingSystem
$cpu = Get-WmiObject -Class Win32_Processor
$memory = Get-WmiObject -Class Win32_PhysicalMemory
$disks = Get-WmiObject -Class Win32_LogicalDisk
# Zapis danych do pliku tekstowego
$systemInfo = @"
Informacje o systemie:
---------------------------------
OS: $($os.Caption) $($os.Version)
CPU: $($cpu.Name)
Pamięć: $([math]::round($memory.Capacity / 1GB, 2)) GB
Dyski:
"@
$disks | ForEach-Object {
$systemInfo += "Dysk $($_.DeviceID) - $($_.Size / 1GB) GB"
}
$systemInfo | Out-File "C:\ścieżka\do\informacje.txt"
Write-Host "Informacje o systemie zostały zapisane."
6. Skrypt do monitorowania dostępności serwisów zdalnych
Jeśli zarządzasz wieloma serwerami, pomocny może być skrypt monitorujący dostępność usług zdalnych (np. HTTP, HTTPS):
# Sprawdzenie dostępności serwera na porcie 80 (HTTP)
$server = "serwer.domain.com"
$port = 80
Test-NetConnection -ComputerName $server -Port $port
Skrypt ten sprawdza, czy port 80 (HTTP) jest otwarty na serwerze serwer.domain.com. Może być użyteczny do monitorowania dostępności usług sieciowych.
7. Skrypt do usuwania użytkowników z Active Directory
Skrypt ten usuwa użytkowników z Active Directory na podstawie listy z pliku CSV. Jest to przydatne w przypadku usuwania nieaktywnych kont:
# Ścieżka do pliku CSV
$csvPath = "C:\ścieżka\do\plik.csv"
# Wczytanie danych z pliku CSV
$users = Import-Csv -Path $csvPath
# Usuwanie użytkowników
foreach ($user in $users) {
Remove-ADUser -Identity $user.Username -Confirm:$false
Write-Host "Użytkownik $($user.Username) został usunięty."
}
8. Skrypt do tworzenia punktów przywracania systemu
PowerShell może być użyteczny do tworzenia punktów przywracania systemu. Poniższy skrypt umożliwia stworzenie punktu przywracania:
# Tworzenie punktu przywracania systemu
Checkpoint-Computer -Description "Punkt przywracania przed aktualizacją" -RestorePointType "MODIFY_SETTINGS"
Write-Host "Punkt przywracania systemu został utworzony."
9. Skrypt do sprawdzania stanu zabezpieczeń systemu
Ten skrypt sprawdza, czy funkcje zabezpieczeń systemu są włączone, np. zapora Windows, BitLocker, itp.:
# Sprawdzenie statusu zapory Windows
$firewall = Get-NetFirewallProfile | Select-Object Name, Enabled
Write-Host "Status zapory Windows:"
$firewall
# Sprawdzenie statusu BitLocker
$bitlocker = Get-BitLockerVolume
Write-Host "Status BitLocker:"
$bitlocker
10. Skrypt do tworzenia kopii zapasowej rejestru systemowego
Skrypt ten tworzy kopię zapasową rejestru systemowego, co jest przydatne w przypadku modyfikacji rejestru:
# Tworzenie kopii zapasowej rejestru
$backupPath = "C:\Backup\registry_backup.reg"
reg export "HKLM\Software" $backupPath /y
Write-Host "Kopia zapasowa rejestru została stworzona."
Podsumowanie
Skrypty PowerShell to potężne narzędzie dla administratorów Windows Server, które pozwala na automatyzację i uproszczenie wielu procesów zarządzania serwerem. Dzięki skryptom można zarządzać użytkownikami, monitorować system, instalować oprogramowanie, tworzyć kopie zapasowe oraz wykonywać wiele innych zadań, co pozwala zaoszczędzić czas i zwiększyć wydajność pracy w administracji systemami Windows Server.