我不确定这是否有效,但我想我会把它扔出去看看是否有任何想法。我们在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日到期
答案 0 :(得分:1)
您可以使用正则表达式模式从Description
属性中获取名称:
$User = Get-ADUser external.user -Properties description
if($User.Description -match 'requested by (?<Name>\S+ \S+) ') {
$EmployeeName = $Matches['Name']
}