2009-08-31 18 views
11

मेरे पास दो सर्वर सर्वर ए और सर्वर बी हैं। मैं सर्वर बी से सर्वर ए को पावरहेल स्क्रिप्ट का उपयोग करके दूरस्थ रूप से रोकना चाहता हूं।PowerShell स्क्रिप्ट का उपयोग करके दूरस्थ रूप से आईआईएस 6.0/7.0 को कैसे शुरू/बंद करें?

+0

हमें आपके डोमेन की कॉन्फ़िगरेशन के बारे में कुछ और जानकारी चाहिए। क्या दोनों सर्वर एक ही डोमेन में काम कर रहे हैं कि एक उपयोगकर्ता खाते में सर्वर पर समकक्ष अनुमतियां हैं? –

+0

यह प्रश्न शायद सर्वर गलती में ले जाया जाना चाहिए। –

उत्तर

14

ऐसा करने के सबसे सरल तरीकों में से एक वास्तव में PsExec का उपयोग कर एक कमांड लाइन निष्पादन के साथ है। और मशीनों

करने पर भेजने के

IISRESET/रोकें या/स्टार्ट या/पुनः आरंभ

तो आप इस

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

की तरह कुछ करना चाहते हैं, तो आप इस मार्ग जाना बस पासवर्ड प्रबंधन के साथ सावधान रहना या कोई भी मार्ग जिसमें कुछ प्रकार के व्यवस्थापक स्तर खाता प्रतिरूपण शामिल है ताकि कोई भी व्यवस्थापक पासवर्ड की सादा पाठ प्रति प्राप्त नहीं कर सके।

9

क्योंकि आप Powershell के लिए कहा:

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

इस सवाल सहमत ServerFault ले जाया जाना चाहिए।

3
$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 
2

powershell 2.0 में, cmd शीघ्र से निम्नलिखित चलाएँ:

invoke-command -computername <yourremoteservername> -scriptblock {iisreset} 
10

विकल्प 1:

iisreset remotepcname /restart 

विकल्प 2:

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

विकल्प 3:

Invoke-Command -ComputerName remotepc -ScriptBlock {iisreset} 
+0

बिल्कुल सही जवाब। धन्यवाद। –

0

आप आईआईएस v6 या v7 के विभिन्न संस्करणों के लिए अलग अलग नाम स्थान, पाइपलाइनिंग आदेश नीचे के साथ मिल-wmiobject cmdlt उपयोग कर सकते हैं स्थानीय या दूर

आईआईएस 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() 
के लिए IIS में इस तरह के कार्यों के लिए इस्तेमाल किया जा सकता

आपको इन परिचालनों के लिए पर्याप्त खाता विशेषाधिकार होना चाहिए, हालांकि मैं अपनी वेबसाइटों के लिए $ x.Recycle() करना पसंद करता हूं।