Control Remote Computer's Speaker Volume

Hi,

I would like to run the following power shell script on a remote computer

FunctionSet-Speaker($Volume){$wshShell=new-object-comwscript.shell;1…50|%{$wshShell.SendKeys([char]174)};1…$Volume|%{$wshShell.SendKeys([char]175)}}

Set-Speaker - Volume 10

I have tried to use the Invoke command without success, any suggestions on how to make it work on a remote computer?

Unless you have PSremoting enabled, and you are the local admin on the remote host. You cannot do this.

You also must use implicit / explicit remoting to run this type of commands.
You also, must understand how to use local variables in remote session, if you plan to use them.

If these remote host are in domain joined, you have to manually setup PSRemoting in workgroup mode.

All this is documented on TechNet and all over the web.

Just do a search for:
PSRemoting powershell
PSRemoting workgroup
PSRemoting local variables
PSRemoting permissions

PSremoting is enabled and I have admin permissions.

I use the first answer here: windows - Change audio level from powershell? - Stack Overflow

After putting the missing spaces in:

Function Set-Speaker($Volume){$wshShell=new-object -com wscript.shell;1..50|%{$wshShell.SendKeys([char]174)};
1..$Volume|%{$wshShell.SendKeys([char]175)}}

This seems to be the way to do it (powershell - Run a local function on a remote computer? - Stack Overflow), but it didn’t work for me. I even tried installing the script remotely.

invoke-command comp001 ${function:set-speaker} -ArgumentList 10