0

我正在编写一个 PowerShell 脚本,该脚本从特定 OU 及其组成员中提取用户,将结果放入 CSV 文件中,然后将该 CSV 文件通过电子邮件发送给指定的收件人。

该脚本工作正常,但我面临以下问题:当我从域控制器运行脚本时,从在我的帐户下运行的 PowerShell 控制台(这是域管理员的一部分)生成的 CSV 文件只有用户名和组成员身份为空。

如果我从提升的提示符运行它,那么它可以正常工作,并且会员信息包含在 CSV 文件中。

请参阅下面的脚本:

import-module ActiveDirectory

##############################
# Start Configuration Section#
##############################
$customer = 'customername'
$sender = 'sender@email.com'
$recipient = 'recipient@email.com'
$recipient_cc = 'cc@email.com'
$recipient_bcc = 'bcc@email.com'
$subject = 'Subject'
$body = ''
$smtpserver = "127.0.0.0"
$searchbase = "OU=" + $customer + ",OU=SomeOtherOu,DC=Example,DC=com"
############################
# End Configuration Section#
############################

$csvfile = 'D:\Scripts\ActiveDirectoryExports\' + $customer + '.csv'

$users | foreach {Get-ADUser -LDAPFilter '(objectclass=person)' -SearchBase $searchbase -Properties displayname,memberof} | select-object displayname,@{name='memberof';expression=    {$_.memberof -join ';'}} | export-csv $csvfile -NoTypeInformation

$att = new-object Net.Mail.Attachment($csvfile)
$msg = new-object Net.Mail.MailMessage
$smtp = new-object Net.Mail.SmtpClient($smtpServer)
$msg.From = $sender
$msg.To.Add($recipient)
$msg.Cc.Add($recipient_cc)
$msg.Bcc.Add($recipient_bcc)
$msg.Subject = $subject
$msg.Body = $body
$msg.Attachments.Add($att)
$smtp.Send($msg)
$att.Dispose()

remove-item $csvfile

任何想法都非常受欢迎。

4

0 回答 0