如何使用PowerShell停止IIS?

hts6caw3  于 2022-11-12  发布在  Shell
关注(0)|答案(6)|浏览(324)

我正在学习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 -Force -InputObject $(Get-Service -Computer myserver -Name IISAdmin)
$service = Get-WmiObject Win32_Service -ComputerName 'myserver '  -Filter "Name='IISAdmin'"
$service.State

这是可行的。我不明白为什么。我唯一能想到的是我不得不使用-武力,因为它不会停止服务器,否则,也许这是一个原因?

euoag5mw

euoag5mw1#

停止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来重新启动服务并输出结果,但在本例中,只有第二个-pa是可选的!!!FYI:gsv=获取服务,sasv=启动服务,spsv=停止服务,pa=通过)

snz8szmq

snz8szmq2#

Invoke-Command -ComputerName myserver { Stop-Service W3SVC}
gpnt7bae

gpnt7bae3#

您可以使用iisreset远程停止/重新启动iis:

iisreset [computername]
9cbw7uwe

9cbw7uwe4#

请尝试使用PsExec \Server2 -u管理员-p某个密码IIS重置/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()
nwsw7zdq

nwsw7zdq5#

我不是一个处理WMI对象的爱好者。相反,我建议将iisreset /stop与PowerShell远程处理结合使用。因此,本质上是这样的:

Invoke-Command -ComputerName 'myserver' -ScriptBlock { & iisreset /stop }

您也可以将/stop替换为/start,以便在远程服务器上启动IIS。
如果您不想利用iisreset.exe而使用纯PowerShell,则可以启动/停止W3SVC服务:

Invoke-Command -ComputerName 'myserver' -ScriptBlock { Stop-Service W3SVC }

并将Stop-Service替换为Start-Service以重新启动它。W3SVC服务是IIS。

hwazgwia

hwazgwia6#

还有另一种简单的停止IIS的方法,即从Powershell运行

iisreset /stop

要启动IIS,只需

iisreset /start

相关问题