2014-02-17 17 views
0

我想創建一個特定方式編輯的日誌文件。調用特定的Powershell WMI對象屬性

我不知道如何顯示我從WMI獲取對象的特定屬性。我相信我需要包含一個對象或者一個foreach對象,但是我的google-foo到目前爲止還不夠強大。

這是我到目前爲止有:

$LogPath = "$HOME\Documents\logs" 
$LogFilePath = "$HOME\Documents\Logs\log1.log" 
$DiskInfo = Get-WmiObject Win32_LogicalDisk -Filter "DeviceID='C:'" 
$BiosInfo = Get-wmiobject win32_Bios 
$AppInfo = Get-WmiObject -Class Win32_Product 


Write-Output "Summary Information for computer $computername on $Date" |Out-file -append -FilePath $LogFilePath 
Write-Output "=============================================================== " | Out-file -append -filepath $LogFilePath 

Write-Output "Disk Drive Summary" |out-file -append $LogFilePath 
Write-Output "=======================================================================" | out-file -append -filepath $LogFilePath 
Write-Output "Model             Size" | Out-file -append -filepath $LogFilePath 
write-Output "--------            ------" | Out-file -append -filepath  $LogFilePath  
Write-Output "$diskinfo.deviceid          $diskinfo.size" | out-file -append -filepath $LogFilePath 


Write-Output "BIOS Version Summary" |out-file -append -filepath $LogFilePath 
Write-Output "=======================================================================" | out-file -append -filepath $LogFilePath 
Write-Output $biosinfo|out-file -append -filepath $LogFilePath 

回答

0

請記住,這將取決於你是否會獲得多個WMI類實例從Get-WmiObject命令或不回。

如果你想爲c:\驅動邏輯磁盤的信息,那麼你就可以做到以下幾點:

$Disk = Get-WmiObject -Class Win32_LogicalDisk -Filter "Name = 'c:'"; 
$Disk.FreeSpace; # In bytes 
$Disk.Size; # In bytes 

如果你想BIOS信息,請執行以下操作:

$BIOS = Get-WmiObject -Class Win32_BIOS; 
$BIOS.SMBIOSBIOSVersion; 
$BIOS.SerialNumber; 

在兩個前例如,我們只處理一個WMI類實例:1)單個「邏輯磁盤」實例,以及2)單個「BIOS」實例。如果您收到多個WMI實例回(如多個打印機對象),你將不得不使用foreach循環每個實例遍歷:

$PrinterList = Get-WmiObject -Class Win32_Printer; 
foreach ($Printer in $PrinterList) { 
     $Printer.Name; 
} 

在一個側面說明,我會建議避免使用的Win32_Product WMI類,因爲它奇怪地在所有MSI(Windows Installer)軟件包上調用修復。有關此問題的更多信息,請參閱此博客文章:http://myitforum.com/cs2/blogs/gramsey/archive/2011/01/25/win32-product-is-evil.aspx