É possível parar o dispositivo “Beep” em todos os computadores em uma rede Windows?

1

No Windows, o comportamento padrão é fazer um som de "beep" irritante toda vez que as coisas do Windows acontecerem. O resultado é que quando alguém envia um e-mail para toda a empresa através do MS Exchange, todos os computadores ao redor do meu cubículo emitem um bipe, um por um. Isso é chato e não faz sentido.

Felizmente, o sinal sonoro pode ser desligado. Alguém precisa:

  • abra o "Gerenciador de dispositivos",
  • selecione "Visualizar - > Mostrar dispositivos ocultos",
  • encontre o dispositivo "Beep" no nó "Non-Pug and Play Devices",
  • abra suas propriedades, vá para a guia "Driver",
  • definir "tipo de inicialização" para "Desativado" e
  • clique em "Parar".

O dispositivo "Beep" irá parar e não produzirá mais o som inútil.

No entanto, essa solução exige o rastreamento de todos os computadores e, depois, a conversa com o usuário, o que não é muito conveniente. O Gerenciador de dispositivos não permite parar um dispositivo em outro computador.

Estou procurando uma solução que possa ser implantada pela equipe de administradores. Temos um domínio e os administradores até instalam os programas em toda a empresa automaticamente. Existe algum meio de parar o dispositivo "Beep" e todos os computadores na rede Windows com alguns recursos de administração remota automaticamente?

    
por sharptooth 05.04.2010 / 11:28

2 respostas

2

Use o GPO para implantar um script de inicialização do computador que execute o seguinte arquivo em lote

net stop beep
reg add HKLM\System\CurrentControlSet\Services\Beep /v start /t REG_DWORD /d 4 /f

Picar esse valor de registro com um '4' é o equivalente a definir o tipo de inicialização como 'desativado'.

Editado para mostrar um método que fará o que você quiser com uma única reinicialização.

    
por 05.04.2010 / 11:59
1
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);
}
    
por 05.04.2010 / 18:39