2013-03-08 5 views
1

У меня Win2003 работает Powershell v2. Если я запустилСтоп Powershell v2 invoke-command -ComputerName он всегда работает как V1

Invoke-Command -ScriptBlock {$Host.Version} 

затем я получаю «Версия 2.0». Однако, если я бегу

Invoke-Command -ScriptBlock {$Host.Version} -ComputerName localhost 

тогда я получаю «Version 1.0»

Я предполагаю, что это что-то делать с Remote PowerShell, но я не смог найти настройки. Может ли кто-нибудь помочь?

NB.

WSManConfig: Microsoft.WSMan.Management\WSMan::localhost\Plugin\Microsoft.PowerShell\InitializationParameters 

ParamName   ParamValue 
---------   ---------- 
PSVersion   2.0 

ответ

1

Удаленный хост был впервые представлен в версии v2, поэтому удаленная версия хоста - 1 (ServerRemoteHost). Когда вы запускаете Invoke-Command без -ComputerName, вы запускаете команду в powershell.exe напрямую. Попробуйте проверить (и сравнить) $ Host.Name в обеих командах, вы должны увидеть разницу.

PowerShell версии лучше всего проверить с $PSVersionTable - в v1 он отсутствует, в любой новой версии она расскажет вам, какую версию PowerShell вы сейчас работаете.

+0

Спасибо, это имеет большой смысл. Я попробовал выполнить только командлеты PS2, и они работали, поэтому я собрал что-то не хватало. Теперь для следующей проблемы вам понадобится использовать .net 4, а не 2. Но теперь вы указали ServerRemoteHost, тогда я поеду, чтобы найти конфигурацию. Благодарю. – pkr2000

+0

wsmprovhost.exe :) – pkr2000