2011-07-12 5 views
2

私はサーバーのリストにインストールされている.NETのバージョンを検索しようとしています。サーバーが.txtファイルとして提供され、サーバー上の.NETバージョンを見つけるために列挙されている場合、PowerShellスクリプトは何を行うのでしょうか?PowerShellを使用してサーバーリストの.NETバージョンをリモートから見つける方法

dir $env:windir\Microsoft.NET\Framework\v* | 
    sort lastwritetime -desc | 
     select -First 1 
+1

はたぶん、あなたはあなたに問題があったことを、すでに何かを試してみましたが、使用することです約質問したいですか?それともあなたのためにスクリプトを書いている誰かが純粋に期待していますか? –

答えて

2

は、ここに1つの方法です。

多くのサーバ上でそれを行うため、.txtからのもののリストは、あなたはそれInvoke-Commandにファイル、パイプを読んで、あなたはフレームワークを取得するために上記のリンクの回答から選択するコマンドを渡すためにGet-Contentを使用することができます。

$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} 
1

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

esiest方法は、変数$PSVersionTable

PS C:\> $PSVersionTable.CLRVersion 

Major Minor Build Revision 
----- ----- ----- -------- 
4  0  30319 17929 
関連する問題