2012-08-22 74 views
1

我要开始/停止IIS和MSSQL使用PowerShell脚本代码 意味着当我运行PS脚本我想开始/停止IIS和MSSQLPowerShell脚本代码来启动/停止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也

在先进的感谢...

回答

0

您需要调用StopService方法,并检查返回值。要获得支持的方法管$ 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)" 
    } 
} 
+0

谢谢你答,但是当我运行代码,它总是告诉我:IIS没有successfuly停止。返回值为3 – Raj

+0

您需要先照顾它的依赖服务http://msdn.microsoft.com/en-us/library/windows/desktop/aa393673%28v=vs.85%29.aspx –

+0

我去了这个链接并完成了一些rnd,但没有得到任何解决方案来移除iis的依赖服务。如果你有任何想法,请分享其实我是新的PowerShell的尖刻。我发现我们可以强制删除依赖项,但是如何在脚本中使用它我不知道。请给我一些建议。 – Raj

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() } 
+0

嗨ravikanth我尝试这段代码,但它显示错误get-wmiobject未找到为什么这个错误来了,是否有任何额外的设置运行此代码所需?请回复.. – Raj

+0

Wht? Get-WMIObject找不到?什么是操作系统? – ravikanth

+0

Windows7终极版 – Raj

相关问题