尝试自动执行安装IIS 7.0的2个脚本

时间:2013-06-25 20:38:17

标签: powershell batch-file

我的目标是创建我的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 

这个应该有效。

1 个答案:

答案 0 :(得分:1)

是否有理由向用户询问脚本是否可以检测到您想知道的内容?

如果您只希望将PoSH执行策略设置为绕过或者某些东西,为什么不这样做呢?然后,调用IISInstallation.ps1。

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

更好的是,你不关心政策是什么,仍然运行脚本。

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