Obtenir tous ouvert PS Sessions sur un serveur distant (à partir de la nouvelle fenêtre de la console)
Je peux commencer à 5 nouveaux PS sessions sur un serveur distant, et de les voir tous en exécutant Get-PSSession
PS C:\> New-PSSession -ComputerName MyServerName
Id Name ComputerName State ConfigurationName Availability
-- ---- ------------ ----- ----------------- ------------
1 Session1 MyServerName Opened Microsoft.PowerShell Available
[repeat 4 more times]
Comme prévu, lorsque j'essaye d'ouvrir une 6ème séance, je reçois le message d'erreur en disant que c'est un non-non (en raison de PoswerShells limite par défaut de 5 à distance simultanées sessions pssession). Mais l'exécution de Get-Session montre toutes les 5 séances, si tout fonctionne comme il se doit jusqu'à présent:
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
Cependant, lorsque je ferme la console et en ouvrir un nouveau, de l'exécution de Get-PSSession (avec ou sans le "ComputerName" du paramètre défini) ne présente pas de sessions ouvertes à tous.
PS C:\> Get-PSSession
PS C:\>
Je sais que ces séances sont toujours ouverts, parce que quand j'essaie d'ouvrir un nouveau dans ma nouvelle console j'obtiens le même message d'erreur concernant plus de 5 sessions simultanées:
PS C:\> New-PSSession -ComputerName MyServerName
New-PSSession : [......maximum number of 5 concurrent shells]
En fonction de "Get-PSSession Get-Help -plein "running" Get-PSSession-ComputerName MyServerName devriez obtenir tous distance PS sessions sur un serveur particulier, indépendamment de ce que la session ou de l'ordinateur qu'ils ont commencé à partir de (au moins la façon dont je le comprends):
"La commande renvoie à l'ensemble des séances sur [le serveur distant], même
si elles ont été créées dans les différentes sessions ou sur des ordinateurs différents."
Alors, est-il un moyen de trouver et/ou de supprimer tout ouvert PS sessions sur un serveur distant, sans avoir à tout faire à partir d'une session de console?
Les systèmes locaux et distants sont Windows 2008 R2 SP1 à l'aide de PowerShell 3.0
Ah, j'ai écrit trop vite. Je semble que, en dépit d'être assuré que les serveurs distants ont été PowerShell 3.0, ils sont en fait en cours d'exécution uniquement PowerShell 2.0. Que peut être le problème. De nombreuses commandes mentionnées par Keith (par exemple celles liées à "des sessions déconnectées') sont disponibles que dans la v3.0.
OriginalL'auteur Local Needs | 2013-07-24
Vous devez vous connecter pour publier un commentaire.
De ce que je peux dire...
Les sessions pssession vous avez créé vivre "MyServerName" et, pour la durée de la session de la première, sera également retourné par Get-PSSession (sans arguments, dans la fenêtre PowerShell sur la boîte, vous avez accès distant à PARTIR d'). Lorsque vous fermez la session, ils sont créés, les séances ne sont plus sur votre ordinateur. C'est pourquoi Obtenez-PSSession ne retourne rien, lorsque vous fermez et ouvrez une nouvelle fenêtre PowerShell. Ils n'ont jamais "vécu" sur votre ordinateur, ils sont des sessions à distance, cependant, ils ont été portée dans votre original PowerShell fenêtre parce que c'est la locale que vous avez créé.
Si vos sessions sont encore sur MyServerName, comme il semble qu'ils sont en raison de l'erreur que vous mentionnez à propos de max séances, puis en tapant la commande suivante doit en faire la liste:
Si vous voulais rebranchez-les tous dans votre session existante/fenêtre, vous pouvez faire:
De toutes les supprimer, ce qui vous permet de créer de nouvelles sessions pssession à MyServerName
À la recherche un peu plus loin dans les docs, toutes les sessions de ne pas vivre indéfiniment lorsque vous fermez votre fenêtre PowerShell. Voir:
De ce que je peux voir, les sessions qui ne sont pas une) déconnecté, ou b) occupé à l'exécution d'une commande, sont supprimés lorsque vous fermez la fenêtre PowerShell vous avez commencé les sessions pssession. En outre, la documentation ne semble oublier qu'il existe aussi des délais d'attente (qui a probablement dépendent PSSessionConfigurations sur le serveur, mais je ne sais rien à propos de ces encore moi-même (autres qu'ils existent).
C'était une bonne excuse pour moi de passer au crible certains PowerShell Remoting documentation, consulter également:
Le fait que vous ne pourriez pas m'a fait grandement suspect 2.0 ...heureux nous avons répondu à cette partie
OriginalL'auteur Joshua McKinnon
De mon expérimentation, si les séances ne font rien alors qu'ils se ferment sur l'extrémité distante. Pour l'empêcher, soit les faire faire quelque chose par exemple:
Ou l'autre option consiste à débrancher vos sessions:
Les deux approches se traduira dans les sessions à distance de rester en vie.
OriginalL'auteur Keith Hill
Avoir ce même problème aujourd'hui, je suis tombé sur cette belle série de fonctions de jrich.
J'ai même tout simplement collé les fonctions dans mon PS fenêtre et courut
"<computername>" | Get-RemotePSSession | Remove-RemotePSSession
et voila! pas plus à gauche d'ouvrir des sessions sur ledit ordinateur.
Voici le lien direct vers son blog.
https://jrich523.wordpress.com/2012/01/19/managing-remote-wsman-sessions-with-powershell/#comment-1079
OriginalL'auteur user3749588