在Dynamics CRM平臺是沒有提供賬戶密碼修改功能的,一般我們要實現這個功能或者讓域管理員協助修改,或者將本機加入到域後,通過任務管理器自行修改。
但第一點會讓自己的密碼暴露,第二點則不太可能實現,畢竟很多機器被網絡隔離或者被限制加入域。那麼要實現在Dynamics CRM中修改用戶密碼,該如何實現呢?經過幾個項目的累積和研究,主要有兩種方式可以實現:
1、部署IISPWD站點,利用WIN2003的密碼修改功能,遷移至新服務器平臺
2、編寫自定義PLUGIN,通過在PLUGIN中實現對域的訪問和用戶密碼的修改
下面簡單說下如何實現上面兩個方案:
第一種方案:
1、將WIN2003服務器C:\WINDOWS\system32\inetsrv\iisadmpwd整個文件夾拷貝到CRM站點的crmweb目錄下,如果沒有可到此下載:http://download.csdn.net/detail/ieicihc/9567564
2、註冊Iisadmpwd目錄下的IISpwchg.dll文件:
- 以管理員身份運行命令提示符
- 輸入下面的命令,然後回車:regsvr32 x:\crmweb\iisadmpwd\iispwchg.dll
3、配置PasswordChangeFlags屬性,來確保密碼修改這個功能可用:
- 以管理員身份運行命令提示符
- 切換到C:\Inetpub\Adminscripts目錄(確保打安裝了IIS6腳本工具功能)
- 輸入下面命令,然後回車:cscript.exe adsutil.vbs setw3svc/passwordchangeflags Value
注:在這個命令中,“Value”是設置PasswordChangeFlags屬性的值,我一般用1,執行上面命令需要安裝相應的組件,見下圖:
- 下面是PasswordChangeFlags可以設置的值,你可以組合使用:
0:默認值,表示用ssl連接來更改密碼
1:允許無安全的端口來更改密碼,這個對於ssl功能被禁很有用
2:禁止更改密碼
4:禁止密碼過期提示
5、爲Iisadmpwd directory 建應用程序
- 打開IIS管理器,在左邊面板,找到CRM站點
- 選擇添加應用程序,在對話框中,輸入一個別名(我用IISADMPWD)和路徑(x:\crmweb\iisadmpwd\).然後點“選擇”按鈕來選擇一個恰當的應用池,或生成自己的應用池,再點確定兩次,我們就完成安裝了。
現在,你可以通過瀏覽http://crmserver/iisadmpwd/aexp4b.asp來更改密碼了。(注意域名必須用大寫)
第二種方案:
因爲第一種方案部署比較麻煩,所以我查閱了一些資料,通過編寫plugin的方式來實現,相對來說,我比較喜歡第二種方案,更簡單方便,只需要將解決方案導入CRM,然後通過給相應的角色權限即可實現。
此方案我已打包成託管,並且在CRM2015和CRM2016上面驗證通過。
1、下載託管解決方案:http://download.csdn.net/detail/ieicihc/9567570
2、導入CRM系統
3、給相應的角色添加對實體“AD賬號密碼修改"的讀寫權限
4、用戶登錄CRM系統,創建一條"AD賬號密碼修改"的記錄,並輸入相關信息,保存完成密碼修改