2014年1月17日 星期五

AD批次改帳號時間的方法(很笨的方法)

最近又接到一個很鳥毛的需求,
有2百多個帳號要統一將到期日設定為2014年12月31日,
查了一下AD目錄後台,
這些帳號都屬於某系統的各家委外廠商(類似客服人員)的某OU,
但問題來了,
裡面可能有上千個帳號,
因為各合約期限不同,
所以只有部分帳號要修改,
但又不能下個指令將所有的帳號一次更改,
鬼打牆了,
想了一下,
只好請對方給我公務帳號列表的文字檔,
然後透過C#去將文字檔的帳號依序撈出來,
撈出來時將字串加工,
例如:
ID:abc
加工成
dsquery user cn=abc,ou=aaa,ou=company,dc=tw,dc=yyy,dc=com, -limit 0 | dsmod user -acctexpires day(距離到期的天數)

然後再全部存成批次檔內容,
ex:
dsquery user cn=abc,ou=aaa,ou=company,dc=tw,dc=yyy,dc=com, -limit 0 | dsmod user -acctexpires 365(1年後到期)
dsquery user cn=abc,ou=bbb,ou=company,dc=tw,dc=yyy,dc=com, -limit 0 | dsmod user -acctexpires 365(1年後到期)
dsquery user cn=abc,ou=ccc,ou=company,dc=tw,dc=yyy,dc=com, -limit 0 | dsmod user -acctexpires 365(1年後到期)

就可以丟到AD裡面去跑批次檔,
但不可否認,
超蠢...
誰叫我不會用C#透過LDAP去改AD帳號的資料,
慘...Orz

沒有留言: