9

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

Я не могу найти какую-либо полезную информацию в сети о том, как определить, какая версия Windows работает на компьютере, на котором выполняется сценарий (Server 2003, Server 2008 R2 и т.д.). Есть идеи, как я могу это сделать?

3 ответа3

7

Это тот, с которым я бы пошел:

gwmi win32_operatingSystem | select name

Как упомянуто todda.speot.is, это та же самая ссылка, которую я нашел, но в ней есть много антивирусных программ, и я их протестировал. То, что я дал, похоже, дает вам то, что вы хотите, хотя вам придется разобрать его (я думаю, что это правильный термин).

Вот пример вывода:

Microsoft Windows Server 2003 R2 Standard x64 Edition|C:\WINDOWS|\Device\Harddisk0\Partition1

http://www.eggheadcafe.com/software/aspnet/31845351/reliable-way-to-get-windows-version.aspx

2
Get-WmiObject -Class Win32_OperatingSystem | ForEach-Object -MemberName Caption

Или в гольф

gwmi win32_operatingsystem |% caption

Результат

Microsoft Windows 7 Ultimate
1

Я бы использовал:

gwmi win32_operatingSystem | выберите подпись

Никакого «разбора» не требуется. ; ^)

Образец вывода:

Microsoft Windows Server 2003 R2 Standard x64 Edition

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