我想使用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
先谢谢...
答案 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)"
}
}