我的目标是创建我的Powershell脚本,以自动化IIS的安装和我们需要的所有功能,甚至找到一个Batch文件,以便能够执行powershell脚本,而无需继续使用“Modules - > 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
这个应该有效。
答案 0 :(得分:1)
是否有理由向用户询问脚本是否可以检测到您想知道的内容?
如果您只希望将PoSH执行策略设置为绕过或者某些东西,为什么不这样做呢?然后,调用IISInstallation.ps1。
PowerShell -Command "Set-ExecutionPolicy Bypass"
PowerShell -File c:\ScriptsIIS\IISInstallation.ps1
更好的是,你不关心政策是什么,仍然运行脚本。
PowerShell -ExecutionPolicy Bypass -File c:\ScriptsIIS\IISInstallation.ps1