0

我在 PS 中生成报告,一切正常,但是当我尝试使用ConvertToDateTime使日期可读时,它显示为空白?但只有在 Get-WmiObject Win32_Product上,其他像 Win32_Operatingsystem 似乎都很好。

$Install = @{n="Installed";e={$_.ConvertToDateTime($_.InstallDate)}}
$frag14 = Get-WmiObject Win32_Product -ComputerName $name | Select Name,Version,PackageName,$Install,Vendor | Sort Name | 
ConvertTo-html -Fragment 
4

3 回答 3

2

InstallDate 只是一个字符串,它是一个基于 CIM 的日期字符串。尝试这个:

$Install = @{n="Installed";e={[DateTime]::ParseExact($_.InstallDate,'yyyyMMdd',$null)}}
于 2013-06-18T14:22:58.827 回答
0

您不会在 win32_product 类中获得安装日期,这是一个已知错误。

于 2015-05-09T14:32:57.800 回答
0

根据 Win32_Product 的类定义,请参阅MSDN InstallDate 只是一个字符串,而不是基于 CIM 的字符串。该字符串包含格式为 yyyyMMdd 的日期,即“20170417”。InstallDate2 是 CIM 基础日期时间字符串。具体来说,它是一个CIM_DateTime数据类型,它应该包含格式为 yyyymmddHHMMSS.mmmmmmsUUU 的值,其中 sUUU 是以分钟为单位的时区偏移量。即20170417101205.000000-420。

建议供应商填充此 Win32_Product 类,但遗憾的是 InstallDate2 不是必需的,并且通常始终为空。来自MSDN的 Win32_Product 类的部分定义。

class Win32_Product : CIM_Product
{ uint16   AssignmentType;
  string   Caption;
  string   Description;
  string   IdentifyingNumber;
  string   InstallDate;
  datetime InstallDate2;
...

以下 Powershell 命令列出了所有已安装的产品以及安装日期(警告非常慢)。

Get-WmiObject -Class Win32_Product | Select-Object -Property Name, InstallDate, InstallDate2
于 2017-04-17T17:28:57.780 回答