sc stop beep
sc config beep start= demand
O comando sc
aceita opcionalmente um nome de máquina:
sc \someworkstation stop beep
sc \someworkstation config beep start= demand
Isso pode ser facilmente roteirizado para fazer o loop de uma lista de máquinas:
for %f in (boxen.txt) do (
sc \%f stop beep
sc \%f blah
)
Uma maneira alternativa de controlar remotamente os serviços é usar WMI . No entanto, eu não faço ideia de como isso deve ser usado. Ainda assim, esse script pode funcionar:
// usage:
// cscript fix.js < list-of-machines.txt
function disable(hostname) {
var inst = GetObject("winmgmts:{impersonationLevel=impersonate}//"+hostname+"/root/cimv2:Win32_Service=\"beep\"");
var input = inst.Methods_("ChangeStartMode").inParameters.SpawnInstance_();
input.StartMode = "Disabled";
return inst.ExecMethod_("ChangeStartMode", input);
}
while (true) {
try { input = WScript.StdIn.ReadLine(); }
catch (e) { break; }
WScript.StdOut.WriteLine("fixing on "+input);
disable(input);
}