我正在学习 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 }
连接到远程服务器失败并显示以下错误消息:客户端无法连接到请求中指定的目标。验证目标上的服务是否正在运行并且正在接受请求。请查阅在目标(最常见的是 IIS 或 WinRM)上运行的 WS-Management 服务的日志和文档。如果目标是 WinRM 服务,在目标上运行以下命令来分析和配置 WinRM 服务:“winrm quickconfig”。有关详细信息,请参阅 about_Remote_Troubleshooting 帮助主题。
编辑2
我发现了这个,它似乎有效。我不知道如何从 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 因为它不会停止服务器,否则也许这是一个原因?