Skip to main content
improved formatting
Source Link
Ansgar Wiechers
  • 201.5k
  • 27
  • 286
  • 363

Call VBS on a server with parameters in PowerShell

I want to call a VBScript located on a server with a PowerShell script, I want to pass parameters in the VBS by using invoke-command.

Code  :

$username = [Environment]::UserName # Get the current user name
# Get with a Credential the logins to connect to an AS400 Server
$credential = $host.ui.PromptForCredential("Login", "Please enter your ID.", "", "")
$ASUser = $credential.Username.Substring(1) 
$ASPwrd = $credential.GetNetworkCredential().password 

# Call of the VBS on the server with these parameters
Invoke-Command -ComputerName MyServerName -ScriptBlock { CSCRIPT "C:\MyScript.vbs" } -ArgumentList $username, $ASUser, $ASpwrd
$username = [Environment]::UserName # Get the current user name
# Get with a Credential the logins to connect to an AS400 Server
$credential = $host.ui.PromptForCredential("Login", "Please enter your ID.", "", "")
$ASUser = $credential.Username.Substring(1) 
$ASPwrd = $credential.GetNetworkCredential().password 

# Call of the VBS on the server with these parameters
Invoke-Command -ComputerName MyServerName -ScriptBlock {
  CSCRIPT "C:\MyScript.vbs"
} -ArgumentList $username, $ASUser, $ASpwrd

But I've got an issue caused by the parameters in the VBS, at these lines  :

User = WScript.Arguments(0)
UID = WScript.Arguments(1)
PWD = WScript.Arguments(2)
User = WScript.Arguments(0)
UID = WScript.Arguments(1)
PWD = WScript.Arguments(2)

The PowerShell script returns me this error  :

C:\MyScript.vbs(64, 1) Microsoft VBScript runtime error: Subscript out of range

  • CategoryInfo : NotSpecified: (C:\Excel Script...pt out of range:String) [], RemoteException
  • FullyQualifiedErrorId : NativeCommandError
C:\MyScript.vbs(64, 1) Microsoft VBScript runtime error: Subscript out of range
    + CategoryInfo          : NotSpecified: (C:\Excel Script...pt out of range:String) [], RemoteException
    + FullyQualifiedErrorId : NativeCommandError

The line 64 is User = WScript.Arguments(0).

It seems that my VBS does not recognize that I pass parameters, so I think the problem comes from the PS script, I also tried to pass the parameters like this  :

Invoke-Command -ComputerName MyServerName -ScriptBlock { CSCRIPT "C:\MyScript.vbs" $username $ASUser $ASpwrd}
Invoke-Command -ComputerName MyServerName -ScriptBlock {
  CSCRIPT "C:\MyScript.vbs" $username $ASUser $ASpwrd
}

It does not work...

Call VBS on a server with parameters in PowerShell

I want to call a VBScript located on a server with a PowerShell script, I want to pass parameters in the VBS by using invoke-command.

Code  :

$username = [Environment]::UserName # Get the current user name
# Get with a Credential the logins to connect to an AS400 Server
$credential = $host.ui.PromptForCredential("Login", "Please enter your ID.", "", "")
$ASUser = $credential.Username.Substring(1) 
$ASPwrd = $credential.GetNetworkCredential().password 

# Call of the VBS on the server with these parameters
Invoke-Command -ComputerName MyServerName -ScriptBlock { CSCRIPT "C:\MyScript.vbs" } -ArgumentList $username, $ASUser, $ASpwrd

But I've got an issue caused by the parameters in the VBS, at these lines  :

User = WScript.Arguments(0)
UID = WScript.Arguments(1)
PWD = WScript.Arguments(2)

The PowerShell script returns me this error  :

C:\MyScript.vbs(64, 1) Microsoft VBScript runtime error: Subscript out of range

  • CategoryInfo : NotSpecified: (C:\Excel Script...pt out of range:String) [], RemoteException
  • FullyQualifiedErrorId : NativeCommandError

The line 64 is User = WScript.Arguments(0).

It seems that my VBS does not recognize that I pass parameters, so I think the problem comes from the PS script, I also tried to pass the parameters like this  :

Invoke-Command -ComputerName MyServerName -ScriptBlock { CSCRIPT "C:\MyScript.vbs" $username $ASUser $ASpwrd}

It does not work...

Call VBS on a server with parameters

I want to call a VBScript located on a server with a PowerShell script, I want to pass parameters in the VBS by using invoke-command.

Code:

$username = [Environment]::UserName # Get the current user name
# Get with a Credential the logins to connect to an AS400 Server
$credential = $host.ui.PromptForCredential("Login", "Please enter your ID.", "", "")
$ASUser = $credential.Username.Substring(1) 
$ASPwrd = $credential.GetNetworkCredential().password 

# Call of the VBS on the server with these parameters
Invoke-Command -ComputerName MyServerName -ScriptBlock {
  CSCRIPT "C:\MyScript.vbs"
} -ArgumentList $username, $ASUser, $ASpwrd

But I've got an issue caused by the parameters in the VBS, at these lines:

User = WScript.Arguments(0)
UID = WScript.Arguments(1)
PWD = WScript.Arguments(2)

The PowerShell script returns me this error:

C:\MyScript.vbs(64, 1) Microsoft VBScript runtime error: Subscript out of range
    + CategoryInfo          : NotSpecified: (C:\Excel Script...pt out of range:String) [], RemoteException
    + FullyQualifiedErrorId : NativeCommandError

The line 64 is User = WScript.Arguments(0).

It seems that my VBS does not recognize that I pass parameters, so I think the problem comes from the PS script, I also tried to pass the parameters like this:

Invoke-Command -ComputerName MyServerName -ScriptBlock {
  CSCRIPT "C:\MyScript.vbs" $username $ASUser $ASpwrd
}

It does not work.

Source Link
Tomafa06
  • 140
  • 1
  • 1
  • 11

Call VBS on a server with parameters in PowerShell

I want to call a VBScript located on a server with a PowerShell script, I want to pass parameters in the VBS by using invoke-command.

Code :

$username = [Environment]::UserName # Get the current user name
# Get with a Credential the logins to connect to an AS400 Server
$credential = $host.ui.PromptForCredential("Login", "Please enter your ID.", "", "")
$ASUser = $credential.Username.Substring(1) 
$ASPwrd = $credential.GetNetworkCredential().password 

# Call of the VBS on the server with these parameters
Invoke-Command -ComputerName MyServerName -ScriptBlock { CSCRIPT "C:\MyScript.vbs" } -ArgumentList $username, $ASUser, $ASpwrd

But I've got an issue caused by the parameters in the VBS, at these lines :

User = WScript.Arguments(0)
UID = WScript.Arguments(1)
PWD = WScript.Arguments(2)

The PowerShell script returns me this error :

C:\MyScript.vbs(64, 1) Microsoft VBScript runtime error: Subscript out of range

  • CategoryInfo : NotSpecified: (C:\Excel Script...pt out of range:String) [], RemoteException
  • FullyQualifiedErrorId : NativeCommandError

The line 64 is User = WScript.Arguments(0).

It seems that my VBS does not recognize that I pass parameters, so I think the problem comes from the PS script, I also tried to pass the parameters like this :

Invoke-Command -ComputerName MyServerName -ScriptBlock { CSCRIPT "C:\MyScript.vbs" $username $ASUser $ASpwrd}

It does not work...