设置默认通信设备 Windows 10 powershell

设置默认通信设备 Windows 10 powershell

默认通信设备 powershell.\

是否可以在 powershell 中将音频设备输出设置为默认通信设备?我需要这个,因为我在扬声器和耳机之间切换,我已经在 powershell 中使用 AudioDeviceCmdlets 将音频设备设置为默认输出。

我已经尝试在注册表中执行此操作,但 powershell 无法更改该特定部分的值(我在管理员模式下运行 powershell)

我想用这个创建一个脚本,它可以查看哪个设备已关闭或打开,然后知道切换到扬声器或耳机作为输出

我已经有这个代码了:

如果((Get-PnpDevice -InstanceId'INSTANCEID'| Select-Object -Property status)-eq“OK”){Disable-PnpDevice -InstanceId'INSTANCEID'-confirm:$falseEnable-PnpDevice -InstanceId'INSTANCEID'-confirm:$false}否则{Enable-PnpDevice -InstanceId'INSTANCEID'-confirm:$false}

默认音频设备输出耳机GAME Set-AudioDevice -ID "deviceid"

默认音频设备输出扬声器 Set-AudioDevice -ID“deviceid”

坦克。

答案1

我从未在 PowerShell 中尝试过这个,但我在 PowerShell 中使用它:

nircmd.exe setdefaultsounddevice FrontHeadphones

FrontHeadphones音频设备的名称在哪里,你需要NirSoft 的 nircmd为了这。

答案2

尝试下面的操作,根据需要进行调整。

使用 PowerShell 切换音频输入和输出

控制面板对话框在后台所做的就是更改一些注册表设置。我想要一个脚本,让我可以从一个配置文件更改为另一个配置文件。

    $r = [System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms")
    $regRoot = "HKCU:\Software\Microsoft\"
    
    
    $profiles = @{"Netbook" = @("Realtek HD Audio output",      
                                "Realtek HD Audio input");
                "Bluetooth" = @("Bluetooth Hands-free Audio", 
                                "Bluetooth Hands-free Audio") }
    
    function Write-Message ( [string]$message )
    {
        echo $message
        # Uncomment this line to show dialog outputs from -set 
        # $r = [System.Windows.Forms.MessageBox]::Show($message)
    }
    
    function Set-Mapping ( [string]$devOut, [string]$devIn )
    {
        echo "Profile audio:`n  in  = $devIn`n  out = $devOut"
    
        $regKey = $regRoot + "\Multimedia\Sound Mapper\"
        Set-ItemProperty $regKey -name Playback -value $devOut
        Set-ItemProperty $regKey -name Record -value $devIn
    }
    
    function List-Devices
    {
        $regKey = $regRoot + "\Windows\CurrentVersion\Applets\Volume Control\"
        echo "Sound devices:"
        ls $regKey | where { ! $_.Name.EndsWith("Options") } | 
            Foreach-Object { 
                echo ("  " + $_.Name.Substring($_.Name.LastIndexOf("\")+1)) 
            }
    }
    
    $cmd = $args[0]
    switch ($cmd)
    {
        "-profiles" 
        {
            echo "Sound profiles:"
            echo $profiles
        }
        "-devices"
        {
            List-Devices
        }
        "-set" 
        {
            $p = $args[1]
            if (!$profiles.ContainsKey($p)) {
                echo "No such profile: $p"
                echo $profiles
                exit
            }
            Set-Mapping $profiles.Get_Item($p)[0] $profiles.Get_Item($p)[1]
            Write-Message "Profile set to: $p"
        }
        default 
        { 
            Write-Message "No such option: $cmd" 
        }
    }

如您所见,它有三个选项:

-profiles – 列出可用的声音配置文件。
-devices – 列出声音设备。
-set [profile] – 设置音频配置文件。

相关内容