configurar el dispositivo de comunicación predeterminado Windows 10 PowerShell

configurar el dispositivo de comunicación predeterminado Windows 10 PowerShell

dispositivo de comunicación predeterminado powershell.\

¿Es posible configurar la salida del dispositivo de audio como dispositivo de comunicación predeterminado en PowerShell? Necesito esto porque cambio entre mis parlantes y mis auriculares. Ya uso AudioDeviceCmdlets en PowerShell para configurar un dispositivo de audio como salida predeterminada.

Ya intenté hacerlo en el registro pero PowerShell no puede cambiar un valor en esa parte específica (ejecuté PowerShell en modo administrador)

Con esto quiero crear un script que pueda ver qué dispositivo está encendido o apagado y luego sepa cambiar a los parlantes o a mis auriculares como salida.

ya tengo este codigo:

if((Get-PnpDevice -InstanceId 'INSTANCEID' | Seleccionar-Objeto -Estado de propiedad) -eq "OK"){ Disable-PnpDevice -InstanceId 'INSTANCEID' -confirm:$false Enable-PnpDevice -InstanceId 'INSTANCEID' -confirm: $false } De lo contrario { Enable-PnpDevice -InstanceId 'INSTANCEID' -confirm:$false }

auriculares de salida de dispositivo de audio predeterminados GAME Set-AudioDevice -ID "deviceid"

salida predeterminada del dispositivo de audio Altavoces Set-AudioDevice -ID "deviceid"

tanques.

Respuesta1

Nunca probé esto en PowerShell, pero estoy usando esto desde PowerShell:

nircmd.exe setdefaultsounddevice FrontHeadphones

¿ Dónde FrontHeadphonesestá el nombre de un dispositivo de audio? NecesitaNircmd de NirSoftpara esto.

Respuesta2

Pruebe lo siguiente y modifique según sea necesario.

Cambio de entrada y salida de audio con PowerShell

Todo lo que hace el cuadro de diálogo del panel de control bajo el capó es cambiar algunas configuraciones de registro. Lo que quería un script que me permitiera cambiar de un perfil a otro.

    $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" 
        }
    }

Como puedes ver tiene tres opciones:

-profiles: enumera los perfiles de sonido disponibles.
-dispositivos: enumera los dispositivos de sonido.
-set [perfil] – Establece el perfil de audio.

información relacionada