datetime - PowerShell查询的SCCM LastLogonTimestamp格式

标签 datetime powershell sccm

我想知道如何将SCCM数据库中找到的LastLogonTimestamp转换为可读格式。我现在拥有的代码如下:

$SCCMServer = 'SERVERSCCM'
$SCCMModule = 'C:\Program Files (x86)\Microsoft Configuration Manager\bin\ConfigurationManager.psd1'
$SamAccountName = 'test'

Function Get-SCCMSite { 
    Param (
        [Parameter(Mandatory=$true)]
        [String]$ComputerName
    )
    Process {
        Get-WmiObject -ComputerName $ComputerName -Namespace 'root\SMS' -Class 'SMS_ProviderLocation' | 
            ForEach-Object{ 
                if ($_.ProviderForLocalSite -eq $true) {$SiteCode=$_.sitecode} 
        } 
        if ($SiteCode -eq '') {
            throw ('Sitecode of ConfigMgr Site at ' + $ComputerName + ' could not be determined.') 
        }
        else { 
            Return $SiteCode 
        } 
    }
}

Import-Module $SCCMModule
$SCCMSite = Get-SCCMSite -ComputerName $SCCMServer
Set-Location "$SCCMSite`:"
$SCCMNameSpace="root\SMS\site_$SCCMSite"

Get-WmiObject -namespace $SCCMNameSpace -computer $SCCMServer -query "select * from sms_r_system where LastLogonUserName='$SamAccountName'" | select *
LastLogonTimestamp的输出如下所示:
LastLogonTimestamp            : 20150330132039.000000+***

在网络上,我发现此格式可以转换为如下所示的可读格式:
[datetime]::FromFileTime(20150330132039.000000+***).ToString('d MMMM yyyy')

但是它并不能真正工作,因为它会输出错误。当我删除.后面的最后一部分时,它给了我1601年的日期,这绝对是不正确的。

最佳答案

对于这种情况,我认为FromFileTime方法不是正确的方法。

您可以对原始值进行一些操作来使用ParseExact方法:

> $lastlogonstamp = "20150330132039.000000+***"
> $dt = [datetime]::parseexact($lastlogonstamp.split('.')[0],"yyyyMMddHHmmss",[System.Globalization.CultureInfo]::InvariantCulture)
> $dt

30 March 2015 13:20:39

> $dt.ToString('d MMMM yyyy')
30 March 2015

关于datetime - PowerShell查询的SCCM LastLogonTimestamp格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29347870/

相关文章:

powershell - SCCM-使用PowerShell更改现有部署截止日期

python - 将 pandas DataFrame DatetimeIndex 延长 25 个工作日

java - 单独更改 JodaDate 中的偏移量,而不更改日期和时间信息

azure - 如何在 Azure Cloud shell 中运行 PowerBI REST API

PowerShell : retrieve JSON object by variable value

ios - 通过 Microsoft Intune 分发内部 iOS 应用程序

MySQL - 乘以时间类型值 - 有些返回 00 :00:00

Android - 更改手机的时区

powershell - 通过FTP和Powershell复制文件

xml - 如何反序列化此 PowerShell 输出?