Как Вы проверяете для наблюдения, какая версия Платформы управления 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 предполагает, что они тесно связаны, но я не уверен, является ли ответ на это да.
См. Эту документацию от Microsoft:
В разделе «Обновление существующей Windows Powershell» конкретно сказано:
Установочный пакет для PowerShell находится внутри установщика WMF. Версия установщика WMF соответствует версии PowerShell ; для Windows PowerShell не существует отдельного установщика.
Я думаю, что это ответ, ребята. Запустите $ PSVersionTable.PSVersion
, чтобы получить версию.
Если он установлен, вы найдете его в «appwiz.cpl». Просто не забудьте заглянуть в раздел «Просмотр установленных обновлений», поскольку WMF распространяется как обновление Windows с уникальными номерами KB для различных версий Windows.
В 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>
Я знаю, что это старый вопрос, но для других, кто находит это в 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.
Вы проверяете, какая версия 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.
.