【发布时间】:2019-02-07 00:16:23
【问题描述】:
我正在尝试检查从 excel 中的列中提取的数组中的电子邮件是否在 AD 组的电子邮件列表中,如果是,则输出带有 Write-Host 的电子邮件以进行通知。
Clear-Host
$objExcel = New-Object -ComObject Excel.Application
$WorkBook = $objExcel.Workbooks.Open("C:\Users\Status.xlsx")
$WorkSheet = $WorkBook.Sheets.Item("PS1")
$members = Get-ADGroupMember -Identity VIP |
Get-ADUser -Properties emailaddress | Select emailaddress
$startRow = 2
$ColValues = @()
$count = $Worksheet.Cells.Item(65536, 7).End(-4162)
for ($startRow; $startRow -le $count.row; $startRow++) {
$ColValues += $Worksheet.Cells.Item($startRow, 6).Value()
}
foreach ($email in $ColValues) {
if ($members -contains $email) {
Write-Host "$email is a VIP!" -ForegroundColor Red
} else {}
}
Write-Host " "
Write-Host "Complete!" -ForegroundColor Green
如果我运行上面的代码,它会直接转到Complete! - 但所有内容都正确列出了$email、$ColValues 和$members?
【问题讨论】:
标签: arrays powershell variables foreach contains