如何使用Powershell脚本执行IISRESET
有人知道如何使用PowerShell脚本执行IISRESET吗?我正在使用PowerGUI编辑器,并将PowerShell 1.0安装在Windows 2008机箱上。不确定您要查找的确切内容,但创建一个包含“iisreset/noforce”主体的脚本如何使用Powershell脚本执行IISRESET,iis,powershell,Iis,Powershell,有人知道如何使用PowerShell脚本执行IISRESET吗?我正在使用PowerGUI编辑器,并将PowerShell 1.0安装在Windows 2008机箱上。不确定您要查找的确切内容,但创建一个包含“iisreset/noforce”主体的脚本 下面是一个示例:我知道这已经很旧了,但您可以从Powershell的命令行运行任何命令行进程。因此,您只需要一个脚本,该脚本使用您需要的任何开关调用IISReset。您可以使用Invoke命令cmdlet执行此操作: invoke-comman
下面是一个示例:我知道这已经很旧了,但您可以从Powershell的命令行运行任何命令行进程。因此,您只需要一个脚本,该脚本使用您需要的任何开关调用IISReset。您可以使用Invoke命令cmdlet执行此操作:
invoke-command -scriptblock {iisreset}
更新:
还可以使用&call操作符简化命令:
&{iisreset}
我发现使用最简单的命令
D:\PS\psexec\server\u name iisreset这对我来说很有效。在此应用程序中,我不关心返回代码:
Start-Process -FilePath C:\Windows\System32\iisreset.exe -ArgumentList /RESTART -RedirectStandardOutput .\iisreset.txt
Get-Content .\iisreset.txt | Write-Log -Level Info
Write-Log cmdlet是我用于记录日志的自定义cmdlet,但您可以用其他cmdlet替代它。IIS停止或启动(已测试)
使用
和{iisreset}
时偶尔会出现故障,这让我想到:
启动进程“iisreset.exe”-非Windows-等待
现在它等待
iisreset.exe
优雅地结束。iisreset.exe
支持将计算机名称作为参数。下面的示例显示了如何在多台服务器上重置IIS的基本思想:
$servers = @()
$servers += 'server1'
$servers += 'server2'
...
$servers += 'serverN'
由于iisreset.exe
不支持多值参数,我们必须将其包装在一个循环中:
$servers | %{ iisreset $_ /restart /noforce }
您可能希望添加简单的监视:
$servers | %{ Write-Host "`n`n$_`n" -NoNewline ; iisreset $_ /restart /noforce /timeout:30 }
如果您有许多服务器,您可能只对故障感兴趣:
$servers | %{ Write-Host "`n`n$_`n" -NoNewline ; iisreset $_ /restart /noforce /timeout:30 | Select-String "failed" }
多行版本以提高可读性:
foreach ( $server in $servers ) {
Write-Host "`n`n$server`n" -NoNewline ;
iisreset $server /restart /noforce /timeout:30 | Select-String "failed"
}
我强烈建议在执行/reset
操作之前,使用/status
测试脚本:
$servers | %{ iisreset $_ /status }
您也可以使用/status
检查停止的组件:
$servers | %{ Write-Host "`n`n$_`n" -NoNewline ; iisreset $_ /status | Select-String "Stopped" }
参考
是默认参数<代码>iisreset.exe用户/restart如果未指定其他操作参数/restart
将防止出现错误时运行/noforce
iisreset.exe
-有时您需要给服务器更多的时间来处理请求,以避免IIS陷入停止状态/timeout
$servers | %{ iisreset $_ /status }
$servers | %{ Write-Host "`n`n$_`n" -NoNewline ; iisreset $_ /status | Select-String "Stopped" }