3

PowerShell を使用して、Active Directory に学生ユーザーを自動的に作成しています。enable-mailbox 以外はすべて機能しています。私たちは中学生にのみメールアドレスを提供します。そのため、スクリプトに 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

私はそれを理解しました。私のセカンダリキャンパス番号は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 に答える
0

「if」ステートメント内で「extensionAttribute1」値が整数として適切にキャストされていません。これを試して:

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 に答える