2014-02-17 20 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