Files
skrypty_windows/OptimizeVHD.ps1
T
2026-07-21 13:30:02 +02:00

39 lines
1.9 KiB
PowerShell

# OptimizeVHD.ps1
# Wymaga uruchomienia z uprawnieniami Administratora
#Requires -RunAsAdministrator
Write-Host "Optymalizacja systemu pod obraz VHD / Snapshoty..." -ForegroundColor Cyan
# 1. Wyłączenie Hibernacji i Szybkiego Uruchamiania (Fast Startup)
# To usunie plik hiberfil.sys, który potrafi zajmować tyle GB, ile masz RAMu
Write-Host "[1/2] Wyłączanie hibernacji (hiberfil.sys)..." -NoNewline
try {
# Najczystsza metoda zalecana przez Microsoft to powercfg, która sama modyfikuje rejestr
# w kluczu HKLM\System\CurrentControlSet\Control\Power (wartość HibernateEnabled)
Start-Process -FilePath "powercfg.exe" -ArgumentList "/hibernate off" -Wait -NoNewWindow
Write-Host " GOTOWE" -ForegroundColor Green
} catch {
Write-Host " BŁĄD" -ForegroundColor Red
}
# 2. Ustawienie stałego rozmiaru pliku stronicowania (Pagefile)
# Zapobiega nagłemu puchnięciu VHD przy braku pamięci RAM
Write-Host "[2/2] Ustawianie stałego rozmiaru pliku stronicowania (2048 MB)..." -NoNewline
try {
# Wyłączenie automatycznego zarządzania plikiem stronicowania w rejestrze
$regPath = "HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management"
Set-ItemProperty -Path $regPath -Name "AutomaticManagedPagefile" -Value 0 -Type DWord
# Ustawienie stałego rozmiaru (np. Min 2048 MB, Max 2048 MB)
# Jeśli chcesz mniejszy lub większy, zmień wartości "2048 2048" poniżej
Set-ItemProperty -Path $regPath -Name "PagingFiles" -Value "C:\pagefile.sys 2048 2048" -Type MultiString
Write-Host " GOTOWE" -ForegroundColor Green
} catch {
Write-Host " BŁĄD" -ForegroundColor Red
Write-Host " Szczegóły: $_" -ForegroundColor Red
}
Write-Host ""
Write-Host "==========================================" -ForegroundColor Cyan
Write-Host "UWAGA: Zmiany w pliku stronicowania będą aktywne po ponownym uruchomieniu komputera." -ForegroundColor Yellow