3

我们正在使用 powershell 在我们的 Active Directory 中自动创建我们的学生用户。除了启用邮箱,我们一切正常。我们只向中学生提供电子邮件地址。所以我试图让脚本读取 csv 并且只为中学生启用邮箱。我们所有中学的校园号都小于 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 的所有用户。

4

3 回答 3

0

尝试;在变量赋值的末尾添加

$campus =$_.extensionAttribute1;

于 2012-11-28T22:19:16.867 回答
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
    }
}
于 2012-11-28T23:35:55.543 回答
0

我已经想通了。我的中学数字是 1、7、10、42、43、44、45 和 46。如果数字是 1,我只会认出小于(奇怪)。如果我在每个数字前面加上 0 到 3 位数字,它就会识别它们。001、007、010、042、043、044、045 和 046 可以工作并被识别为小于 100。还没有找到原因,但我现在需要调整我的 csv 导出过程以考虑这个数字方案.

于 2012-11-29T15:23:52.413 回答