用于启动/停止iis和mssql的powershell脚本代码

时间:2012-08-22 07:11:37

标签: iis powershell

我想使用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仍在运行代码执行后这是正确的代码来阻止iis使用powershell脚本或缺少的东西请建议我使用iis和mssql

先谢谢...

2 个答案:

答案 0 :(得分: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() }

答案 1 :(得分: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)"
    }
}