[Основной входной файл csv] [1]] [1] [! [Введите описание изображения здесь] [2]] [2] [Sql результат запроса, в котором не может быть больше пользователей] [1]
[! [Введите здесь описание изображения] [3]] [3]
В приведенном ниже скрипте мне нужно сравнить вывод с входным файлом CSV, и если значения не совпадают , а затем отправить письмо. Если значения равны, то отправка почты выполняться не будет.
param(
$emailFrom = 'Reporting.Services@accenture.com',
$emailTo = @("aditi.m.singh@accenture.com","s.ab.balakrishnan@accenture.com","rajeshbabu.ks@accenture.com"),
$emailSubject = 'Sending the Attachment',
$smtp = 'AMRINT.SMTP.ACCENTURE.COM',
$Server = (Import-Csv -Path "D:\Scripts\input.csv").ComputerName ,
$Adgroup = (Import-Csv -Path "D:\Scripts\inputAdGroup.csv").UserName ,
$SQLDBName = 'ReportServer',
$SQLQuery = @"
SELECT Distinct
RL.RoleName,
USR.UserName
FROM
Catalog C
INNER JOIN Policies PL
ON C.PolicyID = PL.PolicyID
INNER JOIN PolicyUserRole PUR
ON PUR.PolicyID = PL.PolicyID
INNER JOIN Users USR
ON PUR.UserID = USR.UserID
INNER JOIN dbo.Roles RL
ON RL.RoleID = PUR.RoleID
WHERE RoleName = 'Content Manager'
ORDER BY USR.UserName
"@
)
$emailSent = if ($SQLQuery -eq $AdGroup) {write-host "there are no changes"} else
{'@("aditi.m.singh@accenture.com","s.ab.balakrishnan@accenture.com","rajeshbabu.ks@accenture.com")'}
# This code connects to the SQL server and retrieves the data
$SQLConnection = New-Object System.Data.SqlClient.SqlConnection
$SqlConnection.ConnectionString = "Server = $Server; Database = $SQLDBName; Integrated Security=true;"
$SqlCmd = New-Object System.Data.SqlClient.SqlCommand
$SqlCmd.CommandText = $SqlQuery
$SqlCmd.Connection = $SqlConnection
$SqlAdapter = New-Object System.Data.SqlClient.SqlDataAdapter
$SqlAdapter.SelectCommand = $SqlCmd
$DataSet = New-Object System.Data.DataSet
$SqlAdapter.Fill($DataSet)
$SqlConnection.Close()
$Style = "
<style>
TABLE{border-width: 1px;border-style: solid;border-color: black;border-collapse: collapse;}
TH{border-width: 1px;padding: 3px;border-style: solid;border-color: black;}
TD{border-width: 1px;padding: 3px;border-style: solid;border-color: black;}
</style>
"
$data = $DataSet.Tables[0]
$html = $data `
| Select-Object -Property RoleName, UserName `
| ConvertTo-HTML -head $Style `
| Out-String
Send-MailMessage `
-From $emailFrom `
-To $emailTo `
-Subject $emailSubject `
-BodyAsHtml $html `
-SmtpServer $smtp