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"
Другие вопросы по тегам