2

Я пишу приложение C#, которое запускает выполнение сценария powershell на удаленном сервере.Удаленное выполнение версии Powershell версии 2 с использованием C#

Аппарат, из которого вызывается вызов (локальный блок разработчика), имеет версию Powershell Version 2, Version 3 и Version 4, установленную в соответствии с отображением $ PSVersionTable.PSVersion, на сервере результат тот же.

Я побежал мой код на тестовом сервере, и он прекрасно работает при использовании V4.0

Проблема им с в том, что на сервере фактической команды должны работать как Powershell V2.0 и не V4 +0,0.

Я создал New-PSSessionConfigurationFile, а затем я использовал Registe-rPSSessionConfiguration для повторной установки конфигурации версии 2.0, затем я запустил Enable-PSRemoting, и я включил его, и я выбрал No для всех конфигураций, которые НЕ являются v2.0 ,

Но теперь, когда я запускать скрипты из моей Dev коробки, они по-прежнему сообщают о версии Powershell 4,0

Кто-нибудь знает, как заставить удаленное выполнение Powershell с помощью версии 2.0 и с помощью C#

это мой код

WSManConnectionInfo connectionInfo = new WSManConnectionInfo(); 
connectionInfo.ComputerName = computerIdent.ToLowerInvariant(); 

Runspace runspace = RunspaceFactory.CreateRunspace(connectionInfo); 
runspace.Open(); 

StreamReader sReader = new StreamReader("C:\Script\Mysqcript.ps1"); 
PowerShell psExec = PowerShell.Create(); 
psExec.Runspace = runspace; 
psExec.AddScript(sReader.ReadToEnd()); //reads all the lines in the powershell script 

powershellResults = psExec.Invoke(); 
+0

возможно дубликат [Powershell - Принуждение версии 2 на удаленной сессии для управления Sharepoint] (http://stackoverflow.com/questions/16483764/powershell-forcing-version-2-on-remote-session-for -sharepoint-management) –

+1

Если новая конфигурация не называется 'Microsoft.PowerShell', не имеет значения, является ли она единственной доступной. Вам придется подключиться к этой конфигурации по имени, и я не вижу, чтобы вы указывали имя в любом месте кода. – briantist

+0

в моем коде, как я могу указать конфигурацию, которую я хочу использовать? я смотрел, как передать это, и я не могу найти способ сделать это. На удаленном компьютере я создаю PSSessionConfiguration под названием Version 2.0 – user2242800

ответ

1

То, что я в конечном итоге делает это на удаленной машине, я изменил версию о том, что конфигурация сеанса Microsoft.PowerShell использует так что я запустил эту команду, чтобы изменить это:

Set-PSSessionConfiguration -name microsoft.powershell -psversion 2.0 -FORCE