Spesso mi capitano nuove aziende che adottano sui propri PC gli IP statici, e quindi ho creato questi script per evitare di passare per ogni computer e cambiare la configurazione della scheda di rete.
Ecco come fare…
Nel vostro server create, in una share condivisa raggiungibile da tutti i client di un dominio, il file AbilitaDHCP.vbs.
Lo script sarà eseguito da remoto su ogni PC tramite l’utility PSEXEC (quindi scaricate i e scompattate il file psexec.exe nella cartella c:\windows\system32 del server da cui lancerete gli script).
Ecco lo script VBS da creare e condividere:
strComputer = "." Set objWMIService = GetObject(_ "winmgmts:\\" & strComputer & "\root\cimv2") Set colNetAdapters = objWMIService.ExecQuery _ ("Select * from Win32_NetworkAdapterConfiguration " _ & "where IPEnabled=TRUE") For Each objNetAdapter In colNetAdapters errEnable = objNetAdapter.EnableDHCP() errEnable = objNetAdapter.SetDNSServerSearchOrder() Next
Ora create lo script DHCP-DNS-auto-da-remoto.ps1 come di seguito indicato. Quando lo lancerete vi sarà chiesto di inserire il nome del PC;
lo script quindi verificherà su tutte le schede di rete abilitate del PC se il client DHCP è già attivo e poi chiederà se volete abilitarlo.
$PC = read-host "Inserire il nome del PC da controllare" $test=Get-WmiObject win32_networkadapterconfiguration -computername $PC -erroraction silentlycontinue | where {($_.IPenabled)} if ($test) { $test|ft ipaddress, dhcpenabled, dhcpserver ,DNSServerSearchOrder -AutoSize if ($test.dhcpenabled) { write-host "L'host"$PC "ha gia' il DHCP attivo" } else { $Risposta = read-host "Vuoi abilitare DHCP/DNS automatici su"$PC"? (S/N)" if ($Risposta -eq "S") { psexec -accepteula \\$PC cscript /B /NoLogo \\server\condivisione\AbilitaDHCP.vbs psexec -accepteula \\$PC ipconfig /all read-host } } } else { write-host Host $PC non raggiungibile }