Назад | Перейти на главную страницу

Не найден позиционный параметр, который принимает аргумент WScript.CreateObject.

Пытаюсь выполнить:

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