2013年2月4日月曜日

◆リモートマシンのドライブにデフラグが必要か調べる

PowerShell: ◆各ドライブにデフラグが必要か調べるのリモート版。

001
002
003
004
005
006
007
008
009
010
011
012
013
014
015
016
017
018

function DefragAnalysis($computer)
{
 
gwmi win32_logicaldisk -Filter DriveType=3 | %
{
   
$drive = $_.
DeviceID
   
$disk =
 
     
gwmi win32_volume -Filter "DriveLetter='$drive'" -Comp $computer
    $def = 1 | select ComputerName,Drive,DefragRecommended
    $def.ComputerName = $computer
    $def.Drive = $drive
    $def.DefragRecommended =
 
      (
Invoke-WmiMethod -Path $($disk.
__PATH)  `
          
-Name DefragAnalysis).
DefragRecommended
   
$def
  } 
}


$computers = "sv01","sv02","sv03"
$computers | %{DefragAnalysis $_} | ft -AutoSize

「Win32_volume」オブジェクトの「DefragAnalysis」メソッドを「Invoke-WmiMethod」で呼ぶ。

ただし、リモートに対してオブジェクトを渡せないので「__PATH」プロパティに持っているシリアライズされた情報を渡すって感じでしょうか。

image

0 件のコメント:

コメントを投稿