0

.hta アプリケーションと以下のコードがあります。

デフォルトでは、以下のコマンドは C:\Windows\ syswow64 \cmd.exeの file.bat を開きます。

C:\Windows\ system32 \cmd.exeで開くにはどうすればよいですか?

回避策は、syswow64 の代わりに C:\Windows\system32\mshta.exe を使用して .hta ファイルを開くことですが、他のアイデアも見たいです。

Dim objShell
Set objShell = CreateObject("WScript.Shell")
objShell.Run "file.bat"

よろしくお願いします。

4

2 に答える 2

2

32ビット環境から起動するとC:\Windows\system32\cmd.exe実際に動くようです。C:\Windows\SysWOW64\cmd.exe

したがって、Bill Stewart と Ilya Kurnosov が示唆したように、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
    
于 2013-05-12T22:28:08.333 に答える
0

これが機能する可能性があります。

objShell.Run "%SystemRoot%\system32\cmd.exe /c file.bat"
于 2013-05-12T22:26:51.507 に答える