0

IIS と必要なすべての機能のインストールを自動化する Powershell スクリプトを作成することを目指しており、「Modules -> SetExecutionPolicy ...」に移動することなく PowerShell スクリプトを実行できるようにするバッチ ファイルも見つけました。管理しやすくなります。

私がやりたかったのは、「マシンでスクリプトの実行が有効になっていますか?」と尋ねるバッチ ファイルを作成することです。「はい、実行を有効にしています」、「いいえ、実行を有効にしていません」、「わかりません」のような 3 つの異なる回答があります。答えに応じて、バッチは必要なファイルを実行して IIS をインストールします。答えが 1 の場合は .ps1 ファイルのみを実行し、答えが 2 または 3 の場合は、最初に .bat を実行して有効にし、次に .ps1 ファイルを実行します。

そのため、多くの調査を行い、スクリプトを作成しようとした後、機能するスクリプトを思いつくことができませんでした. ご覧のとおり、そこには多くのエラーがありますが、これを完了するのに十分なスクリプトの知識がありません。誰かが私を助けることができますか?

@ECHO OFF

:BEGIN
CLS
CHOICE /N /C:123 /M "In your system: 1 - Scripts are enabled. 2 - Scripts are disabled. 3 - I dont know (1, 2, or 3)"%1

IF ERRORLEVEL ==3 GOTO THREE
IF ERRORLEVEL ==2 GOTO TWO
IF ERRORLEVEL ==1 GOTO ONE

:THREE
CALL c:\ScriptsIIS\IISInstallation.ps1
CALL c:\ScriptsIIS\IISInstallation.ps1
ECHO Installation finished.

:TWO
CALL c:\ScriptsIIS\IISInstallation.ps1
CALL c:\ScriptsIIS\ScriptEnableExecution.bat
ECHO Installation finished.

:ONE
CALL c:\ScriptsIIS\ScriptEnableExecution.bat
ECHO Installation finished.


PAUSE    

エラーを指摘して、修正するのを手伝ってもらえますか?

EDIT1: エラー メッセージは表示されません。空のコマンド ウィンドウが表示されるだけです。

EDIT2: Jubjub Bandersnatchからの簡単な回答で問題を解決しました、ありがとうございます!ひどいコードと単純なエラー (特にオプション 1 と 2 で見られるように) で申し訳ありません。もっと勉強して、より良い質問ができるようにします。みんなありがとう。:))

cls
Powershell -noexit -command "& {Set-ExecutionPolicy remotesigned -Force}"
Powershell -File c:\ScriptsIIS\IISInstallation.ps1 

これはうまくいくはずです。

4

1 に答える 1

1

知りたいことがスクリプトによって検出可能である場合、ユーザーに何かを尋ねる理由はありますか?

PoSH 実行ポリシーを常にバイパスまたは何かに設定したいだけなら、そうしない理由はありません。次に、IISInstallation.ps1 を呼び出します。

PowerShell -Command "Set-ExecutionPolicy Bypass"
PowerShell -File c:\ScriptsIIS\IISInstallation.ps1

さらに良いことに、ポリシーが何であるかを気にせずにスクリプトを実行することはできません。

PowerShell -ExecutionPolicy Bypass -File c:\ScriptsIIS\IISInstallation.ps1
于 2013-06-25T21:04:33.293 に答える