Что представляет собой содержимое PowerShell $ PSVersionTable?

10

Если я echo $PSVersionTableв PowerShell, я получаю, как представляется, несколько бит информации о версии.

Наименования свойств

  • CLRVersion
  • BuildVersion
  • PSVersion
  • WSManStackVersion
  • PSCompatibleVersions
  • SerializationVersion
  • PSRemotingProtocolVersion

Все, кроме 1, находятся в обычной версии ( #.#.#), а остальные 1 (PSCompatibleVersions) представляют собой набор номеров версий ( {1.0, 2.0}).

Что каждый из них представляет?


Дополнительно: Этот вопрос был создан, чтобы углубиться в ответ на другой вопрос, который я задавал в разделе «Какая версия Windows Management Framework установлена»? , Там есть комментарий и другие комментарии в аналогичном вопросе, на который я ссылаюсь, предполагают, что $PSVersionTableего можно использовать для получения версии WMF. Если одно из этих свойств действительно дает версию WMF и гарантированно делает это, во что бы то ни стало, пожалуйста, ответьте также. Кроме того, если вы можете предоставить какую-либо документацию или подтверждение подтверждения, я бы дал вам +2, если бы мог: мои запросы Google не дают ничего удовлетворительного.

Loduwijk
источник

Ответы:

11

Встроенная справка PowerShell описывает $ PSVersionTable:

Get-Help about_Automatic_Variables

Возможно, вам придется запустить Update-Helpсначала, если вы не запускали его раньше.

Что хорошего в том, Get-Helpчто вам не нужно точно знать, что вы ищете. То, что я набрал, чтобы сначала найти эту тему, на самом деле было просто help PSVersionTable, и в ней были перечислены все разделы справки, содержащие «PSVersionTable» (есть несколько других).

Это раздел about_Automatic_Variables, который описывает $PSVersionTable, как в настоящее время возвращается PowerShell для меня, но это наименее важная часть, как отметил OP:

$ PsVersionTable Содержит доступную только для чтения хэш-таблицу, в которой отображаются сведения о версии Windows PowerShell, которая выполняется в текущем сеансе. Таблица включает в себя следующие элементы:

CLRVersion:                The version of the common language runtime (CLR)

BuildVersion:              The build number of the current version

PSVersion:                 The Windows PowerShell version number

WSManStackVersion:         The version number of the WS-Management stack

PSCompatibleVersions:      Versions of Windows PowerShell that are 
                           compatible with the current version

SerializationVersion:      The version of the serialization method

PSRemotingProtocolVersion: The version of the Windows PowerShell remote 
                           management protocol
Джошуа Маккиннон
источник
+1 за очевидную простоту. Я работал над многословным ответом, и когда я увидел это, я удалил все это, потому что это говорит меньше, более простыми словами все, что действительно нужно сказать.
Райан Райс
Спасибо! Я действительно надеялся, что может быть какой-то способ сбора метаинформации прямо из PowerShell. Это дало ответ и, вероятно, поможет даже выйти за рамки вопроса. Не то, что последний дополнительный бит, но это делает меня на 1 шаг ближе к этому тоже. Еще раз спасибо.
Loduwijk
Встроенная справка PowerShell - одна из моих любимых функций, и изучение того, как ее использовать, чтобы угадывать и находить вещи, действительно помогает ускорить знакомство с PowerShell. Я также должен отметить, что я понятия не имел, что документация для этой переменной была в About_Automatic_Variables ... что я на самом деле набрал help PSVersionTable, и в ней были перечислены разделы справки, в которых упоминается PSVersionTable, поскольку не было точного соответствия.
Джошуа Маккиннон,
1

Исходя из моего опыта, PSVersion, версия PowerShell, соответствует версии WMF, по крайней мере, в том, что касается основных номеров версий. Я не отслеживал все предварительные версии, чтобы увидеть, как они совпадают.

Майк Шепард
источник