2015-11-06 20 views
8

Sono su un server che è in esecuzione PowerShell Versione 2:Run sessione di PowerShell remota come la versione 2

PS C:\> $PSVersionTable 

Name  Value 
----  ----- 
... 
PSVersion 2.0 

Ho quindi creare una nuova sessione remoto a un altro computer e collegare ad esso:

$sess = New-PSSession -ComputerName {ComputerName} -Credential $credential 

mi restituisce il risultato:

PS C:\> Invoke-Command -Session $sess -ScriptBlock { $PSVersionTable } 

Name  Value 
----  ----- 
... 
PSVersion 3.0 

Tuttavia, ho bisogno di PowerShell per essere in versione 2 per la mia sceneggiatura in modo da Ente r una sessione (per renderlo più facile). Ho poi cerco di ottenere PowerShell per essere la versione 2:

C:\> Enter-PSSession -Session $sess 
[{ComputerName}]: PS C:\> Powershell -Version 2 
Windows Powershell 
Copyright (C) 2009 Microsoft Corporation. All rights reserverd 

E poi appena si blocca (o almeno non mi permette di entrare qualsiasi altra cosa nella console fino a quando ho Ctrl-C).

Ho anche provato ad andare attraverso l'Invoke-Command:

PS C:\> Invoke-Command -Session $sess -ScriptBlock { Powershell -version 2 } 

e lo fa lo stesso.

Ho anche cercato di registrare un PSSessionConfiguration come da qui: https://technet.microsoft.com/en-us/library/hh847899.aspx

PS C:\> Register-PSSessionConfiguration -Name PS2 -PSVersion 2.0 

ma ottengo:

Register-PSSessionConfiguration: a parameter cannot be found that matches parameter name 'PSVersion'. 

Qualcuno ha qualche idea di ciò che posso provare il prossimo ?! Grazie

+5

Cosa c'è in 2 che non è in 3? Perché è più facile? Sono onestamente curioso –

+2

Una macchina su cui hai eseguito "Register-PSSessionConfiguration' ... il tuo computer o il" server "? Qual è il sistema operativo del server? Ho appena provato i passaggi nell'articolo di Technet e ha funzionato perfettamente. Il mio server 2008 è stato remotato sul mio computer Windows 7 con un PSSessionConfiguration 2.0. Hai provato questo contro un server o un host diverso? – Matt

+0

@RitchMelton - Alas Integrazione SharePoint 2010 (https://support.microsoft.com/en-us/kb/2796733) – Pete

risposta

3

Su quale macchina hai eseguito Register-PSSessionConfiguration?. Il tuo computer o il "server"?

È necessario effettuare la configurazione sul server di destinazione . Questo è ciò che verrà eseguito con PSSessionConfiguration ospitato.

Ho appena provato i passaggi nel technet article e ha funzionato perfettamente. Il mio server 2008 è stato remotato sul mio computer Windows 7 con un PSSessionConfiguration 2.0.

Sull'obiettivo del server/host:

Register-PSSessionConfiguration -Name PS2 -PSVersion 2.0 

Poi, sulla macchina client, la configurazione di riferimento 'PS2'.

$s = New-PSSession -ComputerName Server01 -ConfigurationName PS2 
0

Suppongo che il seguente non funziona neanche:

#Requires -version 2.0 

Un'altra Kluge si potrebbe provare è quello di creare un'operazione pianificata sul bersaglio e avere il fuoco compito fuori lo script con Powershell.exe -version 2