0

このような増分パスワード変更PowerShellスクリプトを開発しようとしています

入力 csv ファイル: D:\pws\newpws.csv

userID,userIdentity,passwd
201206151300057,John.Doe@contoso.com,pa$$worD1
201206151301452,Tommy.Toe@contoso.com,pa$$worD2
201206151302871,Vince.Voe@contoso.com,pa$$worD3
201206151305021,William.Woe@contoso.com,pa$$worD4
201206151306433,Xerxes.Xoe@contoso.com,pa$$worD5
201206151346790,Yvonne.Yoe@contoso.com,pa$$worD6

出力 csv ファイル: D:\pws\lastprocessedId.csv

lastID
201206141186509

これまでのところ、私はこれしか持っていません:

import-csv D:\pws\newpws.csv | foreach {

Set-MSOnlineUserPassword -Identity $_.userIdentity -Password $_.passwd -ChangePasswordOnNextLogon:$true -Credential $cred

}

このスクリプトを変更して、次の csv 行のみを処理するようにします。

  1. yyyymmddhh00000 - たとえば、現在の時刻が 2012 年 6 月 15 日午後 3 時 35 分である場合、フィルタには次のものが含まれる必要があります: 201206151300000、および
  2. lastprocessedId.csv に保存されている lastID よりも大きいユーザー ID を持つ

スクリプトの実行が完了したら、lastprocessedId.csv の lastID を newpws.csv の最後の行の userID で更新する必要があります。

4

1 に答える 1

1

パイプラインのステージのWhere前にフィルターを貼り付ける必要があります。例:Foreach

import-csv D:\pws\newpws.csv | 
    where {$_.userID -gt $lastID -and ...} |
    foreach { Set-MSOnlineUserPassword -Identity $_.userIdentity `
              -Password $_.passwd -ChangePasswordOnNextLogon:$true -Credential $cred
}
于 2012-06-16T06:32:09.533 に答える