我的目标是创建我的 Powershell 脚本来自动安装 IIS 和我们需要的所有功能,甚至找到一个批处理文件来启用 powershell 脚本的执行,而不必继续“模块 - > SetExecutionPolicy ...”因此,更容易管理。
我想做的是创建一个 BATCH 文件,询问“您的机器上是否启用了脚本执行?” 我们有 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:我没有收到错误消息,我只是得到一个空的 cmd 窗口。
EDIT2:用 Jubjub Bandersnatch 的简单回答解决了这个问题,谢谢!对不起,糟糕的代码和简单的错误数量(如选项 1 和 2 等),我会学习更多,以便提出更好的问题。多谢你们。:))
cls
Powershell -noexit -command "& {Set-ExecutionPolicy remotesigned -Force}"
Powershell -File c:\ScriptsIIS\IISInstallation.ps1
这个应该可以的。