![](/img/trans.png)
[英]Modify system date using Win32SetSystemTime in C# (only date, no hour, minute, second)
[英]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.