Cache DNS në sistemet Windows zakonisht pastrohet me komandën
ipconfig /flushdns
. Kjo komandë kërkon privilegje administratori, gjë që krijon një sfidë në mjediset e Windows Server ku përdoruesit standardë duhet të rifreskojnë cache-in e tyre DNS gjatë zgjidhjes së problemeve ose pas ndryshimeve në rrjet.
Për të kapërcyer këtë kufizim, do të krijojmë një sistem të automatizuar që përbëhet nga:
- Konfigurimi i njëhershëm nga Administratori. Një përdorues me privilegje administratori krijon dhe ekzekuton një skript PowerShell, i cili vazhdon të ekzekutohet në sfond me privilegje administratori. Qëllimi i tij i vetëm është të monitorojë një dosje të caktuar për çdo ndryshim. Kur zbulohen ndryshime, automatikisht ekzekuton komandën e pastrimit DNS.
- Operacioni i përdoruesit standard. Për të pastruar cache-in DNS, përdoruesi standard krijon një skedar ose dosje bosh në dosjen që monitorohet nga skripti. Skedari ose dosja do të zhduket pas rreth 10 sekondash, duke treguar se komanda
ipconfig /flushdns
është ekzekutuar.
Ky sistem ruan sigurinë duke mbajtur privilegjet e administratorit brenda skriptit PowerShell, ndërsa përdoruesit standardë kryejnë vetëm operacione me skedarë në një dosje të caktuar ku u janë dhënë të drejta aksesi.
1.Hapat e instalimit të kryera nga Administratori
Hapat e mëposhtëm duhet të kryhen nga një përdorues me privilegje administratori. Në këtë shembull, do të përdorim diskun C:, por mund ta përshtatni rrugën e dosjes sipas nevojës.
1.1.Krijimi i dosjes së monitoruar
Krijoni një dosje të quajtur
flushdns që do të përdoret për të aktivizuar pastrimin e cache DNS. Jepni akses në dosje për përdoruesit standardë, zakonisht në grupin "Users". Përdorni komandat e mëposhtme PowerShell:
New-Item -Path "C:\flushdns" -ItemType Directory
icacls "C:\flushdns" /grant "Users:(OI)(CI)F"
Komanda e dytë jep akses të plotë për të gjithë përdoruesit. Për të kufizuar aksesin në përdorues ose grupe të caktuara, zëvendësoni "Users" me emrin përkatës të përdoruesit ose grupit.
1.2.Krijimi i skriptit PowerShell
Krijoni një skedar skripti PowerShell në
C:\scriptflushdns.ps1 me përmbajtjen e mëposhtme:
# Rruga për tek dosja që do të monitorohet
$folderPath = "C:\flushdns"
###### MOS MODIFIKONI POSHTË KËSAJ VIJE
# Titulli i dritares
$host.UI.RawUI.WindowTitle = "DNS Flush Process"
# Unaza e vazhdueshme
while ($true) {
$files = Get-ChildItem -Path $folderPath -File -ErrorAction SilentlyContinue
# Nëse ka skedarë
if ($files.Count -gt 0) {
# Ekzekuto ipconfig /flushdns
try {
$result = Start-Process "ipconfig.exe" -ArgumentList "/flushdns" -Verb RunAs -WindowStyle Hidden -Wait -PassThru
if ($result.ExitCode -ne 0) {
Write-Host "Gabim: Pastrimi DNS dështoi me kodin $($result.ExitCode)" -ForegroundColor Red
} else {
Write-Host "Cache DNS u pastrua me sukses në $(Get-Date)" -ForegroundColor Green
}
}
catch {
Write-Host "Gabim gjatë ekzekutimit të ipconfig: $($_.Exception.Message)" -ForegroundColor Red
}
# Fshi të gjithë skedarët
try {
Remove-Item -Path "$folderPath\*" -Force
}
catch {
Write-Host "Gabim gjatë fshirjes së skedarëve: $($_.Exception.Message)" -ForegroundColor Red
}
}
# 10 sekonda pauzë mes kontrolleve
Start-Sleep -Seconds 10
}
1.3.Ekzekutimi i skriptit
Si Administrator, ekzekutoni
C:\scriptflushdns.ps1. Kjo do të hapë një dritare konsole PowerShell të quajtur "DNS Flush Process." Mos e mbyllni këtë dritare, pasi skripti ekzekutohet vazhdimisht, duke monitoruar dosjen dhe duke ekzekutuar pastrimin e cache DNS kur aktivizohet.
Sa herë që cache DNS pastrohet, skripti printon mesazhin:
Cache DNS u pastrua me sukses në ...
Për nisje automatike pas rinisjes së sistemit, konfiguroni skriptin të ekzekutohet si një detyrë e planifikuar.
2.Pastrimi i cache DNS si përdorues standard
Për të pastruar cache-in DNS si përdorues standard Windows, krijoni një skedar ose dosje bosh në
C:\flushdns.
Pas rreth 10 sekondash, skedari ose dosja e krijuar do të zhduket, duke treguar se komanda
ipconfig.exe /flushdns
është ekzekutuar.
Përmbajtja e këtij dokumenti është licencuar nga Interspace nën
Licencën MIT