Пытаюсь выполнить:
Set objWshShell = CreateObject("WScript.Shell")
Получение ошибки:
[![PS C:\Windows\system32> Set objWshShell = WScript.CreateObject("WScript.Shell")
Set-Variable : A positional parameter cannot be found that accepts argument
'WScript.CreateObject'.
At line:1 char:1
+ Set objWshShell = WScript.CreateObject("WScript.Shell")
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidArgument: (:) \[Set-Variable\], ParameterBindingException
+ FullyQualifiedErrorId : PositionalParameterNotFound,Microsoft.PowerShell.Commands.SetVaria
bleCommand][1]][1]
Однако это работает:
$WSH = New-Object -Com WScript.Shell
$WSH.Run("explorer.exe""")
я пытаюсь запустить это что требует оболочки и ее контекста:
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run """%PROGRAMFILES(x86)%\Cisco\Cisco AnyConnect Secure Mobility Client\vpnui.exe"""
WScript.Sleep 3000
WshShell.AppActivate "Cisco AnyConnect Secure Mobility Client"
WshShell.SendKeys "{TAB}"
WshShell.SendKeys "{TAB}"
WshShell.SendKeys "{ENTER}"
WScript.Sleep 5000
WshShell.SendKeys "PASSWORD"
WshShell.SendKeys "{ENTER}"
Мне кажется, у вас проблемы с переводом кода VBS в PowerShell. Есть некоторые тонкие синтаксические различия, такие как:
$WSH = New-Object -Com wscript.shell
$WSH.run("executable")
$WSH.AppActivate("name")
$WSH.SendKeys("key to send")
Однако вы будете использовать сон PowerShell:
Start-Sleep -Seconds 5