PowerShellスクリプトでIISRESETを実行する方法を知っている人はいますか? Windows 2008ボックスにインストールされたPowerShell 1.0でPowerGUIエディターを使用しています。
Invoke-Commandコマンドレットを使用して実行できます。
invoke-command -scriptblock {iisreset}
[〜#〜] update [〜#〜]:
&call演算子を使用してコマンドを簡素化することもできます。
& {iisreset}
これは私にとってはうまくいきます。このアプリケーションでは、戻りコードは気にしません。
Start-Process -FilePath C:\Windows\System32\iisreset.exe -ArgumentList /RESTART -RedirectStandardOutput .\iisreset.txt
Get-Content .\iisreset.txt | Write-Log -Level Info
Write-Logコマンドレットは、ログの作成に使用するカスタムコマンドレットですが、他のコマンドレットに置き換えることもできます。
& {iisreset}
をときどき失敗させて使用すると、これにつながります。
Start-Process "iisreset.exe" -NoNewWindow -Wait
iisreset.exe
が正常に終了するのを待ちます。
探しているものが正確にわからないが、「iisreset/noforce」の本文でスクリプトを作成する
次に例を示します。 http://technet.Microsoft.com/en-us/library/cc785436.aspx
これは非常に古いことを知っていますが、Powershellのコマンドラインから任意のコマンドラインプロセスを実行できます。したがって、必要なスイッチを指定してIISResetを呼び出すスクリプトが必要になります。
WaitForExit and ExitCode work fine
[System.Reflection.Assembly]::LoadWithPartialName("System.Diagnostics").FullName
$procinfo = New-object System.Diagnostics.ProcessStartInfo
$procinfo.CreateNoWindow = $true
$procinfo.UseShellExecute = $false
$procinfo.RedirectStandardOutput = $true
$procinfo.RedirectStandardError = $true
$procinfo.FileName = "C:\Windows\System32\iisreset.exe"
$procinfo.Arguments = "/stop"
$proc = New-Object System.Diagnostics.Process
$proc.StartInfo = $procinfo
[void]$proc.Start()
$proc.WaitForExit()
$exited = $proc.ExitCode
$proc.Dispose()
Write-Host $exited