Как удаленно найти версию .NET в списке серверов с помощью PowerShell? - PullRequest
2 голосов
/ 13 июля 2011

Я пытаюсь найти версию .NET, установленную в списке серверов.Какой сценарий PowerShell должен делать то же самое, если серверы предоставляются в виде файла .txt и они перечислены для поиска версии .NET на серверах?

Ответы [ 4 ]

3 голосов
/ 13 июля 2011

См. Вопрос переполнения стека Сценарий PowerShell для возврата версий .NET Framework на компьютере? о том, как найти структуру.

Для этогомногие серверы, список которых состоит из .txt, вы можете использовать Get-Content для чтения файла, перенаправить его на Invoke-Command и передать команду, выбранную из приведенных выше связанных ответов, чтобы получить структуру.

$script = {gci 'HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP' | sort pschildname -des | select -fi 1 -exp pschildname}
gc list.txt | %{ Invoke-Command -comp $_ -ScriptBlock $script}
2 голосов
/ 13 июля 2011

Вот один из способов:

dir $env:windir\Microsoft.NET\Framework\v* | 
   sort lastwritetime -desc | 
       select -First 1
1 голос
/ 13 июля 2011

Альтернатива с использованием Get-WmiObject, но выглядит довольно медленно:

foreach ($server in (Get-Content serverlist.txt))
{
   $version = Invoke-Command -Computer $server -ScriptBlock {
      (Get-WmiObject Win32_SoftwareElement | ? { $_.name -eq "system.net.dll_x86" }).Version
   }
   Write-Output "$server is using .Net Framework version $version"
}
0 голосов
/ 25 октября 2013

Самый простой способ - использовать переменную $PSVersionTable

PS C:\> $PSVersionTable.CLRVersion

Major  Minor  Build  Revision
-----  -----  -----  --------
4      0      30319  17929   
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...