从Active Directory说明中提取名称

时间:2016-11-17 22:09:08

标签: powershell active-directory

我不确定这是否有效,但我想我会把它扔出去看看是否有任何想法。我们在Active Directory中为外部用户提供了一个OU。这些用户的帐户每6个月到期一次。我已经编写了一个脚本来每月运行一个报告,并收集到期的帐户到文本文件中,这样我就有了一个易于阅读的列表。但是,我真的希望由为外部用户请求帐户的人对这些进行分组,因为我必须通过电子邮件发送请求者并查看是否应该扩展该帐户。

在外部用户帐户的说明中,除其他外,还有短语"请求"然后是我需要发送电子邮件的员工的姓名。我真的想用这些名称对我的脚本输出进行排序,这样就可以更容易地看到我需要发送电子邮件的人(最终我想将其全部自动化,以便在帐户发送时发送电子邮件到期)。

基本上,我需要PowerShell查看description属性中的字符串,找到"由"然后列出名称。一些非常可怕的伪代码可能看起来像:

If substring == "requested by"
    Go one more character
    print each character until space
    go one more character (skipping the space)
    print each character until space

我知道这是一个很长的镜头。欢迎任何提示。

编辑:这是一个描述的例子

项目 - 约翰史密斯于2016年8月1日提出要求,于2016年12月31日到期

1 个答案:

答案 0 :(得分:1)

您可以使用正则表达式模式从Description属性中获取名称:

$User = Get-ADUser external.user -Properties description
if($User.Description -match 'requested by (?<Name>\S+ \S+) ') {
    $EmployeeName = $Matches['Name']
}