利用powershell比较两个文件,如果检测到差异,请给我发电子邮件



我正在使用PowerShell在文本文件中导出管理员组成员的用户列表。然后我使用比较对象来查找差异。我希望自动化这一过程,如果发现差异,请给我发电子邮件。我可以比较这两个文件并发送电子邮件,但我意识到我不知道如何将比较的输出添加到电子邮件中。

也许这就是您想要的:

$changedEntries = Compare-Object (gc adminreport.txt) (gc adminreport2.txt) | ?{$_.SideIndicator -eq "<="}  | select -expandproperty inputobject
Write-Host "Changed entries: $changedEntries"
if ($changedEntries) {
$joinedChangedEntries = 
send-mailmessage smtpserver mail .mydomaincom -To administrator@mydomain.com -From user@mydomain.com -Subject 'Admin member changed' -Body 
}

更新:

我用简单的int数组测试了上面的代码。

$a = 1..4
$b = 4..8
$changedEntries = Compare-Object $a $b | ?{$_.SideIndicator -eq "<="}  | select -ExpandProperty inputobject
$joinedEntries = $changedEntries -join ","
if ($changedEntries) { write-host "Found changed entries: $joinedEntries" }
$joinedEntries.GetType()
IsPublic IsSerial Name                                     BaseType
-------- -------- ----                                     --------
True     True     String                                   System.Object

因此,代码框架与上面发布的内容相同。

相关内容

最新更新