我想使用“paswordLastSet”属性打印出密码的最后设置值。在实现了一些过滤器之后:
$passwordLS = $user.Properties.Item("pwdLastSet")[0]
if($passwordLS -eq 0)
{
$value = "No password last set"
}
else
{
$value = [DateTime]::FromFileTime($passwordLS)
}
我得到了一个输出:
No password last set
2/26/2003 12:21
11/27/2003 11:30
11/27/2003 11:30
1/1/1601 1:00:00 AM
.................
如上所列,有一个值“1/1/1601 1:00:00 AM”,这意味着用户从不设置密码。但是,我不想把这个值作为我的数据。我很乐意用“无密码最后一套”过滤掉它,而不是给我“1/1/1601 1:00:00 AM”作为输出。
我已经调查了这个问题,找到一个可以帮助我以某种方式过滤“1/1/1601 1:00:00 AM”的元素,即使我试图将所有值打印100纳秒来获得相互的价值这个。不幸的是,它们彼此都不同。
我也尝试发表声明:
if($passwordLS -eq 0)
{
$value = "No password last set"
}
else
{
$value = [DateTime]::FromFileTime($passwordLS)
if($value -eq "1/1/1601 1:00:00 AM"){
$value = "No password last set"
}
else{
$value = $value
}
}
但我认为这不是一个不错的代码。有更好的经历吗?
答案 0 :(得分:1)
这不起作用的原因是因为您要将datetime
对象$value
与字符串"1/1/1601 1:00:00 AM"
进行比较
你有很多选择 - 例如:
$value
与[datetime]
对象进行比较 - 例如$("1/1/1601 01:00:00" | Get-Date)
Else
设置$value = $value
是多余的。
代码:
if($passwordLS -eq 0)
{
$value = "No password last set"
}
else
{
$value = [DateTime]::FromFileTime($passwordLS)
if($value.Year -eq 1601){ # this one
if($value -eq $("1/1/1601 01:00:00" | Get-Date)){ # or this one
$value = "No password last set"
}
}