Я пишу приложение 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();
возможно дубликат [Powershell - Принуждение версии 2 на удаленной сессии для управления Sharepoint] (http://stackoverflow.com/questions/16483764/powershell-forcing-version-2-on-remote-session-for -sharepoint-management) –
Если новая конфигурация не называется 'Microsoft.PowerShell', не имеет значения, является ли она единственной доступной. Вам придется подключиться к этой конфигурации по имени, и я не вижу, чтобы вы указывали имя в любом месте кода. – briantist
в моем коде, как я могу указать конфигурацию, которую я хочу использовать? я смотрел, как передать это, и я не могу найти способ сделать это. На удаленном компьютере я создаю PSSessionConfiguration под названием Version 2.0 – user2242800