【发布时间】:2021-12-23 17:48:44
【问题描述】:
Powershell 的初学者试图在我的帮助台工作中变得更有效率。本质上,我有一个 .csv 文件,其中包含我想用来查询 AD 以查看启用/禁用哪些帐户的电子邮件地址列表。到目前为止,我没有得到任何输出:
Import-Module ActiveDirectory
$emails = Import-Csv -Path "c:\users\me\mycsvfile.csv"
foreach($email in $emails) {
Get-ADUser -Filter {userprincipalname -eq '$email.email'} | Select-Object name,enabled
}
.csv 文件有一个名为 email 的列的标题,这就是我使用“$email.email”的原因。任何人都知道我做错了什么(可能很多)。
非常感谢
【问题讨论】:
-
首先选择一个已知良好的电子邮件,看看您的
Get-ADUser是否为该帐户返回任何内容。如果不是,则说明您的过滤器、权限或其他方面有问题。 -
你能制作一个你的 csv 文件的小样本吗?如果你这样做,会有更多人给你答案。
-
根据
Get-ADUser的文档(“如果使用花括号括住过滤器,则根本不应该引用变量”),您的过滤器应该是{userprincipalname -eq $email.email} -
我们还没有收到您的来信.. 作为 SO 新手您可能不知道这一点,但习惯上点击左侧的 ✓ 图标 accept the answer that best solved your problem .这将帮助其他有类似问题的人更轻松地找到它,并有助于激发人们回答您的问题。
标签: powershell foreach