读取CSV,获取每个项目的AD属性,并通过PowerShell发送电子邮件



试图自动化我工作的一部分,该部分要求我审核非活动用户并向他们的经理发送电子邮件。此报告采用CSV格式,包含多个列。我希望有一个PowerShell脚本,它可以遍历其中一列,读取用户名并获取广告属性,如全名和经理。然后,我希望能够让脚本向这位经理发送一个预先准备好的响应,让他们知道他们的直接下属需要登录。

示例CSV:姓名|用户名|上次登录|etc

我在一篇类似的帖子中读到,有些人创建了一个数组,并将列中的每个项目存储到一个数组中,例如

$usernames=@(($usernames+=$_.username

但是,一旦所有项目都在一个数组中,我就很难充实其余的逻辑。

请原谅任何问题,这是我的第一篇帖子。谢谢你抽出时间。

一旦所有项都在一个数组中,我就很难充实逻辑的其余部分。

一旦你有了一个用户名数组,你只需要一个循环语句——就像foreach循环:

foreach($username in $usernames){
# fetch user account from AD
$ADUser = Get-ADUser $username -Properties manager,displayName
# fetch manager account from AD
$ADManager = Get-ADUser $ADUser.manager -Properties mail,displayName
# compose email content
$subject = "'$($ADUser.displayName)' needs to log in!"
$body = "Dear $($ADManager.displayName),`n`nPlease inform your direct report '$($ADUser.displayName)' that they need to log in!`n`nBest Regards`nMarkM"
# send email to manager
Send-MailMessage -From markm@company.tld -Subject $subject -Body $from -SmtpServer mail.server.fqdn
}

最新更新