如何使InstallDate从Win32Reg_AddRemovePrograms按日/月/年显示?
这是我需要使用的命令
get Win32Reg_AddRemovePrograms -ComputerName计算机#,其中{$_.DisplayName -notlike“修复”-and $_.DisplayName -notlike“安全更新”-and $_.DisplayName -notlike "*Update *"} {$_.DisplayName选择DisplayName,Version,Publisher,InstallDate
发布于 2013-12-09 11:58:29
如果InstallDate看起来像Win32_Product类的InstallDate (例如,20131209):
[DateTime]::ParseExact('20131209','yyyyMMdd',$null).ToString('dd/MM/yyyy')发布于 2013-12-09 11:54:56
为了让您知道Win32Reg_AddRemovePrograms类不是一个常见的类,它是由SMS/SCCM添加的。它也只显示与32位程序相关的信息.Source
由于这个原因,我在车站上没有可用的类,也不能为您提供确切的步骤。请提供此命令的输出:
$item = $gwmi Win32Reg_AddRemovePrograms | select -first 1
$item.InstallDate
$item.InstallDate.GetType().fullname发布于 2013-12-09 11:31:05
一种方法是格式化日期,如下面的示例所示。
$date=Get-Date2013年12月9日(星期一)上午5:29:50
$date.ToString("dd/MM/yyyy") 2013年12月9日
编辑:我没有访问Win32Reg_AddRemovePrograms的权限,所以没有测试。
试着在结尾添加以下内容:
| %{ $_.InstallDate = ($_.InstallDate.tostring("dd/MM/yyyy") ); $_ }所以最后一句:(加了“换行”)
get-wmiobject -Class Win32Reg_AddRemovePrograms -ComputerName AComputer| `
where {$_.DisplayName -notlike "hotfix" -and $_.DisplayName -notlike "Security Update" -and $_.DisplayName -notlike "*Update for Windows *"} | `
select DisplayName,Version,Publisher,InstallDate | `
%{ $_.InstallDate = ($_.InstallDate.tostring("dd/MM/yyyy") ); $_ }或者是像Shay提到的日期格式,
| %{ $_.InstallDate = ([DateTime]::ParseExact($_.InstallDate,'yyyyMMdd',$null).ToString('dd/MM/yyyy')) ;$_}完整脚本:
get-wmiobject -Class Win32Reg_AddRemovePrograms -ComputerName AComputer| `
where {$_.DisplayName -notlike "hotfix" -and $_.DisplayName -notlike "Security Update" -and $_.DisplayName -notlike "*Update for Windows *"} | `
select DisplayName,Version,Publisher,InstallDate | `
%{ $_.InstallDate = ([DateTime]::ParseExact($_.InstallDate,'yyyyMMdd',$null).ToString('dd/MM/yyyy')) ;$_}https://stackoverflow.com/questions/20468690
复制相似问题