Можно ли остановить устройство "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);
}