【问题标题】:Powershell set-adaccount expiration based on creation date propertyPowershell根据创建日期属性设置adaccount过期
【发布时间】:2018-09-14 10:56:34
【问题描述】:

我正在尝试弄清楚如何编写脚本来搜索 AD 并根据用户的创建日期设置用户的到期日期,例如用户创建时间为 01/01/2018,他们将在 01/01/2019 到期。

p>

Get-ADUser -Filter * -SearchBase $OuDomain | Set-ADAccountExpiration -DateTime # 这是我无法确定选择对象 Created + 365 的部分

更新- 我通过按用户名导出用户并将日期创建到 csv 来实现这一点,然后使用 cel+365 对其进行操作以创建 1 年的时间戳。通过 PS 导入该 csv,然后应用以下脚本将到期日期应用于列出的用户。

foreach ($Users in $Users) {Set-ADUser $Users.Username -AccountExpirationDate $Users.Expires}

【问题讨论】:

    标签: windows powershell


    【解决方案1】:

    您需要为要引用的 AD 属性设置一个变量,然后在“if 语句”中调用它

    $getexpiration = Get-ADUser -Filter * -SearchBase $OuDomain -Properties AccountExpires | select-object accountexpires
    

    这应该针对您需要的 AD 中的字段,但从这里您需要编写一个 if 语句来更新 AD 中的字段。

    【讨论】:

      【解决方案2】:

      谢谢。今天下午我确实设法得到了以下内容-

      PS C:\Users\Administrator> $Exp = Get-ADUser -Filter * -SearchBase $OU -Properties * |选择创建 PS C:\用户\管理员> $exp |飞

      创建时间:2018 年 8 月 31 日 10:01:58

      创建时间:04/09/2018 10:22:12

      PS C:\Users\Administrator> Get-ADUser -Filter * -SearchBase $OU |设置-ADAccountExpiration -DateTime $Exp Set-ADAccountExpiration:无法将“System.Object[]”转换为所需的“System.Nullable`1[System.DateTime]”类型 通过参数“日期时间”。不支持指定的方法。 在行:1 字符:74 + Get-ADUser -Filter * -SearchBase $OU |设置-ADAccountExpiration -DateTime $Exp + ~~~~ + CategoryInfo : InvalidArgument: (:) [Set-ADAccountExpiration], ParameterBindingException + FullyQualifiedErrorId : CannotConvertArgument,Microsoft.ActiveDirectory.Management.Commands.SetADAccountExpirati 开

      【讨论】:

      • 首先创建带有“用户名”和“过期”标题的 csv 然后按照以下声明此 csv 文件的变量 - $Users = Import-Csv "C:\Users\Administrator\ desktop\User.csv" 然后运行命令更新 AD 到期日期属性 - foreach ($Users in $Users) {Set-ADUser $Users.Username -AccountExpirationDate $Users.Expires}
      猜你喜欢
      • 2021-12-02
      • 1970-01-01
      • 2018-02-03
      • 1970-01-01
      • 2018-09-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多