读取 Registery 值并转换为日期

Adi*_*tya 2 registry powershell datetime

我正在尝试使用以下代码查找 Windows 机器的正常运行时间(上次关机时间):

$computernames = gc LegAservers.txt
foreach ($computername in $computernames) {
  $baseKey = [Microsoft.Win32.RegistryKey]::OpenRemoteBaseKey("LocalMachine",$computername)
  $sKey = "System\CurrentControlSet\Control\Windows"
  $key = $baseKey.OpenSubKey($sKey)
  $kvalue = $key.GetValue("ShutdownTime")
  $kvalue
  "------------------------------------------"
  $baseKey.Close()
}
Run Code Online (Sandbox Code Playgroud)

输出是:

$computernames = gc LegAservers.txt
foreach ($computername in $computernames) {
  $baseKey = [Microsoft.Win32.RegistryKey]::OpenRemoteBaseKey("LocalMachine",$computername)
  $sKey = "System\CurrentControlSet\Control\Windows"
  $key = $baseKey.OpenSubKey($sKey)
  $kvalue = $key.GetValue("ShutdownTime")
  $kvalue
  "------------------------------------------"
  $baseKey.Close()
}
Run Code Online (Sandbox Code Playgroud)

我无法隐蔽这种$kvalueDateTime使用格式为:

[DateTime]::FromFileTime($kvalue)
Run Code Online (Sandbox Code Playgroud)

请建议正确的$kvalue日期和时间格式转换方法,以便用户理解。

Dav*_*ant 6

$regKey = Get-ItemProperty -Path Registry::HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Windows
$shutDown = $regKey.ShutdownTime
$Int64Value = [System.BitConverter]::ToInt64($shutDown, 0)
$date = [DateTime]::FromFileTime($Int64Value)

$date
Run Code Online (Sandbox Code Playgroud)