Помимо поиска дампа $PSVersionTable и дампа переменной и окружения «PS-Drives», что еще я могу сделать для сравнения сред PowerShell?

Помимо поиска дампа $PSVersionTable и дампа переменной и окружения «PS-Drives», что еще я могу сделать для сравнения сред PowerShell?

Помимо поиска $PSVersionTableи дампа переменной и окружения «PS-Drives», что я могу сделать для сравнения сред PowerShell?

Вот в чем проблема:

  • У меня очень похожие машины под управлением Microsoft Windows Server 2012.
  • $PSVersionTableсвалки как:

    Name                           Value
    ----                           -----
    PSVersion                      4.0
    WSManStackVersion              3.0
    SerializationVersion           1.1.0.1
    CLRVersion                     4.0.30319.34014
    BuildVersion                   6.3.9600.17090
    PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0}
    PSRemotingProtocolVersion      2.2
    

    на работающем сервере, и

    Name                           Value
    ----                           -----
    PSVersion                      4.0
    WSManStackVersion              3.0
    SerializationVersion           1.1.0.1
    CLRVersion                     4.0.30319.34209
    BuildVersion                   6.3.9600.16406
    PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0}
    PSRemotingProtocolVersion      2.2
    

    на сервере, с которым у меня возникла проблема.

  • Не совсем нет разницы в базовом variable:приводе.
  • Разумные различия в env:содержании
  • И у них обоих ExecutionPolicy установлен на RemoteSigned.

Итак, различия в том,незначительныйверсия. Но первый сервер будет запускать пример классов животных, который идет сРазвертывание PSClass, а второй — нет.

И я отследил это в отладчике до второго вызова Attach-PSScriptMethod, независимо от того, в отладчике или нет, второй сервер просто зависает на этом вызове.


Обновлять:Только что получил изменение для обновления моего первого сервера до Build 6.3.30319.34209, той же младшей версии, что и у второго (и той же CLRVersion). Теперь пример тоже ломается. Похоже, Microsoft сломала библиотеку PSClass.

Надеюсь, не слишком много скриптов полагаются на используемую там объектно-ориентированную модель, потому что если они сломают простой пример, то они могли бы сломать и более сложный код.

Я до сих пор не могу даже заставить его выгрузитьпроблемав нем есть

решение1

Начиная с Powershell версии 4.0 и выше вы можете использовать $PSVersionTable. Для версий ниже 4.0 вам нужно будет использоватьGet-Host

Определить установленную версию Powershell

Связанный контент