是否有可能停止Windowsnetworking中的所有计算机上的“哔”设备?

在Windows上,每当Windows事件发生时,会发出令人讨厌的“嘟嘟”声音的默认行为。 结果是,当有人通过MS Exchange发送公司范围内的电子邮件时,我的机柜周围的所有计算机都会一个一个地发出哔哔声。 这是烦人的,没有任何意义。

幸运的是可以closures哔哔声。 有人必须:

  • 打开“设备pipe理器”,
  • select“查看 – >显示隐藏设备”,
  • 在“Non-Pug and Play Devices”节点中find“Beep”设备,
  • 打开它的属性,进入“驱动程序”选项卡,
  • 将“启动types”设置为“禁用”和
  • 点击“停止”。

“哔”装置将停止并不再产生无用的声音。

然而,这种解决scheme需要跟踪每台计算机,然后与不方便的用户交谈。 设备pipe理器不允许在另一台计算机上停止设备。

我正在寻找一个可以由pipe理员团队部署的解决scheme。 我们有一个域,pipe理员甚至自动安装公司范围的程序。 是否有任何方法可以自动停止Windowsnetworking中所有计算机的“哔声”设备以及某些远程pipe理function?

使用GPO部署运行以下batch file的计算机启动脚本

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

使用“4”来注册该registry值,相当于将启动types设置为“禁用”。

通过编辑来显示一种方法,只需要一次重启即可。

停止哔哔声
 sc config beep start = demand

sc命令可以select接受一个机器名称:

 sc \\ someworkstation停止哔哔声
 sc \\ someworkstation config beep start = demand

这可以很容易地脚本来循环的机器列表:

 (boxen.txt)中的%f做(
   sc \\%f停止嘟嘟声
   sc \\%f blah
 )

远程控制服务的另一种方法是使用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); }