我正在使用PowerShell在文本文件中导出属于管理员组成员的用户列表。然后,我正在使用Compare-Object查找差异。我希望自动执行此过程,如果发现差异,请给我发送电子邮件。我可以比较这两个文件并发送电子邮件,但我知道我不知道如何将比较的输出添加到电子邮件中。
答案 0 :(得分:1)
也许这就是您想要的:
$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
}
更新:
我用简单的整数数组测试了上面的代码。
$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
所以代码框架与上面发布的相同。