VBScript - открыть командный файл с 32-битным cmd
У меня есть приложение.hta и приведенный ниже код.
По умолчанию следующая команда открывает файл file.bat в C: \ Windows \ syswow64 \ cmd.exe
Как мне открыть его с помощью C: \ Windows \ system32 \ cmd.exe?
Обходным решением будет открыть файл.hta с помощью C:\Windows\system32\mshta.exe вместо файла syswow64, но я хотел бы увидеть другие идеи.
Dim objShell
Set objShell = CreateObject("WScript.Shell")
objShell.Run "file.bat"
Спасибо заранее.
2 ответа
По-видимому C:\Windows\system32\cmd.exe
на самом деле работает C:\Windows\SysWOW64\cmd.exe
при запуске из 32-битной среды.
Таким образом, как предложили Билл Стюарт и Илья Курносов, вам придется настроить политику выполнения для вашей 32-битной PowerShell. Есть 3 способа сделать это:
Задайте политику выполнения глобально с помощью политики системы или домена. Тем не менее, этот маршрут не кажется вам жизнеспособным, так как вы сказали, что у вас нет прав администратора на данном сервере.
Установите политику выполнения для пользователя, запустив вручную
C:\Windows\SysWOW64\WindowsPowerShell\v1.0\powershell.exe
на сервере и запустив командуSet-ExecutionPolicy RemoteSigned
, Это должно быть сделано для каждого пользователя и не будет работать, если политика исключений заблокирована групповой политикой (см. Выше).Обойти политику выполнения в командной строке, добавив
-ExecutionPolicy Bypass
на вызов PowerShell вfile.bat
:powershell.exe -ExecutionPolicy Bypass -NoLogo -File file.ps1
Возможно, это сработает.
objShell.Run "%SystemRoot%\system32\cmd.exe /c file.bat"