2

Новые версии PowerShell, очевидно, будут содержать новые функции и новые командлеты. Это то, что важно учитывать при написании сценариев или пошаговых инструкций PowerShell, которые могут запускаться локально в системах с разными версиями.

Простым примером будет Get-FileHash . Эта команда является новой для PowerShell 4.0 и не будет доступна для любой системы, работающей под управлением более ранней версии. Это будет особенно недоступно для любых систем, работающих под управлением Windows 7 SP0 (или Server 2008 R2 SP0) или ниже, поскольку PowerShell 4.0 вообще не поддерживается в этих системах.

Однако, помимо простого вопроса поддержки данной версии PowerShell, необходимо еще больше рассмотреть вопрос о том, какая версия операционной системы установлена. Например, Test-NetConnection доступна (в настоящее время) только для Windows 8.1 (или Server 2012 R2) независимо от того, какая версия PowerShell установлена в системе, в которой установлена любая более ранняя операционная система.

Это довольно просто для сценариев или руководств, которые будут запускать команды PowerShell в локальной системе - если локальная система имеет версию A операционной системы и версию B PowerShell, вы можете использовать (и использовать только) любые команды, поддерживаемые в OS A с PS Б. Однако, это не так просто и ясно для случаев, когда скрипт обращается к удаленному компьютеру, на котором может быть запущена другая операционная система или версия PowerShell.

Итак, как различные версии PowerShell влияют на команды, выполняемые на удаленных компьютерах?

  • Если в локальной системе установлена более поздняя версия, будут ли доступны более новые команды / функции для удаленной системы?
  • Если в удаленной системе установлена более поздняя версия, существует ли простой (и пригодный для сценариев) способ использовать новые команды / функции против нее, когда локальная система их не поддерживает?
  • Существуют ли общие правила, о которых можно помнить, чтобы знать, какие проблемы совместимости следует ожидать, или это что-то, что широко варьируется и нуждается в индивидуальном исследовании / тестировании для каждой используемой команды или функции?

1 ответ1

0

Командлеты будут доступны только в том случае, если они находятся в системе, в которой вы в данный момент используете PowerShell. Я только что проверил это.

Например, если вы работаете на сервере под управлением Windows Server 2012 R2 и удаленно работаете с системой под управлением Windows Server 2008 R2, вы не сможете запускать командлеты, доступные только в 2012 R2. Завершение табуляции не будет работать, и вы получите ошибку, если попытаетесь запустить командлет (потому что он недоступен).

Если вы удаленный от 2008 R2 до 2012 R2, вы будете иметь возможность использовать командлеты доступны на 2012 R2. Завершение вкладки также будет работать.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .