web-dev-qa-db-ja.com

PowershellスクリプトでIISRESETを実行する方法

PowerShellスクリプトでIISRESETを実行する方法を知っている人はいますか? Windows 2008ボックスにインストールされたPowerShell 1.0でPowerGUIエディターを使用しています。

29
Jukeman

Invoke-Commandコマンドレットを使用して実行できます。

invoke-command -scriptblock {iisreset}

[〜#〜] update [〜#〜]

&call演算子を使用してコマンドを簡素化することもできます。

& {iisreset}

32
Jim

これは私にとってはうまくいきます。このアプリケーションでは、戻りコードは気にしません。

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が正常に終了するのを待ちます。

2
zionyx

探しているものが正確にわからないが、「iisreset/noforce」の本文でスクリプトを作成する

次に例を示します。 http://technet.Microsoft.com/en-us/library/cc785436.aspx

1
cagreen

これは非常に古いことを知っていますが、Powershellのコマンドラインから任意のコマンドラインプロセスを実行できます。したがって、必要なスイッチを指定してIISResetを呼び出すスクリプトが必要になります。

1
Sean Long

IISの停止または開始(テスト済み)

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
0
Dr Coyo