Standardkommunikationsgerät festlegen Windows 10 Powershell

Standardkommunikationsgerät festlegen Windows 10 Powershell

Standardkommunikationsgerät Powershell.\t

ist es möglich, den Audiogeräteausgang in Powershell als Standardkommunikationsgerät festzulegen? ich brauche das, weil ich zwischen meinen Lautsprechern und meinen Kopfhörern wechsle. Ich verwende bereits AudioDeviceCmdlets in Powershell, um ein Audiogerät als Standardausgang festzulegen.

ich habe bereits versucht, dies in der Registrierung zu tun, aber Powershell kann in diesem bestimmten Teil keinen Wert ändern (ich habe Powershell im Administratormodus ausgeführt).

damit möchte ich ein Skript erstellen, das erkennt, welches Gerät ein- oder ausgeschaltet ist und dann weiß, ob es als Ausgabe auf die Lautsprecher oder auf meine Kopfhörer umschalten soll

ich habe diesen Code bereits:

if((Get-PnpDevice -InstanceId 'INSTANCEID' | Select-Object -Property status) -eq "OK"){ Disable-PnpDevice -InstanceId 'INSTANCEID' -confirm:$false Enable-PnpDevice -InstanceId 'INSTANCEID' -confirm:$false } Else { Enable-PnpDevice -InstanceId 'INSTANCEID' -confirm:$false }

Standard-Audiogerät-Ausgabekopfhörer GAME Set-AudioDevice -ID "deviceid"

Standard-Audiogeräteausgabe Lautsprecher Set-AudioDevice -ID "deviceid"

Panzer.

Antwort1

Ich habe dies nie in PowerShell ausprobiert, aber ich verwende Folgendes aus PowerShell:

nircmd.exe setdefaultsounddevice FrontHeadphones

wo FrontHeadphonesist der Name eines Audio-Geräts, das Sie brauchennircmd von NirSoftdafür.

Antwort2

Versuchen Sie Folgendes und nehmen Sie die nötigen Anpassungen vor.

Umschalten der Audioeingabe und -ausgabe mit PowerShell

Der Dialog der Systemsteuerung ändert im Hintergrund lediglich ein paar Registrierungseinstellungen. Ich wollte ein Skript, mit dem ich von einem Profil zu einem anderen wechseln kann.

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

Wie Sie sehen, gibt es drei Optionen:

-profiles – Listet die verfügbaren Soundprofile auf.
-devices – Listet die Soundgeräte auf.
-set [profile] – Legt das Audioprofil fest.

verwandte Informationen