禁用Windows 10中所有音频设备的独占模式

禁用Windows 10中所有音频设备的独占模式,windows,powershell,audio,settings,device,Windows,Powershell,Audio,Settings,Device,我需要在大量PC上配置音频设备 我被困在如何禁用独占模式,“允许应用程序采用此设备的独占模式” 我可以禁用所有媒体设备: Get PnpDevice-class“MEDIA”| ForEach对象{禁用PnpDevice-InstanceId$\禁用PnpDevice-InstanceId-Confirm:$false} 我可以启用所需的设备: 获取PnpDevice-Class媒体|其中FriendlyName类似“*NVIDIA高清音频*”|其中状态-eq“OK”|每个对象{禁用PnpDev

我需要在大量PC上配置音频设备

我被困在如何禁用独占模式,“允许应用程序采用此设备的独占模式”

  • 我可以禁用所有媒体设备:
  • Get PnpDevice-class“MEDIA”| ForEach对象{禁用PnpDevice-InstanceId$\禁用PnpDevice-InstanceId-Confirm:$false}

  • 我可以启用所需的设备:
  • 获取PnpDevice-Class媒体|其中FriendlyName类似“*NVIDIA高清音频*”|其中状态-eq“OK”|每个对象{禁用PnpDevice-instanceid$|.instanceid-确认:$false}

  • 我可以利用AudioDeviceCmdlet设置默认音频设备(播放/录制)

  • 我甚至可以通过注册表将声音降低设置为0

  • [HKEY\U CURRENT\U USER\SOFTWARE\Microsoft\Multimedia\Audio]“UserDuckingPreference”=dword:00000003

  • 但我找不到一个API或数据结构,它对应于状态发生变化的位置和方式

  • 有人能在这里给我指出正确的方向吗?

    这些参数在注册表项中可用:

    HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\MMDevices\Audio\Capture\{xxx-xxx-xxx-xxx}\Properties
    
    (根据默认记录设备的GUID更改XXX)

    钥匙的名称如下:

    {b3f8fa53-0004-438e-9003-51a46e139bfc},3    
    {b3f8fa53-0004-438e-9003-51a46e139bfc},4
    
    该值可以是0或1

    这对应于复选框“允许应用程序独占控制此设备”和“给予独占模式应用程序优先权”

    但这些密钥属于系统帐户,不能用脚本轻松编辑

    如果您可以使用外部程序,nirsoft软件实用程序可以完成以下工作:

    您可以从cli使用它:

    SoundVolumeView.exe /SetExclusivePriority "XXXXX" 0
    SoundVolumeView.exe /SetAllowExclusive "XXXXXX" 0
    
    (XXX可以是记录设备的ID或名称)