Какая версия Платформы управления Windows установлена?

Как Вы проверяете для наблюдения, какая версия Платформы управления Windows (WMF) установлена? Кажется, что это должна быть простая вещь узнать, но я не могу. Даже поиск с помощью Google набора различных версий вопроса не поднимается мало ни к чему.

Это не находится в appwiz.cpl, и regedit ничего не находит для "Платформы управления Windows", и это находит слишком много постороннего материала для "wmf"

Я просто хочу знать, как проверить его вообще любым разумным способом. Существует ли ключ реестра для него? Существует ли файл, который я могу проверить? Что-нибудь???

Самая близкая вещь, которую я мог найти, была здесь на serverfault: Методы для Обнаружения версии Платформы управления Windows. Тот вопрос начинается то же, но это, кажется, просит особенный метод проверки использоваться в GPO; возможно, именно поэтому это не получило ответов.

Существует несколько компьютеров, я хочу проверить это. Тем, с которого я запускаю, является Стандарт Windows Server 2008 R2. Также будут другие операционные системы Windows Server.

Если Вы знаете о каких-либо тегах, которые работают лучше, чем, что я имею, прокомментируйте или повторно отметьте; я не мог найти ничего, что описало этот вопрос хорошо.


Обновление: Некоторые люди, кажется, думают это"$PSVersionTable"(и/или различные свойства его) ответ. Я наконец недавно понял, что это - переменная PowerShell (возможно, префикс 'PS' должен был отдать ее для меня, но она не сделала), и попробованный для рытья глубже. Это привело к другому вопросу: Что делает содержание $PSVersionTable PowerShell представляет?.

Update2: На основе всей информации я собрался теперь и мое лучшее понимание, я вполне уверен что встроенная переменная PowerShell $PSVersionTable.PSVersion не технически ответ на это, но что это часто (иногда? всегда? не уверенный), то же, как в версиях могло бы идти рука об руку. $PSVersionTable.WSManStackVersion переменная могла бы быть тем, что я хочу, но официальное краткое описание того свойства показывает ее представлением стопки управления WS. Действительно ли стопка управления WS является тем же самым как WMF? Поиск с помощью Google предполагает, что они тесно связаны, но я не уверен, является ли ответ на это да.

16
задан 13 April 2017 в 15:14
5 ответов

См. Эту документацию от Microsoft:

https://docs.microsoft.com/en-us/powershell/scripting/setup/installing-windows-powershell?view=powershell-5.1

В разделе «Обновление существующей Windows Powershell» конкретно сказано:

Установочный пакет для PowerShell находится внутри установщика WMF. Версия установщика WMF соответствует версии PowerShell ; для Windows PowerShell не существует отдельного установщика.

Я думаю, что это ответ, ребята. Запустите $ PSVersionTable.PSVersion , чтобы получить версию.

9
ответ дан 2 December 2019 в 20:41

Если он установлен, вы найдете его в «appwiz.cpl». Просто не забудьте заглянуть в раздел «Просмотр установленных обновлений», поскольку WMF распространяется как обновление Windows с уникальными номерами KB для различных версий Windows.

WMF 3.0 installed under Windows 7 SP 1

0
ответ дан 2 December 2019 в 20:41

В PowerShell он доступен по адресу $ PSVersionTable.WSManStackVersion.Major

Моя домашняя система Windows 7:

PS C:\Users\Brian> $PSVersionTable

Name                           Value
----                           -----
CLRVersion                     2.0.50727.5485
BuildVersion                   6.1.7601.17514
PSVersion                      2.0
WSManStackVersion              2.0
PSCompatibleVersions           {1.0, 2.0}
SerializationVersion           1.1.0.1
PSRemotingProtocolVersion      2.1


PS C:\Users\Brian> $PSVersionTable.WSManStackVersion.Major
2
PS C:\Users\Brian>

Затем после установки более новой среды управления Windows:

PS C:\Users\Brian> $PSVersionTable

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


PS C:\Users\Brian>
3
ответ дан 2 December 2019 в 20:41

Я знаю, что это старый вопрос, но для других, кто находит это в Google Search:

Хочу утверждать, что $PSVersionTable.PSVersion - самый надежный индикатор версии WMF. Смотрите примеры ниже.

Windows 7 свежая установка:

Name                           Value
----                           -----
PSVersion                      2.0
WSManStackVersion              2.0
CLRVersion                     2.0.50727.5420
BuildVersion                   6.1.7601.17514
PSCompatibleVersions           {1.0, 2.0}
SerializationVersion           1.1.0.1
PSRemotingProtocolVersion      2.1

Windows 7 после .NET 4.5 и установка WMF 4:

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

Windows 7 после установки WMF 5:

Name                           Value
----                           -----
PSVersion                      5.0.10586.117
WSManStackVersion              3.0
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}
BuildVersion                   10.0.10586.117
CLRVersion                     4.0.30319.18408
PSRemotingProtocolVersion      2.3
SerializationVersion           1.1.0.1

Windows 10, которая включает WMF 5 из коробки:

Name                           Value
----                           -----
PSVersion                      5.0.10586.122
WSManStackVersion              3.0
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}
BuildVersion                   10.0.10586.122
CLRVersion                     4.0.30319.42000
PSRemotingProtocolVersion      2.3
SerializationVersion           1.1.0.1

Так что, как видите, версия для $PSVersionTable. WSManStackVersion.Major, кажется, изменяется только при установке WMF 4, а затем остается на 3. В то время как $PSVersionTable.PSVersion.Major, кажется, сообщает точную версию WMF.

.
10
ответ дан 2 December 2019 в 20:41

Вы проверяете, какая версия Windows Management Framework (WMF) установлена, определяя KB номер версии, которую вы проверяете, а затем, в данном случае, используя wmic запрос, определяете, был ли установлен этот KB номер. Все эти примеры основаны на использовании cmd.exe для выполнения команд.

** Команды для проверки WMF 4.0

wmic qfe get hotfixid | find "KB2819745"
echo %ERRORLEVEL%

** Пример выполнения команд:

C:\Program Files\Tivoli\TSM\baclient> wmic qfe get hotfixid | find "KB2819745"
KB2819745

C:\Program Files\Tivoli\TSM\baclient> echo %ERRORLEVEL%
0

В приведенном выше примере установлен WMF 4.0: KB возвращается из wmic-запроса и кода нулевого возврата.

** Команды Check for WMF 5.0

wmic qfe get hotfixid | find "KB3134760"
echo %ERRORLEVEL%

** Пример выполнения команд:

C:\Program Files\Tivoli\TSM\baclient> wmic qfe get hotfixid | find "KB3134760"
C:\Program Files\Tivoli\TSM\baclient> echo %ERRORLEVEL%
1

Так что в приведенном выше примере WMF 5.0 не установлен: ничего не возвращается из wmic-запроса и ненулевого кода возврата.

Возможно, вы использовали другой KB для установки WMF заданного уровня, но это то, с чем я работаю в настоящее время.

И я всегда проверяю PowerShell (который установлен или обновлен как часть WMF):

powershell.exe -NoLogo -Sta -NoProfile -NonInteractive -Command "Write-Host $PSVersionTable.PSVersion"
echo %ERRORLEVEL%

При обновлении до WMF 4.0 (и снова позже до 5.0) возникают проблемы, если .NET 4.5 не установлен, так что если команда PS выдает ошибку, вам, вероятно, следует установить .NET 4.5.

.
0
ответ дан 2 December 2019 в 20:41

Теги

Похожие вопросы