我们希望在2008年的R2中向我们的Active模式中添加几个日期字段,以帮助实现一些自动化。特别地,添加一个从导入自动填充的hireDate
字段。
在我们的测试环境中,所有这些都能像预期的那样工作,但是我很好奇是否有一种方法来增强这个自定义属性在日期时的显示。
hireDate
字段被设置为通用时间语法,以匹配本机字段,如whenCreated
。
但是,当将日期放置到hireDate
中时,它的格式与显示的whenCreated
格式大不相同。
> $user = Get-ADUser MyUser -Properties whenCreated,hireDate
> $user
-- snip --
hireDate : {19870301070000.0Z}
whenCreated : 8/28/2014 12:24:42 PM
如果我检查这些属性的MemberType,它们也是不同的,即使它们都是广义时间
$user | Get-Member -MemberType Properties
TypeName: Microsoft.ActiveDirectory.Management.ADUser
Name MemberType Definition
---- ---------- ----------
hireDate Property Microsoft.ActiveDirectory.Management.ADPropertyValueCollection hireDate {get;set;}
whenCreated Property System.DateTime whenCreated {get;}
是否有适当的方法将自定义属性创建为DateTime
,或者我们是否受到创建这些属性的方式的限制?
发布于 2016-10-20 09:01:44
hireDate
是一个集合。要获得实际值,需要.hireDate[0]
或.hireDate | Select-Object -First 1
。如果PowerShell不为您解析泛化时间戳(毕竟,hireDate
不是一个标准属性),则需要对其进行do it yourself。
$fmt = "yyyyMMddHHmmss.f'Z'"
$culture = [Globalization.CultureInfo]::InvariantCulture
Get-ADUser MyUser -Properties whenCreated,hireDate |
Select-Object -Property *, @{n='hireDate';e={
[DateTime]::ParseExact($_.hireDate[0], $fmt, $culture)
}} -Exclude hireDate
https://stackoverflow.com/questions/40160015
复制相似问题