Powershell-一封电子邮件中包含多个附件

时间:2020-06-02 11:08:56

标签: windows powershell scripting active-directory

我有一个脚本,可以将某些输入ActiveDirectory组导出到单独的csv文件中。

当我运行脚本时,它会要求我用“”分隔组,即:group1 group2,然后保存到group1.csv和group2.csv中。

下一步是输入电子邮件地址,然后询问是否发送电子邮件。如果我尝试使用单个组,则效果很好,但不能用于多个组

这是脚本:

param (
 [Parameter(Mandatory, ValueFromPipelineByPropertyname)]
 [ValidateNotNullOrEmpty()]
 [string]$GroupName, 
 [Parameter(Mandatory, ValueFromPipelineByPropertyname)]
 [ValidateNotNullOrEmpty()]
 [string]$YourEmail
)
Remove-Item –path c:\report\* -include *.csv
$allGroupNames = $GroupName -split " "
foreach( $GN in $allGroupNames ) {
    Get-ADGroupMember -identity “$GN” | select-object SamAccountName | Export-csv -path C:\Report\$GN.csv -NoTypeInformation 
}

Write-host "Would you like to send the file via email?(Default is No)" -ForegroundColor Yellow 
    $Readhost = Read-Host " ( y / n ) " 
    Switch ($ReadHost) 
     { 
       Y {Write-host ;"Sending file "} 
       N {Write-Host ;"Email sending declined/ report(s) saved"; exit} 
       Default {Write-Host ;"Default, No and exit"; Exit} 
     } 

$User = "user@company.com"
$File = "C:\Report\UkPrinterPwd.txt" #Secured password file
$cred=New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $User, (Get-Content $File | ConvertTo-SecureString)
$EmailTo = $YourEmail
$EmailFrom = "user@company.com"
$Subject = "AD Group Export" 
$Body = "Good Morning / Afternoon, Please find attached your CSV File requested from Active Directory."
$SMTPServer = "smtp.gmail.com" 
$AttachedFile = "C:\Report\$Groupname.csv"
$SMTPMessage = New-Object System.Net.Mail.MailMessage($EmailFrom,$EmailTo,$Subject,$Body)
$attachment = New-Object System.Net.Mail.Attachment($AttachedFile)
$SMTPMessage.Attachments.Add($attachment)
$SMTPClient = New-Object Net.Mail.SmtpClient($SmtpServer, 587) 
$SMTPClient.EnableSsl = $true 
$SMTPClient.Credentials = New-Object System.Net.NetworkCredential($cred.UserName, $cred.Password); 
$SMTPClient.Send($SMTPMessage)

谢谢。

0 个答案:

没有答案