我正在学习PowerShell并尝试在远程服务器上停止IIS。
我正在使用以管理模式启动的PowerGUI脚本编辑器。
我有这段代码
$service = Get-WmiObject Win32_Service -ComputerName 'myserver' -Filter "Name='IISAdmin'"
$service
$service.StopService();
$service.State
国家总是回来跑步。我不知道为什么它不会停止。
编辑
运行
时出错Invoke-Command -ComputerName 'myserver' { Stop-Service IISAdmin }
连接到远程服务器失败,并显示以下错误消息: 客户端无法连接到请求中指定的目标。 验证目标上的服务是否正在运行 接受请求。请参阅日志和文档 在目标上运行的WS-Management服务,最常见的是IIS或 WinRM的。如果目标是WinRM服务,请运行以下命令 命令在目标上分析和配置WinRM服务: “winrm quickconfig”。有关更多信息,请参阅 about_Remote_Troubleshooting帮助主题。
EDIT2
我发现了这个,似乎有效。我不知道如何从Stop-Service获取信息,所以我不得不用另一种方式来获取它。如果您知道如何请告诉我。
Stop-Service -Force -InputObject $(Get-Service -Computer myserver -Name IISAdmin)
$service = Get-WmiObject Win32_Service -ComputerName 'myserver ' -Filter "Name='IISAdmin'"
$service.State
这很有效。我不明白为什么。我唯一可以想到的是我必须使用-Force,因为它不会停止服务器,否则也许这是一个原因?
答案 0 :(得分:7)
您可以使用iisreset远程停止/重启iis:
iisreset [computername]
答案 1 :(得分:5)
停止IIS(例如"右键单击>停止"在iis-Manager中的服务器上):
spsv iisadmin,was,w3svc -pa
表示:
stop-service -name iisadmin,was,w3svc -passThru # -passThru is optional but basically outputs the result
(替代:gsv iisadmin,was,w3svc |spsv -pa|sasv -pa
重启服务并输出结果BUT在这个例子中,第二个-pa是可选的!FYI:gsv = get-service,sasv = start-service,spsv = stop -service,pa = passThru)
答案 2 :(得分:4)
Invoke-Command -ComputerName myserver { Stop-Service W3SVC}
答案 3 :(得分:2)
尝试使用PsExec \ Server2 -u管理员-p somePassword IISReset / STOP
或使用PowerGUI脚本编辑器
$service = Get-WmiObject -computer 'ServerA' Win32_Service -Filter "Name='IISAdmin'"
$service
$service.InvokeMethod('StopService',$Null)
$service.State
尝试使用
$server = "servername"
$siteName = "Default Web Site"
$iis = [ADSI]"IIS://$server/W3SVC"
$site = $iis.psbase.children | where { $_.keyType -eq "IIsWebServer" -AND
$_.ServerComment -eq $siteName }
$site.serverstate=3
$site.setinfo()