39 lines
1.9 KiB
PowerShell
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 |