How to configure system volume with PowerShell

Back in 2011 I wrote a blog post on how to mute Windows System Volume programmatically.  This week I found another approach on GitHub using PowerShell.

The PowerShell Module WindowsAudioDevice-Powershell-Cmdlet provides a number of cmdlets to control the Windows System volume.

  • Get-DefaultAudioDevice
  • Get-AudioDeviceList
  • Set-DefaultAudioDevice [-Index] <Int>
  • Set-DefaultAudioDevice [-Name] <String>
  • Set-DefaultAudioDevice [-InputObject] <AudioDevice>
  • Set-DefaultAudioDeviceVolume -Volume <float>
  • Get-DefaultAudioDeviceVolume
  • Set-DefaultAudioDeviceMute
  • Write-DefaultAudioDeviceValue [-StreamValue

I wrote the below PowerShell script to solve a request to set the system volume to mute.

SetPCVolumeMute.ps1

 <#   
    .SYNOPSIS   
        Sets the PC Volume to "MUTE"
         
    .DESCRIPTION   
        Sets the PC Volume to mute and volume to 0
        This script uses the AudioDevice Cmdlet from https://github.com/cdhunt/WindowsAudioDevice-Powershell-Cmdlet
        
    .PARAMETER (none)
      
         
    .NOTES   
        Author: Alex Verboon
        Version: 1.0       
            - initial version
     
    .EXAMPLE 
    SetPCVolumeMute.ps1     
  
    #>         



# Get the current script Name
$ScriptName = $MyInvocation.MyCommand.Name

# Get Current Script Path
$scriptPath = split-path -parent $MyInvocation.MyCommand.Definition

# Import module (module DLL is stored in same path as the script)
$AudioModuleName = $scriptPath + "\AudioDeviceCmdlets.dll"
Import-Module -Name $AudioModuleName
Set-DefaultAudioDeviceMute
# if the volume was already muted, the above command unmutes it, so we also 
# set the volume to 0
Set-DefaultAudioDeviceVolume 0

If you do not want to permanently install the module on the device, just place the following files into the same directory as the SetPCVolumeMute.ps1

“\PCVolumeMute\AudioDeviceCmdlets.dll”
“\PCVolumeMute\AudioDeviceCmdlets.dll-Help.xml”
“\PCVolumeMute\CoreAudioApi.dll”
“\PCVolumeMute\SetPCVolumeMute.ps1”

I have tested the script on Windows 8 64 bit and Windows 7 64 Bit and on 3 different hardware models.

That’s it

Leave a Reply