Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Call VBScript With Return Value on Remote Machine With Powershell

I need to call a remote VB script from Powershell, and the VB script needs to run on the remote machine.

I have been using \$computer\root\cimv2:Win32_Process").Create(C:\test.vbs)

This works, however I can't get a return value from the script, just a return value from the win32 process.

I would convert the whole thing to powershell, but can't as I'm connecting to a legacy domain I can't install additional tools on so have to call the remote vbscript

like image 422
paulioc Avatar asked Aug 30 '26 00:08

paulioc


1 Answers

This is an old question but I would like to share my solution. It's the same as the one posted by Ansgar but it's been tested and working fine:

$VNC = '\\share\software\AppName\_Install_Silent.vbs'
$Computer = 'RemoteHost'
$TMP = "\\$Computer\c$\TEMP"

if (!(Test-Path $TMP)) {
    New-Item -Path $TMP -ItemType Directory
}

Copy-Item -LiteralPath (Split-Path $VNC -Parent) -Destination $TMP -Container -Recurse -Force -Verbose
$LocalPath = Join-Path 'C:\TEMP' (Join-Path (Split-Path $VNC -Parent | Split-Path -Leaf) (Split-Path $VNC -Leaf))
Invoke-Command -ScriptBlock {cscript.exe $Using:LocalPath} -Computer $Computer

# Restart might be needed of remote host

The difference is that you have to copy the files first to the remote machine to avoid the double hop issue and then you can install it with the $Using variable.

Hope this helps someone.

like image 94
DarkLite1 Avatar answered Aug 31 '26 18:08

DarkLite1



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!