This is just broken, but broken times call for broken measures. I’m stuck on PSH V1 for reasons best left unmentioned (or maybe it’s unmentionable reasons.) To run remote commands, I don’t have remoting at my disposal – I’m stuck with SysInternal’s PSExec.exe.
As shown in Lee Holmes’ blog, you have to perform some hackosity to run a script remotely:
\\path\to\psexec.exe \\computerName cmd /c “echo . | powershell \\path\to\script.ps1”
This means you can’t use PSExec.exe’s -c option to copy the file over, so you have to manually copy the script over.
Here’s my ‘solution’ (to use the term exceptionally loosely):
@echo off && copy /y %~f0 %~f0.ps1 >NUL 2>&1
echo . | powershell -nologo -noprofile %~f0.ps1 %*
del /f /q %0.ps1 >NUL 2>&1 && exit /b 0
“@ | out-null;
$args = [Environment]::GetCommandLineArgs();
$scriptName = $args;
$args = $args[4..($args.Count – 1)];
“rest of script goes here”
Yeah. Hack-n-slash scripting.