【问题标题】:Different time formats in same variable同一变量中的不同时间格式
【发布时间】:2016-07-28 21:21:51
【问题描述】:

我正在编写一个脚本,用于过滤 AD 中的计算机帐户。我想禁用/删除至少不活动超过 90 天的所有帐户。如果它们至少 90 天处于不活动状态,则应将其禁用,如果超过 180 天不活动,则应将其删除

所以,我得到了禁用和删除的日期

$disbale= (Get-Date).AddDays(-90)
$delete = (Get-Date).AddDays(-180)

现在我遍历一个给定的 OU 并获取至少 90 天不活动的所有帐户,因此我也得到那些不活动超过 180 天的帐户。

$acc = Get-ADcomputer -Filter {LastLogonTimeSTamp -lt $disable)} -Properties LastLogonTimeStamp,Description -SearchBase "OU=Computer,DC=dom,DC=de" -Server dom

然后我会将它们放入 foreach 中以禁用或删除它们

foreach ($pc in $acc) {if($pc.LastLogonTimeSTamp -lt $delete){write-host 'delete'} else {write-host 'disable'}}

但在这里我遇到了错误,$pc.LastLogonTimeSTamp 是 [int64] 类型,是 18 位数字,$delete 是格式时间。但是为什么LastLogonTimeSTamp -lt $disable 上面的相同比较有效,而现在却没有呢?我怎么能这么轻松地工作?

【问题讨论】:

  • $DeleteFileTime = $delete.ToFileTime() 然后if($pc.LastLogonTimeStamp -lt $DeleteFileTime)

标签: powershell if-statement active-directory


【解决方案1】:

您确实应该使用 Search-ADAccount cmdlet,它与 Get-ADComputer 位于同一个 Active Directory 模块中。

Search-ADAccount -ComputersOnly -AccountInactive -TimeSpan 90.00:00:00 | where {$_.enabled} | Disable-ADAccount

Search-ADAccount -ComputersOnly -AccountInactive -TimeSpan 180.00:00:00 | where {$_.enabled} | Remove-ADComputer

至于您的确切脚本,您应该将其更改为:

 if($pc.LastLogonTimeSTamp -lt $delete)

收件人:

if([datetime]::FromFileTime($pc.LastLogonTimeSTamp) -lt $delete)

【讨论】:

  • 嗯,不错的选择:)谢谢,也解决了我原来的问题;)
  • 但是如果我想首先将帐户保存到一个变量中,例如:$acc = Search-ADAccount -ComputersOnly -AccountInactive -TimeSpan 90.00:00:00 -SearchBase "OU=Computer,DC=dom,DC=de" -Server dom,我无法使用您的方法访问 lastLogonTime。如果我想稍后像 foreach ($pc in $acc) {$tmpDate=[datetime]::FromFileTime($pc.LastLogonTimeSTamp);if($tmpDate -lt $delete){write-host 'Delete' $pc.name 'lastLogonDate' $tmpDate} else {write-host 'Disable' $pc.name 'lastLogonDate' $tmpDate}} 一样启动 foreach,lastLogonDate 是 01.01.1601 01:00:00。而且我仍然必须使用我的时间变量$delete
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-07-07
  • 1970-01-01
  • 2017-04-10
  • 1970-01-01
  • 1970-01-01
  • 2012-06-04
  • 1970-01-01
相关资源
最近更新 更多