0

特定の OU とそのグループ メンバーシップからユーザーを抽出し、結果を CSV ファイルに入れ、その CSV ファイルを指定された受信者に電子メールで送信する PowerShell スクリプトを作成しています。

スクリプトは正常に動作しますが、次の問題に直面します。ドメイン コントローラーから、自分のアカウント (ドメイン管理者の一部) で実行されている 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