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. 用户 ID 高于当前日期时间减去 2 小时(四舍五入到小时)加上“00000”,格式如下:yyyymmddhh00000 - 例如,如果当前时间是 2012 年 6 月 15 日下午 3:35,则过滤器应包括:201206151300000,以及
  2. 用户 ID 高于存储在 lastprocessedId.csv 中的 lastID

脚本执行完成后,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 回答