PowerTip of the Day-Getting Installed Updates

原文地址:http://app.en25.com/e/es.aspx?s=1403&e=4914&elq=a3fdfdb4961d4feabec6e309570c5e33

原文:

PowerShell is great for parsing log files. Here is a function that extracts all installed Windows updates from an internal log file and returns the information as pure PowerShell objects. Have a look as this code uses a number of powerful parsing and wrapping techniques:

function Get-Updates {
     
Get-Content $env:windir\windowsupdate.log -encoding utf8 |
    
Where-Object { $_ -like '*successfully installed*'} |
    
ForEach-Object {
          
$info = $_.Split("`t")
          
$hash = @{}
          
$hash.InstallDate = [DateTime]$info[6].Remove($info[6].LastIndexOf(":"))
         
$hash.Product = $info[-1].Split(":")[-1].Trim()
          
New-Object PSobject -property $hash  
    }
}

Get-Updates

 

翻译:

Powershell在转换日志文件上很有威力。下面的函数会从一个日志文件提取所有已经安装的windows updates并且把信息用PowerShell对象的方式更纯净的显示出来。下面代码用到了一些非常强大的转换和包装技巧:

function Get-Updates {
     
Get-Content $env:windir\windowsupdate.log -encoding utf8 |
    
Where-Object { $_ -like '*successfully installed*'} |
    
ForEach-Object {
          
$info = $_.Split("`t")
          
$hash = @{}
          
$hash.InstallDate = [DateTime]$info[6].Remove($info[6].LastIndexOf(":"))
         
$hash.Product = $info[-1].Split(":")[-1].Trim()
          
New-Object PSobject -property $hash  
    }
}

Get-Updates

 

 

笔记:

如果直接用Get-Content $env:windir\windowsupdate.log输出的话信息会很长很乱,利用where过滤后并且只取某些关键列并把数据经过一定的转化,看上去更清晰了。

posted @ 2010-06-25 13:47  哥本哈士奇(aspnetx)  阅读(425)  评论(0编辑  收藏  举报