Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Flushdns and registerdns on multiple machine by powershell

Tags:

powershell

Simple question but not able to find answer on google at the moment. My powershell version is 2. I want to flush and registerdns on multiple machines.

ipconfig /flushDns

ipconfig /registerdns

I can't use invoke command and psremoting is not enabled on machines.

Any advise how to flushdns & registerdns.

like image 676
Roxx Avatar asked Sep 13 '25 15:09

Roxx


1 Answers

It's pretty easy with Invoke-wmimethod

Create a list of your computers in a file named servers.txt, then create a script like this :

$listofservers = Get-Content .\servers.txt

foreach ($servers in $listofservers) {

Invoke-WmiMethod -class Win32_process -name Create -ArgumentList ("cmd.exe /c ipconfig /flushdns") -ComputerName $servers

Invoke-WmiMethod -class Win32_process -name Create -ArgumentList ("cmd.exe /c ipconfig /registerdns") -ComputerName $servers

}

By default you'll not get the output of the command, but you'll only get information if the command sucessfully ran on remote computer through this value :

ReturnValue 

If this value equal to 0 that means the command was sucessfully executed on the remote server.

If you want to get the command output, you can achieve it but adding output redirection to txt file :

$listofservers = Get-Content .\servers.txt

foreach ($servers in $listofservers) {

Invoke-WmiMethod -class Win32_process -name Create -ArgumentList ("cmd.exe /c ipconfig /flushdns > c:\flushdnsresult.txt") -ComputerName $servers

Invoke-WmiMethod -class Win32_process -name Create -ArgumentList ("cmd.exe /c ipconfig /registerdns > c:\registerdnsresult.txt") -ComputerName $servers

}

Then you'll find a txt file on your remote server containing the result output of cmd command.

like image 194
Adeel ASIF Avatar answered Sep 16 '25 07:09

Adeel ASIF



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!