0

PHPを介してPowerShellスクリプトを実行しようとしています。

system("C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe -InputFormat none -File AD_Account_Automation.ps1);

phpスクリプトを実行すると、Webブラウザで次のエラーが返されます。

File C:\inetpub\wwwroot\Test_Automation.ps1 can not be loaded. The file C:\inetpub\wwwroot\Test_Automation.ps1 is not digitally signed. The script will not execute on the sys tem. Please see "get-help about_signing" for more details.. + CategoryInfo : NotSpecified: (:) [], ParentContainsErrorRecordE xception + FullyQualifiedErrorId : RuntimeException

PowerShell実行ポリシーをUnrestrictedとRemoteSignedの両方に設定しましたが、問題が修正されません。このスクリプトは、PowerShellコマンドラインから呼び出した場合、およびWindows内のコマンドプロンプトから呼び出した場合に正常に実行されます。

私も次のことを試しました:

exec("C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe -ExecutionPolicy RemoteSigned -File C:\\inetpub\\wwwroot\\AD_Account_Automation.ps1 < NUL");

そしてIISはただハングします。何か案は?

4

1 に答える 1

0

ホスティング環境がこれを許可しないことはほぼ確実です。ActiveDirectory GroupPolicy は、デジタル署名をオーバーライドします。ワム。ええ、私は知っています、それはひどいですが、それには正当な理由があります。ホスティング プロバイダーに連絡して、これが根本的な原因であるかどうかを確認してください。

編集: 実際には、根本的な原因はもっと単純です。終了引用符 " で文字列を閉じていません。これにより、IIS が確実にハングアップする可能性があります。

于 2012-08-19T03:38:16.973 に答える