DNS keš u Windows sistemima se obično briše komandom
ipconfig /flushdns
. Ova komanda zahteva administratorske privilegije, što stvara izazov u Windows Server okruženjima gde standardni korisnici treba da osveže svoj DNS keš tokom rešavanja problema ili nakon mrežnih promena.
Da bismo prevazišli ovo ograničenje, napravićemo automatizovani sistem koji se sastoji od:
- Jednokratno podešavanje od strane Administratora. Korisnik sa administratorskim privilegijama kreira i izvršava PowerShell skriptu, koja se kontinuirano izvršava u pozadini sa administratorskim privilegijama. Njena jedina svrha je da nadgleda određeni folder za bilo kakve promene. Kada se promene otkriju, automatski izvršava DNS flush komandu.
- Operacija standardnog korisnika. Da bi očistio DNS keš, standardni korisnik kreira praznu datoteku ili folder u folderu koji nadgleda skripta. Datoteka ili folder će nestati za oko 10 sekundi, što ukazuje da je komanda
ipconfig /flushdns
izvršena.
Ovaj sistem održava bezbednost zadržavanjem administratorskih privilegija unutar PowerShell skripte, dok standardni korisnici izvršavaju samo operacije sa datotekama u određenom folderu gde su im dodeljena prava pristupa.
1.Koraci instalacije koje izvodi Administrator
Sledeće korake treba da izvrši korisnik sa administratorskim privilegijama. U ovom primeru, koristićemo C: disk, ali možete prilagoditi putanju foldera prema potrebi.
1.1.Kreiranje nadgledanog foldera
Kreirajte folder pod nazivom
flushdns koji će se koristiti za pokretanje brisanja DNS keša. Dodelite pristup folderu za standardne korisnike, obično u grupi "Users". Koristite sledeće PowerShell komande:
New-Item -Path "C:\flushdns" -ItemType Directory
icacls "C:\flushdns" /grant "Users:(OI)(CI)F"
Druga komanda dodeljuje pun pristup svim korisnicima. Da biste ograničili pristup na određene korisnike ili grupe, zamenite "Users" odgovarajućim imenom korisnika ili grupe.
1.2.Kreiranje PowerShell skripte
Kreirajte PowerShell skript datoteku na
C:\scriptflushdns.ps1 sa sledećim sadržajem:
# Putanja do foldera za nadgledanje
$folderPath = "C:\flushdns"
###### NE MODIFIKUJTE ISPOD OVE LINIJE
# Naslov prozora
$host.UI.RawUI.WindowTitle = "DNS Flush Process"
# Kontinuirana petlja
while ($true) {
$files = Get-ChildItem -Path $folderPath -File -ErrorAction SilentlyContinue
# Ako ima datoteka
if ($files.Count -gt 0) {
# Izvrši ipconfig /flushdns
try {
$result = Start-Process "ipconfig.exe" -ArgumentList "/flushdns" -Verb RunAs -WindowStyle Hidden -Wait -PassThru
if ($result.ExitCode -ne 0) {
Write-Host "Greška: DNS flush nije uspeo sa kodom $($result.ExitCode)" -ForegroundColor Red
} else {
Write-Host "DNS keš uspešno obrisan u $(Get-Date)" -ForegroundColor Green
}
}
catch {
Write-Host "Greška pri izvršavanju ipconfig: $($_.Exception.Message)" -ForegroundColor Red
}
# Obriši sve datoteke
try {
Remove-Item -Path "$folderPath\*" -Force
}
catch {
Write-Host "Greška pri brisanju datoteka: $($_.Exception.Message)" -ForegroundColor Red
}
}
# 10 sekundi pauze između provera
Start-Sleep -Seconds 10
}
1.3.Pokretanje skripte
Kao Administrator, pokrenite
C:\scriptflushdns.ps1. Ovo će otvoriti PowerShell konzolni prozor pod nazivom "DNS Flush Process." Ne zatvarajte ovaj prozor, jer se skripta izvršava kontinuirano, nadgledajući folder i izvršavajući brisanje DNS keša kada se pokrene.
Kada god se DNS keš obriše, skripta ispisuje poruku:
DNS keš uspešno obrisan u ...
Za automatsko pokretanje nakon restarta sistema, konfigurišite skriptu da se pokreće kao planiran zadatak.
2.Brisanje DNS keša kao standardni korisnik
Da biste obrisali DNS keš kao standardni Windows korisnik, kreirajte praznu datoteku ili folder u
C:\flushdns.
Nakon otprilike 10 sekundi, kreirana datoteka ili folder će nestati, što ukazuje da je komanda
ipconfig.exe /flushdns
izvršena.
Sadržaj ovog dokumenta je licenciran od strane Interspace-a pod
MIT licencom