How To start/stop IIS 6.0/7.0 remotely using Power

2019-04-05 03:29发布

I have two servers Server A and Server B. I want to stop server A from Server B remotely using Powershell script.

6条回答
该账号已被封号
2楼-- · 2019-04-05 03:59

Because you asked for Powershell:

(Get-WmiObject Win32_Service -ComputerName ServerA -Filter "Name='iisadmin'").InvokeMethod("StopService", $null) 

Agreed this question should be moved to ServerFault.

查看更多
等我变得足够好
3楼-- · 2019-04-05 04:00
$service = Get-WmiObject -computer 'ServerA' Win32_Service -Filter "Name='IISAdmin'"
$service
$service.InvokeMethod('StopService',$Null)
start-sleep -s 5
$service.InvokeMethod('StartService',$Null)
start-sleep -s 5
$service.State

$service = Get-WmiObject -computer 'ServerB' Win32_Service -Filter "Name='IISAdmin'"
$service
$service.InvokeMethod('StopService',$Null)
start-sleep -s 5
$service.InvokeMethod('StartService',$Null)
start-sleep -s 5
$service.State
查看更多
叼着烟拽天下
4楼-- · 2019-04-05 04:01

Option 1:

iisreset remotepcname /restart

Option 2:

(Get-Service -ComputerName remotepc -Name 'IISAdmin').stop()

Option 3:

Invoke-Command -ComputerName remotepc -ScriptBlock {iisreset}
查看更多
别忘想泡老子
5楼-- · 2019-04-05 04:09

In powershell 2.0, run the following from cmd prompt:

invoke-command -computername <yourremoteservername> -scriptblock {iisreset}
查看更多
smile是对你的礼貌
6楼-- · 2019-04-05 04:11

One of the simplest ways to do this is really with just a command line execution using PsExec. And send over to the machines

IISReset /STOP or /START or /RESTART

So you'd do something like this

PsExec \\Server2 -u Administrator -p somePassword IISReset /STOP

Just be careful with password management if you go this route or any route that involves some type of admin level account impersonation so that no one can get a plain text copy of the admin password.

查看更多
beautiful°
7楼-- · 2019-04-05 04:21

You can use get-wmiobject cmdlt with different NameSpace for different versions of IIS v6 or v7, below pipelining command can be used for such operations in IIS locally or remotely

for IIS v6

$srv = "Server Name or IP Address"

$app = "Name of App Pool"

$x = get-wmiobject -namespace "root\MicrosoftIISv2" -class "IIsApplicationPool" -ComputerName $srv -Authentication PacketPrivacy | where-object {$_.Name -eq "W3SVC/AppPools/$app"}

$x.Stop()

$x.Start()

for IIS v7

$srv = "Server Name or IP Address"

$app = "Name of App Pool"

$x = Get-WMIObject -Namespace "root\webAdministration" -Class "ApplicationPool" -ComputerName $srv -Authentication PacketPrivacy | Where-Object {$_.Name -eq $app}

$x.Stop()

$x.Start()

you need to have sufficient account privilege for these operations, event though i prefer to do $x.Recycle() for my websites.

查看更多
登录 后发表回答