我们使用PowerShell在Active Directory中自动创建学生用户。除了enable-mailbox之外,我们一切正常。我们只向中学生提供电子邮件地址。因此,我试图让脚本读取csv,并且只为中学生启用了post-mailbox。我们所有的中学都有不到100的校园数,所以我试着让脚本使用ForEach然后如果$ _.extensionAttribute1(带有校园号的csv中的列)小于100,那么它将邮件启用帐户。我遇到的问题是只处理第一个用户并结束脚本。我希望它贯穿csv中的每一行。这是我的剧本。
add-pssnapin Microsoft.Exchange.Management.PowerShell.E2010
Import-CSV C:\scripts\updateuser.csv | ForEach {
$campus =$_.extensionAttribute1
If ($campus -lt '100') {
Enable-Mailbox -Identity $_.sAMAccountName -Database NISDSRV6DB1
}}
您可以提供任何帮助以使其贯穿整个csv的任何帮助将不胜感激。 提前感谢您的帮助。
编辑...我正在搞乱csv文件,我得到了一些有趣的结果。此脚本显示任何内容的唯一方法是,如果extensionAttribute1字段填充了1,我试图让所有小于100的用户。
答案 0 :(得分:0)
尝试在变量赋值的末尾添加;
$campus =$_.extensionAttribute1;
答案 1 :(得分:0)
您的'extensionAttribute1'值未在'if'语句中正确转换为整数。试试这个:
add-pssnapin Microsoft.Exchange.Management.PowerShell.E2010
Import-CSV C:\scripts\updateuser.csv | ForEach {
$campus =$_.extensionAttribute1 -as [Int]
if ($campus -lt '100'){
Write-Host $_.sAMAccountName
Enable-Mailbox -Identity $_.sAMAccountName -Database NISDSRV6DB1
}
}
答案 2 :(得分:0)
我已经弄清楚了。我的中学校园号码分别是1,7,10,42,43,44,45和46.我只会认识到数字是一个(奇怪)。如果我在每个数字前加0到3位数,它就会识别它们。 001,007,010,042,043,044,045和046可以工作并被识别为小于100.还没有找到推理,但我现在需要调整我的csv导出过程来解释这个数字方案