Skrypty PowerShell do zarządzania systemem Windows Server , part3
Windows Server

Skrypty PowerShell do zarządzania systemem Windows Server , part3

Oto kolejne przydatne skrypty PowerShell, które mogą ułatwić administrację Windows Server:

1. Skrypt do sprawdzania dostępności portu na zdalnym serwerze

Ten skrypt sprawdza, czy określony port na zdalnym serwerze jest otwarty. Jest to przydatne do diagnostyki problemów z połączeniami sieciowymi.

Skrypty PowerShell do zarządzania systemem Windows Server , part3
Skrypty PowerShell do zarządzania systemem Windows Server , part3
# Zmienna z adresem serwera i numerem portu
$server = "serwer.domain.com"
$port = 443  # Przykładowo HTTPS

# Sprawdzanie dostępności portu
Test-NetConnection -ComputerName $server -Port $port

2. Skrypt do tworzenia raportu o pamięci RAM

Ten skrypt zbiera szczegółowe informacje o zainstalowanej pamięci RAM, jej typie i statusie, a następnie zapisuje raport do pliku tekstowego.

# Pobranie szczegółowych informacji o pamięci RAM
$ram = Get-WmiObject -Class Win32_PhysicalMemory

# Generowanie raportu o pamięci
$ramReport = $ram | Select-Object Manufacturer, Capacity, Speed, PartNumber, MemoryType | Format-Table -AutoSize

# Zapisanie raportu do pliku
$ramReport | Out-File "C:\ścieżka\do\raport_ram.txt"
Write-Host "Raport o pamięci RAM został zapisany."

3. Skrypt do instalacji aplikacji za pomocą Chocolatey

Chocolatey to popularny menedżer pakietów dla systemu Windows. Dzięki temu skryptowi można zainstalować aplikacje na serwerze w sposób automatyczny.

# Instalacja Chocolatey, jeśli nie jest zainstalowany
if (-not (Get-Command choco -ErrorAction SilentlyContinue)) {
    Set-ExecutionPolicy Bypass -Scope Process -Force;
    [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.SecurityProtocolType]::Tls12;
    Invoke-WebRequest https://chocolatey.org/install.ps1 -UseBasicPipelining | Invoke-Expression
}

# Instalacja aplikacji (np. Google Chrome)
choco install googlechrome -y
Write-Host "Google Chrome został zainstalowany."

4. Skrypt do automatycznego restartowania aplikacji po awarii

Ten skrypt monitoruje określoną aplikację, a jeśli jej proces przestanie działać, uruchamia go ponownie.

# Zmienna z nazwą aplikacji
$processName = "notepad"

# Monitorowanie aplikacji
while ($true) {
    $process = Get-Process -Name $processName -ErrorAction SilentlyContinue
    if ($process -eq $null) {
        Write-Host "Aplikacja $processName została zamknięta. Uruchamiam ponownie..."
        Start-Process "notepad.exe"
    }
    Start-Sleep -Seconds 5  # Sprawdzenie co 5 sekund
}

5. Skrypt do czyszczenia folderu tymczasowego

Ten skrypt usuwa pliki w folderze tymczasowym systemu Windows, co może pomóc w zwolnieniu miejsca na dysku.

# Usunięcie plików tymczasowych
$TempPath = [System.IO.Path]::GetTempPath()
Remove-Item "$TempPath*" -Recurse -Force
Write-Host "Pliki tymczasowe zostały usunięte."

6. Skrypt do sprawdzania stanu dysku twardego

Ten skrypt używa WMI do sprawdzenia stanu dysku twardego i jego zdrowia. To ważne narzędzie do monitorowania sprzętu w systemach Windows Server.

# Sprawdzenie stanu dysków twardych
Get-WmiObject -Class Win32_DiskDrive | Select-Object DeviceID, MediaType, Status
Write-Host "Status dysków twardych został sprawdzony."

7. Skrypt do usuwania starych plików z określonego folderu

Skrypt usuwa pliki starsze niż określona liczba dni z wskazanego folderu. Przydatne w automatyzacji czyszczenia folderów z logami lub plikami tymczasowymi.

# Ścieżka do folderu i liczba dni
$folderPath = "C:\ścieżka\do\folderu"
$days = 30

# Usuwanie starych plików
Get-ChildItem -Path $folderPath | Where-Object { $_.LastWriteTime -lt (Get-Date).AddDays(-$days) } | Remove-Item -Force
Write-Host "Pliki starsze niż $days dni zostały usunięte."

8. Skrypt do zbierania informacji o użytkownikach w Active Directory

Ten skrypt zbiera szczegółowe informacje o użytkownikach w Active Directory, takie jak login, pełna nazwa i status konta.

# Pobranie wszystkich użytkowników z Active Directory
Get-ADUser -Filter * -Property DisplayName, SamAccountName, Enabled | Select-Object DisplayName, SamAccountName, Enabled | Format-Table -AutoSize
Write-Host "Informacje o użytkownikach zostały zebrane."

9. Skrypt do tworzenia kopii zapasowej folderu

Ten skrypt tworzy kopię zapasową wskazanego folderu do lokalizacji docelowej. Jest przydatny w przypadku tworzenia zapasowych kopii ważnych plików.

# Ścieżka źródłowa i docelowa
$sourceFolder = "C:\Dane"
$backupFolder = "D:\Backup"

# Tworzenie kopii zapasowej
Copy-Item -Path $sourceFolder -Destination $backupFolder -Recurse -Force
Write-Host "Kopia zapasowa została utworzona."

10. Skrypt do resetowania hasła użytkownika w Active Directory

PowerShell umożliwia łatwe resetowanie haseł użytkowników w Active Directory, co jest często potrzebne w przypadku zapomnianych haseł.

# Zmienna z nazwą użytkownika
$username = "uzytkownik"

# Zmienna z nowym hasłem
$newPassword = ConvertTo-SecureString "NoweHaslo123!" -AsPlainText -Force

# Resetowanie hasła
Set-ADAccountPassword -Identity $username -NewPassword $newPassword -Reset
Write-Host "Hasło dla użytkownika $username zostało zresetowane."

11. Skrypt do wyłączania systemu po określonym czasie

Skrypt ten umożliwia zaplanowanie wyłączenia systemu Windows Server po określonym czasie (np. po godzinie).

# Określenie czasu do wyłączenia w sekundach
$timeToShutdown = 3600  # 1 godzina

# Ustawienie wyłączenia systemu
Shutdown.exe /s /t $timeToShutdown
Write-Host "System zostanie wyłączony za $($timeToShutdown / 60) minut."

12. Skrypt do automatycznego usuwania plików z kosza

Ten skrypt automatycznie opróżnia Kosz na komputerze lub serwerze.

# Opróżnianie kosza
[IO.File]::Delete([IO.Path]::Combine([Environment]::GetFolderPath('RecycleBin'), '.*'))
Write-Host "Kosz został opróżniony."

13. Skrypt do monitorowania i zapisywania obciążenia CPU

Poniższy skrypt monitoruje obciążenie CPU w czasie rzeczywistym i zapisuje dane do pliku logu.

# Monitorowanie obciążenia CPU
while ($true) {
    $cpuUsage = Get-WmiObject -Class Win32_Processor | Select-Object LoadPercentage
    $timestamp = Get-Date
    "$timestamp - CPU Usage: $($cpuUsage.LoadPercentage)%" | Out-File "C:\ścieżka\do\cpu_log.txt" -Append
    Start-Sleep -Seconds 10
}

14. Skrypt do tworzenia kopii zapasowej rejestru systemowego

Skrypt umożliwia utworzenie kopii zapasowej kluczowych gałęzi rejestru, co może być przydatne przed wprowadzeniem istotnych zmian w systemie.

# Tworzenie kopii zapasowej klucza rejestru
$regKey = "HKCU\Software\Microsoft\Windows\CurrentVersion"
$backupPath = "C:\Backup\registry_backup.reg"
reg export $regKey $backupPath /y
Write-Host "Kopia zapasowa rejestru została utworzona."

15. Skrypt do sprawdzania statusu usług na wielu serwerach

Jeśli zarządzasz wieloma serwerami, ten skrypt pozwoli sprawdzić status usługi na kilku serwerach jednocześnie.

# Lista serwerów
$servers = @("serwer1", "serwer2", "serwer3")

# Sprawdzanie statusu usługi na każdym serwerze
foreach ($server in $servers) {
    $serviceStatus = Get-Service -ComputerName $server -Name "wuauserv"
    Write-Host "Serwer: $server - Usługa 'Windows Update' Status: $($serviceStatus.Status)"
}

Podsumowanie

Skrypty PowerShell to potężne narzędzie do zarządzania serwerami Windows Server. Dzięki automatyzacji wielu procesów, administratorzy mogą zaoszczędzić czas, poprawić efektywność pracy oraz zminimalizować błędy. Powyższe skrypty to tylko przykłady zastosowania PowerShell w codziennej administracji, ale możliwości tego narzędzia są praktycznie nieograniczone, co czyni go jednym z najważniejszych narzędzi dla każdego administratora Windows Server.

Czytaj  Partycje dynamiczne: elastyczne zarządzanie przestrzenią dyskową
Polecane wpisy
Audyt Bezpieczeństwa Windows Server: Kompleksowe Podejście do Wykrywania Luk Konfiguracyjnych
Audyt Bezpieczeństwa Windows Server: Kompleksowe Podejście do Wykrywania Luk Konfiguracyjnych

Audyt Bezpieczeństwa Windows Server: Kompleksowe Podejście do Wykrywania Luk Konfiguracyjnych Windows Server stanowi kręgosłup większości infrastruktur IT, hostując krytyczne aplikacje, Czytaj dalej

Network Policy Server (NPS) w Windows Server: Budowanie zaawansowanych polityk dostępu do sieci
Network Policy Server (NPS) w Windows Server: Budowanie zaawansowanych polityk dostępu do sieci

Network Policy Server (NPS) w Windows Server: Budowanie zaawansowanych polityk dostępu do sieci 🎯 Cel artykułu Celem tego kompleksowego przewodnika Czytaj dalej

Marek "Netbe" Lampart Inżynier informatyki Marek Lampart to doświadczony inżynier informatyki z ponad 25-letnim stażem w zawodzie. Specjalizuje się w systemach Windows i Linux, bezpieczeństwie IT, cyberbezpieczeństwie, administracji serwerami oraz diagnostyce i optymalizacji systemów. Na netbe.pl publikuje praktyczne poradniki, analizy i instrukcje krok po kroku, pomagając administratorom, specjalistom IT oraz zaawansowanym użytkownikom rozwiązywać realne problemy techniczne.