活動目錄裏導出用戶信息後在Access裏update數據的"風波"

活動目錄裏導出用戶信息後在Access裏update數據的"風波"sql

將Username及部門從活動目錄裏導出.實現過程:本人試過不少種導出方法,有:csvde,dsquery,net group均感受不完美,最後我的仍是:
第一:將user.vbs拷貝到DC上去,注意編輯一下user.vbs裏邊的你的對應的部門信息。固然能夠修改爲您想提取的字段,呵呵。安全

  
  
  
  
  1. Set objGroup = GetObject("LDAP://CN=工程部,OU=Groups,OU=beijing,DC=ceri,DC=com,DC=cn")  
  2. objGroup.GetInfo  
  3. arrMemberOf = objGroup.GetEx("member")  
  4. For Each strMember in arrMemberOf  
  5.         Set objUser = GetObject("LDAP://" & strMember)  
  6.     objUser.GetInfo  
  7.     WScript.Echo objUser.sAMAccountName & "," & "工程部" & "," & objUser.Displayname & "," &  objUser.Department  
  8. Next 

第二:在DC上開一個CMD窗口,CD到user.vbs所在的目錄,運行:ide

  
  
  
  
  1. cscript user.vbs>user.csv  

重複屢次這個操做即將AD中這些安全組成員順利導出並進行合併user.csvspa


公司有一個監控打印的Access庫,但對於已產生的監控結果也要進行一次更新,具體狀況以下圖:blog

經過上邊步驟生成的user.csv,(將user.csv導入到Access的一個臨時表上,而後用下文同樣的方法,故在此略過這個過程)很順利導入完成公司300多人的域賬號(字段:UserName)與部門一一對應到UserReg裏的字段:DeptName上:ip

 

 

但是2012年1月至今不到兩個月已產生了監控記錄達4000多條以下圖,在部門字段:DeptName上全是未設定:get

咱們要將PrtData表裏的DeptName經過表:UserReg裏的部門信息更新過來,那麼有一個關係是:這兩個表均有一個UserNamestring

熟悉MSSQL的朋友能夠會第一反映寫出:it

  
  
  
  
  1. update PrtData set PrtData.DeptName=UserReg.DeptName from PrtData,UserReg where PrtData.UserName=UserReg.UserName  

但是,Access裏的update是沒有from子句的,翻閱BAIDU,看到好多人說讓我導到MSSQL裏去作,而後導回來,天,那確實是個體力活,而後溫習了一下Access,順利解決問題:class

  
  
  
  
  1. update PrtData,UserReg set PrtData.DeptName=UserReg.DeptName where PrtData.UserName=UserReg.UserName 

特此留存。供本身和本身同樣狀況的朋友們參考,少走彎路。

相關文章
相關標籤/搜索