1

PowerShell スクリプト コードを使用して iis と mssql を開始/停止したい ps スクリプトを実行するときに iis と mssql を開始/停止したい

ネットで検索したところ、コードが見つかりましたが、要件どおりに機能していません

コード:

$iis = get-wmiobject Win32_Service -ComputerName "xyz" -Filter "name='IISADMIN'"
$iis.State=4

if($iis.State -ne "Running")
{
Write-Host "IIS Stop successfuly"
}

上記のコードは、IIS の停止に成功しましたが、コードの実行後に iis がまだ実行されている出力を示しています

高度なありがとう...

4

2 に答える 2

3

次のコマンドを実行すると、IISAdmin サービスに依存するすべてのサービスを取得できます。

$query = "ASSOCIATORS OF {Win32_Service.Name='IISAdmin'} WHERE ResultRole=Dependent"
Get-WmiObject -Query $query | Select Name

次のコマンドを実行すると、IISAdmin サービスが依存するすべてのサービスを取得できます。

$query = "ASSOCIATORS OF {Win32_Service.Name='IISAdmin'} WHERE ResultRole=Antecedent"
Get-WmiObject -Query $query | Select Name

これで、依存サービスと必須サービスがわかれば、簡単に停止できます。

たとえば、IISAdmin に依存するすべてのサービスを停止するには:

$query = "ASSOCIATORS OF {Win32_Service.Name='IISAdmin'} WHERE ResultRole=Dependent"
Get-WmiObject -Query $query
$services | Foreach-Object { "Stopping $($_.Name)";$_.StopService() }
于 2012-08-22T14:31:14.483 に答える
0

StopService メソッドを呼び出して、ReturnValue を確認する必要があります。サポートされているメソッドのリストを取得するには、$iis を にパイプしますGet-Member

if($iis.State -eq 'Running')
{
    $rv = $iis.StopService()

    if($rv.ReturnValue -eq 0)
    {
        Write-Host "IIS Stopped successfuly"
    }
    else
    {
        Write-Host "IIS did not stop successfuly. Return value is $($rv.ReturnValue)"
    }
}
于 2012-08-22T07:31:31.710 に答える