2013-07-24 3 views
11

मैं एक दूरस्थ सर्वर पर 5 नए पुनश्च सत्र शुरू कर सकते हैं और उन सभी को देखने चलाकर प्राप्त करें-PSSession(नई कंसोल विंडो से) एक दूरस्थ सर्वर पर सभी खुले पुनश्च सत्र हो रही

PS C:\> New-PSSession -ComputerName MyServerName 

    Id Name   ComputerName State   ConfigurationName  Availability 
    -- ----   ------------ -----   -----------------  ------------ 
     1 Session1  MyServerName Opened  Microsoft.PowerShell  Available 

    [repeat 4 more times] 

जैसी उम्मीद थी, जब मैं 6 वें सत्र को खोलने का प्रयास करें, मुझे यह कहते हुए त्रुटि मिलती है कि यह नो-नो है (पॉसरशेल की 5 समवर्ती रिमोट PSSessions की डिफ़ॉल्ट सीमा के कारण)। लेकिन प्राप्त करें-सत्र चल रहा है पता चलता सभी 5 सत्र इसलिए सभी के रूप में यह अब तक होना चाहिए काम कर रहा है: जब मुझे लगता है कि कंसोल बंद करके एक नया एक को खोलने

PS C:\> New-PSSession -ComputerName MyServerName 
    New-PSSession : [......maximum number of 5 concurrent shells] 

PS C:\> Get-PSSession 

    Id Name   ComputerName State   ConfigurationName  Availability 
    -- ----   ------------ -----   -----------------  ------------ 
     1 Session1  MyServerName Opened  Microsoft.PowerShell  Available 
     2 Session2  MyServerName Opened  Microsoft.PowerShell  Available 
     3 Session3  MyServerName Opened  Microsoft.PowerShell  Available 
     4 Session4  MyServerName Opened  Microsoft.PowerShell  Available 
     5 Session5  MyServerName Opened  Microsoft.PowerShell  Available 

हालांकि, के साथ या बिना प्राप्त करें-PSSession (चल रहा ' -कंप्यूटर नाम 'पैरामीटर परिभाषित) बिल्कुल कोई खुला सत्र नहीं दिखाता है।

PS C:\> Get-PSSession 
PS C:\> 

मैं जानता हूँ कि उन सत्रों क्योंकि जब मैं अपने नए कंसोल में एक नया एक को खोलने का प्रयास मैं अधिक से अधिक 5 समवर्ती सत्र के बारे में एक ही त्रुटि मिलती है अभी भी खुले हैं:

PS C:\> New-PSSession -ComputerName MyServerName 
    New-PSSession : [......maximum number of 5 concurrent shells] 

के अनुसार 'जाओ -PSSession Get-help -full 'running' Get-PSSession -ComputerName MyServerName को सभी किसी विशेष सर्वर पर रिमोट पीएस सत्र प्राप्त करना चाहिए, चाहे वह किस सत्र या कंप्यूटर से शुरू किया गया हो (कम से कम जिस तरह से मैं इसे समझता हूं):

"कमांड [रिमोट सर्वर] पर सभी सत्र लौटाता है, यहां तक ​​कि यदि वे अलग-अलग सत्रों में या विभिन्न कंप्यूटरों पर बनाए गए थे।"

तो, क्या एक दूरस्थ सर्वर पर किसी भी खुले पीएस सत्र को खोजने और/या निकालने का कोई तरीका है - इसे एक कंसोल सत्र से सब कुछ करने के बिना?

+0

क्या ओएस और PowerShell संस्करण आप अपने स्थानीय और दूरदराज के बक्से पर प्रयोग कर रहे हैं? मैं विंडोज पर अलग व्यवहार (कोई परेशानी नहीं लगभग 20 सत्रों को खोलने) 8/PS3.0, विंडोज 8.1/PS4.0Preview –

+0

दोनों स्थानीय और दूरस्थ सिस्टम विंडोज 2008 R2 PowerShell 3.0 –

+0

आह का उपयोग कर SP1 रहे हैं, मैं भी जल्द ही लिखा था। मुझे लगता है कि, _assured_ होने के बावजूद कि दूरस्थ सर्वर PowerShell 3.0 थे, वे वास्तव में केवल PowerShell 2.0 चला रहे हैं। यह मुद्दा हो सकता है। कीथ द्वारा वर्णित कई आदेश (उदा। 'डिस्कनेक्ट किए गए सत्र' से संबंधित कुछ) केवल v3.0 में उपलब्ध हैं। –

उत्तर

12

मैं क्या बता सकते हैं ...

PSSessions आप "MyServerName" पर लाइव बनाया है और, सत्र आप पहली बार उन्हें बनाया की अवधि के लिए, यह भी कोई तर्क के साथ (प्राप्त करें-PSSession द्वारा लौटा दी जाएगी , उस बॉक्स पर पावरशेल विंडो में जिसे आप रिमोट कर रहे हैं)। जब आप सत्र को बंद करते हैं तो वे बनाए जाते हैं, सत्र अब आपके कंप्यूटर पर नहीं होते हैं। यही कारण है कि जब आप एक नई PowerShell विंडो बंद करते हैं और खोलते हैं तो Get-PSSession कुछ भी वापस नहीं करता है। वे कभी अपने कंप्यूटर पर "रहते थे", वे दूरदराज के सत्र हैं, तथापि, वे गुंजाइश में थे अपने मूल PowerShell विंडो में, क्योंकि यह है कि स्थानीय गुंजाइश आप उन्हें में।

बनाए गए अपने सत्र MyServerName पर अभी भी कर रहे हैं है, के रूप में यह लगता है कि वे त्रुटि आप अधिकतम सत्र के बारे में उल्लेख करने के लिए होने वाले हैं, तो निम्न आदेश टाइप उन्हें सूचीबद्ध करना चाहिए:

Get-PSSession -ComputerName MyServerName 

आप उन सभी को अपने मौजूदा सत्र/विंडो में फिर से कनेक्ट करना चाहता था, तो आप कर सकता है:

Get-PSSession -ComputerName MyServerName | Connect-PSSession 

उन सब को निकालने के लिए, आप नए PSSessions बनाने के लिए डॉक्स में

Get-PSSession -ComputerName MyServerName | Remove-PSSession 

MyServerName करना चाह रहे हैं थोड़ा आगे, सभी सत्रों अनिश्चित काल के लिए जीना नहीं है जब आप अपने PowerShell विंडो बंद कर दें सक्षम करने से।देखें:

Get-Help about_Remote_Disconnected_Sessions -ShowWindow

(जोर मेरा) के साथ

आंशिक अंश:

यदि आप पास (निकास) सत्र में एक PSSession जबकि आदेशों PSSession, विंडोज PowerShell में चल रहे हैं बनाया गया था दूरस्थ कंप्यूटर पर डिस्कनेक्ट किए गए राज्य में PSSession को बनाए रखता है। यदि आप सत्र को बंद (बाहर निकलें) जिसमें एक PSSession बनाया गया था, लेकिन आदेश PSSession में चल रहे हैं, तो Windows PowerShell PSSession को बनाए रखने का प्रयास नहीं करता है।

मैं क्या देख सकते हैं से, सत्रों) काट दिया नहीं कर रहे हैं, या ख) व्यस्त एक कमांड चल रहा है, उन्हें छोड़ दिया जाता है जब आप बंद PowerShell खिड़की आप से PSSessions शुरू कर दिया। साथ ही, प्रलेखन भी टाइमआउट (जो शायद सर्वर पर PSSessionConfigurations पर निर्भर कर रहे हैं उल्लेख करने के लिए प्रतीत होता है, लेकिन मैं उन के बारे में कुछ पता नहीं अभी तक अपने आप को (अन्य की तुलना में वे) मौजूद हैं।

इस के लिए एक अच्छा बहाना था मुझे PowerShell दूरस्थ से कुछ प्रलेखन में छान-बीन करने के लिए, यह भी देखें:। यदि सत्र कुछ भी तो वे दूरदराज के अंत पर बंद कर दिया हो कर नहीं कर रहे हैं,

Get-Help *PSSession* 
Get-Help *remote* 
+0

हां, मैं मानता हूं कि मैं _should_ रिमोट कंप्यूटर (एक नए कंसोल से) पर खुले सत्र प्राप्त करने के लिए इसका उपयोग करने में सक्षम हूं: Get-PSSession -ComputerName MyServerName। –

+0

तथ्य यह है कि आप मुझे 2.0 पर बहुत संदेह नहीं कर सके ... खुशी है कि हमने उस हिस्से का जवाब दिया –

0

मेरे प्रयोग से इससे बचने के लिए या तो उन्हें है कुछ जैसे कार्य करें:

Invoke-Command -Session $s { ... } -AsJob 
Invoke-Command server01 { ... } -Disconnected 

या अन्य विकल्प अपने सत्र डिस्कनेक्ट करने के लिए है:

Disconnect-PSSession -Id (1..5) 

दोनों दृष्टिकोण जीवित रहने दूरस्थ सत्र का परिणाम देगा।

0

आज यह एक ही समस्या हो रही मैं jrich से कार्यों का यह अच्छा सेट के पार आया था। मैं भी बस मेरी पुनश्च विंडो में कार्यों चिपकाया और

भाग गया

"<computername>" | Get-RemotePSSession | Remove-RemotePSSession

और देखा! कंप्यूटर पर कोई और बाएं-खुले सत्र नहीं।

यहाँ अपने ब्लॉग के लिए सीधा लिंक है। https://jrich523.wordpress.com/2012/01/19/managing-remote-wsman-sessions-with-powershell/#comment-1079

संबंधित मुद्दे