gpt4 book ai didi

powershell - 使用Powershell脚本从广告中提取日期的年份错误

转载 作者:行者123 更新时间:2023-12-03 01:19:26 25 4
gpt4 key购买 nike

我正在使用Powershell从AD中提取简单数据。该脚本从文本文件中提取用户名,类似于:

Import-Module ActiveDirectory

Get-Content c:\temp\userlist.txt | Foreach-Object {
$user = $_
$fullname = (Get-ADuser -identity $user | foreach {$_.Name})
$email = (Get-ADUser -identity $user -properties * | foreach {$_.mail})
$lastlog = (Get-ADUser -identity $user -properties * | foreach {$_.lastLogon})
$lastlogstr = (Get-Date -format "yyyy MMM d" $lastlog)
"$user,$fullname,$email,$lastlog,$lastlogstr"
}

运行此命令时,将提取所有正确的数据,例如

XXXXX,John Smith,jsmith @ company.com,130252373811789928,0413 10月2日

当我检查 Activity 目录,并使用属性编辑器查看“lastLogon”时,我看到

10/2/2013 8:29:41 PM中央夏令时

如果单击查看该字段,则会看到130252373811789928,如上所示。

但是,对于查询的每个用户,无论我如何格式化日期(例如,使用D等,如上所示),它总是-输入0413而不是2013。同样,它显示0411代表2011,依此类推。

我无法想象为什么会这样。 Powershell正在Windows 7系统上运行,我尝试同时使用ISE和powershell命令。

最佳答案

你能试一下吗 :

$date = [datetime]::fromfiletime($lastlog)
$date.ToString("yyyy MMM d")

要么
$date = [datetime]::FromFileTimeUtc($lastlog)
$date.ToString("yyyy MMM d")

在ActiveDirectory中,Microsoft处理时间的详细信息存储为Windows文件时间。它是一个64位的值,表示自公元1601年1月1日午夜12:00(协调时间)开始经过的100纳秒间隔数。

关于powershell - 使用Powershell脚本从广告中提取日期的年份错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19149560/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com