繁体   English   中英

Powershell Win32Reg_AddRemovePrograms获取日期输出

[英]Powershell Win32Reg_AddRemovePrograms getting date output

如何从Win32Reg_AddRemovePrograms获取InstallDate以按日/月/年显示?

这是我需要使用的命令

get-wmiobject -Class Win32Reg_AddRemovePrograms -ComputerName AComputer | 其中{$ _。DisplayName-不像“ 修补程序 ”-和$ _。DisplayName-不像“ 安全更新 ”-和$ _。DisplayName-不像“ * Update for Windows *”} | 选择DisplayName,Version,Publisher,InstallDate

如果InstallDate看起来像Win32_Product类的InstallDate(例如20131209):

[DateTime]::ParseExact('20131209','yyyyMMdd',$null).ToString('dd/MM/yyyy')

只是让您知道Win32Reg_AddRemovePrograms类不是普通的类,它是由SMS / SCCM添加的。 它还仅显示与32位程序有关的信息。 资源
因此,我在车站上没有课程,也无法为您提供确切的步骤。 请提供以下命令的输出:

$item = $gwmi Win32Reg_AddRemovePrograms | select -first 1
$item.InstallDate
$item.InstallDate.GetType().fullname

一种方法是像下面的示例一样格式化日期。

$date=Get-Date

2013年12月9日,星期一5:29:50 AM

$date.ToString("dd/MM/yyyy") 

2013/09/12

编辑:我无权访问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')) ;$_}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM