Можно ли остановить устройство "Beep" на всех компьютерах в сети Windows?

В Windows стандартное поведение - издавать раздражающий звуковой сигнал каждый раз, когда в Windows происходит что-то заметное. В результате, когда кто-то отправляет электронную почту всей компании через MS Exchange, все компьютеры вокруг моей кабины издают один за другим. Это раздражает и не имеет смысла.

К счастью, звуковой сигнал можно отключить. Кто-то должен:

  • откройте "Диспетчер устройств",
  • выберите "Просмотр -> Показать скрытые устройства",
  • найти устройство "Beep" в узле "Устройства, отличные от Pug and Play",
  • откройте его свойства, перейдите на вкладку "Драйвер",
  • установите "тип запуска" на "Отключено" и
  • нажмите "Стоп".

Устройство Beep остановится и больше не будет издавать бесполезный звук.

Однако это решение требует отслеживания каждого компьютера, а затем общения с его пользователем, что не очень удобно. Диспетчер устройств не позволяет остановить устройство на другом компьютере.

Я ищу решение, которое может быть развернуто командой администраторов. У нас есть домен, и администраторы даже устанавливают программы для всей компании автоматически. Существуют ли какие-либо средства для автоматического отключения устройства "Beep" на всех компьютерах в сети Windows с некоторыми функциями удаленного администрирования?

2 ответа

Решение

Используйте объект групповой политики для развертывания сценария запуска компьютера, который запускает следующий пакетный файл

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

Указание этого значения реестра с помощью "4" является эквивалентом установки типа запуска "отключен".

Отредактировано, чтобы показать метод, который будет делать, как вы хотите с одной перезагрузкой.

sc stop beep
sc config beep start= требование

sc Команда дополнительно принимает имя машины:

sc \\ someworkstation stop beep
sc \\ someworkstation config beep start = требование

Это может быть легко написано для создания списка машин:

для%f in (boxen.txt) do (
  sc \\%f stop beep
  sc \\%f бла)

Альтернативный способ удаленного управления сервисами - использование WMI. Тем не менее, я не имею ни малейшего представления о том, как его использовать. Тем не менее, этот скрипт может работать:

// 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);
}
Другие вопросы по тегам