Oto kolejne przydatne skrypty PowerShell, które mogą być użyteczne w administracji Windows Server:
1. Skrypt do zarządzania użytkownikami w Active Directory (tworzenie użytkownika)
Skrypt do tworzenia nowego użytkownika w Active Directory z określonymi właściwościami, jak nazwa użytkownika, pełne imię, i hasło.
# Definicja zmiennych
$userName = "nowy_uzytkownik"
$fullName = "Nowy Użytkownik"
$password = "P@ssw0rd"
# Tworzenie nowego użytkownika
New-ADUser -SamAccountName $userName -UserPrincipalName "$userName@domain.com" -Name $fullName -GivenName "Nowy" -Surname "Użytkownik" -DisplayName $fullName -Path "CN=Users,DC=domain,DC=com" -AccountPassword (ConvertTo-SecureString $password -AsPlainText -Force) -Enabled $true
Write-Host "Użytkownik $userName został utworzony w Active Directory."

2. Skrypt do zmiany hasła użytkownika w Active Directory
Ten skrypt zmienia hasło użytkownika w Active Directory.
# Definicja zmiennych
$userName = "istniejacy_uzytkownik"
$newPassword = "NoweP@ssw0rd"
# Zmiana hasła użytkownika
Set-ADAccountPassword -Identity $userName -NewPassword (ConvertTo-SecureString $newPassword -AsPlainText -Force) -Reset
Write-Host "Hasło użytkownika $userName zostało zmienione."
3. Skrypt do sprawdzenia statusu usługi na wielu serwerach
Skrypt, który sprawdza status usługi na wielu serwerach i wyświetla, czy usługa działa, czy jest zatrzymana.
# Lista serwerów i nazwa usługi
$servers = @("serwer1", "serwer2", "serwer3")
$serviceName = "wuauserv" # Windows Update Service
# Sprawdzanie statusu usługi na serwerach
foreach ($server in $servers) {
$serviceStatus = Get-Service -ComputerName $server -Name $serviceName
Write-Host "$server: Usługa $serviceName jest $($serviceStatus.Status)"
}
4. Skrypt do tworzenia kopii zapasowej folderu na serwerze
Skrypt, który tworzy kopię zapasową wskazanego folderu do innej lokalizacji na tym samym serwerze lub na zdalnym serwerze.
# Ścieżki do folderu źródłowego i docelowego
$sourceFolder = "C:\Dokumenty"
$backupFolder = "D:\Backup\Dokumenty"
# Kopiowanie plików
Copy-Item -Path $sourceFolder -Destination $backupFolder -Recurse -Force
Write-Host "Kopia zapasowa folderu $sourceFolder została utworzona w $backupFolder."
5. Skrypt do zbierania informacji o dyskach twardych
Skrypt, który zbiera szczegółowe informacje o dyskach twardych w systemie, w tym rozmiar, dostępność i status.
# Pobieranie informacji o dyskach
Get-PhysicalDisk | Select-Object DeviceID, FriendlyName, OperationalStatus, Size, MediaType | Format-Table -AutoSize
Write-Host "Informacje o dyskach zostały pobrane."
6. Skrypt do monitorowania pamięci RAM i użycia procesora
Skrypt monitoruje wykorzystanie pamięci RAM i procesora na serwerze, generując ostrzeżenie, jeśli wykorzystanie przekroczy ustalony próg.
# Określenie progów
$cpuThreshold = 80
$ramThreshold = 80
# Pobieranie użycia CPU i RAM
$cpuUsage = Get-WmiObject -Class Win32_Processor | Select-Object -ExpandProperty LoadPercentage
$ramUsage = (Get-WmiObject -Class Win32_OperatingSystem).FreePhysicalMemory / (Get-WmiObject -Class Win32_OperatingSystem).TotalVisibleMemorySize * 100
# Sprawdzanie, czy wykorzystanie CPU i RAM przekracza próg
if ($cpuUsage -gt $cpuThreshold) {
Write-Host "Ostrzeżenie: Użycie CPU wynosi $cpuUsage%, przekroczyło próg $cpuThreshold%."
}
if ($ramUsage -gt $ramThreshold) {
Write-Host "Ostrzeżenie: Wykorzystanie RAM wynosi $ramUsage%, przekroczyło próg $ramThreshold%."
}
7. Skrypt do usuwania użytkowników z Active Directory
Skrypt do usuwania użytkowników z Active Directory na podstawie nazwy użytkownika.
# Definicja zmiennej z nazwą użytkownika
$userName = "usunięty_uzytkownik"
# Usuwanie użytkownika
Remove-ADUser -Identity $userName -Confirm:$false
Write-Host "Użytkownik $userName został usunięty z Active Directory."
8. Skrypt do wyłączania systemu w określonym czasie
Skrypt do wyłączenia systemu po upływie określonego czasu.
# Czas do wyłączenia (w minutach)
$timeToShutdown = 60
# Wyłączanie systemu po określonym czasie
Shutdown.exe /s /t ($timeToShutdown * 60)
Write-Host "System zostanie wyłączony za $timeToShutdown minut."
9. Skrypt do sprawdzania dostępności serwera SQL
Skrypt sprawdza, czy serwer SQL jest dostępny i czy odpowiada na zapytania.
# Adres serwera SQL
$server = "SQLServer.domain.com"
# Sprawdzanie dostępności serwera SQL
Test-NetConnection -ComputerName $server -Port 1433
Write-Host "Sprawdzono dostępność serwera SQL."
10. Skrypt do dodawania i usuwania wpisów w pliku hosts
Skrypt do dodawania lub usuwania wpisów w pliku hosts, co może być użyteczne przy zarządzaniu nazwami hostów w sieci.
# Ścieżka do pliku hosts
$hostsFile = "C:\Windows\System32\drivers\etc\hosts"
# Dodawanie wpisu
Add-Content -Path $hostsFile -Value "`n127.0.0.1 nowy-serwer"
# Usuwanie wpisu
(Get-Content -Path $hostsFile) | Where-Object { $_ -notmatch "nowy-serwer" } | Set-Content -Path $hostsFile
Write-Host "Wpisy w pliku hosts zostały zaktualizowane."
11. Skrypt do sprawdzania dostępności portu na zdalnym serwerze
Skrypt do sprawdzania, czy dany port jest otwarty na zdalnym serwerze.
# Adres serwera i port
$server = "serwer.domain.com"
$port = 443
# Testowanie dostępności portu
Test-NetConnection -ComputerName $server -Port $port
Write-Host "Sprawdzono dostępność portu $port na serwerze $server."
12. Skrypt do zbierania informacji o użytkownikach (Active Directory)
Skrypt, który zbiera podstawowe informacje o użytkownikach w Active Directory, takie jak nazwa użytkownika, stan konta, i data ostatniego logowania.
# Pobieranie informacji o użytkownikach
Get-ADUser -Filter * -Property SamAccountName, Enabled, LastLogonDate | Select-Object SamAccountName, Enabled, LastLogonDate | Format-Table -AutoSize
Write-Host "Informacje o użytkownikach zostały pobrane."
13. Skrypt do aktualizacji systemu (Windows Update)
Skrypt do uruchomienia aktualizacji systemu Windows z poziomu PowerShell.
# Uruchomienie aktualizacji systemu
Install-WindowsUpdate -AcceptAll -AutoReboot
Write-Host "Aktualizacje zostały zainstalowane."
14. Skrypt do monitorowania logów zdarzeń systemowych
Skrypt monitoruje logi zdarzeń systemowych w czasie rzeczywistym i informuje o nowych wpisach w dziennikach.
# Monitorowanie logów zdarzeń systemowych
Get-WinEvent -LogName System -MaxEvents 5 | Format-Table -Property TimeCreated, Message -AutoSize
Write-Host "Monitoring logów zdarzeń systemowych."
15. Skrypt do wyświetlania szczegółowych informacji o sieci
Skrypt zbiera szczegółowe informacje o ustawieniach sieciowych serwera, takich jak adres IP, brama, DNS itp.
# Pobieranie szczegółowych informacji o sieci
Get-NetIPAddress
Get-NetRoute
Get-DnsClientServerAddress
Write-Host "Informacje o ustawieniach sieciowych zostały zebrane."
Te skrypty PowerShell są przydatne w różnych scenariuszach administracyjnych, pozwalając na automatyzację wielu zadań i zarządzanie serwerami Windows Server. Dzięki nim można zaoszczędzić czas i zwiększyć efektywność pracy w środowisku produkcyjnym.