在SharePoint開發中,常常會遇到網站部署,然而,當咱們從開發環境,部署到正式環境之後,尤爲是備份還原,全部用戶組的用戶,還依然是開發環境的,這時,咱們就須要用PowerShell更新一下;web
PowerShell命令截圖:api
Windows PowerShell ISE編輯工具編寫PowerShell很是方便,頭上的一句add是添加SharePoint的引用;服務器
PowerShell完整代碼:工具
PowerShell的編寫和cmd命令、C#代碼都有一些區別,尤爲是比較字符,字符串鏈接,變量等等,你們有興趣仍是能夠看看PowerShell的資料的;網站
1 Add-PsSnapin Microsoft.SharePoint.PowerShell 2 3 $oldDomainName = "uat"; 4 $newDomainName = "dev"; 5 $siteUrl = "http://devteamroom/sites/JianYu" 6 7 $site = Get-SPSite $siteUrl 8 $web = $site.RootWeb; 9 $groupColl = $web.SiteGroups; 10 11 foreach($group in $groupColl) 12 { 13 foreach($user in $group.Users) 14 { 15 if($user.LoginName.indexof($oldDomainName) -gt 0) 16 { 17 $username = $user.LoginName.Split("\\")[1]; 18 $group.AddUser("i:0#.w|$newDomainName\$username","","",""); 19 $group.RemoveUser($user); 20 write-host $username; 21 } 22 } 23 } 24 25 $web.Dispose(); 26 $site.Dispose();
代碼邏輯spa
邏輯很簡單,找到站點,獲取頂級站點的全部用戶組,遍歷每個用戶,若是仍是dev環境的,就加入相同名字的生產環境用戶名,同時刪掉開發環境用戶;命令行
優勢3d
執行效率高,速度快,省去人工處理時間;調試
缺點code
若是生產環境和開發環境的用戶名不相同,那麼就沒法完成替換工做;
總結
在SharePoint 2010版本中推出的PowerShell,以前本身並無怎麼重視,可是經歷到了2013版本,發現不少時候PowerShell命令行,執行效率比服務器端對象模型高不少,尤爲使用自帶Windows PowerShell ISE編輯工具,調試、使用,都很是方便。
固然,須要的時候還能夠編寫成腳本,放在Windows計劃任務中執行。
好了,就到這裏,休息,休息一下。。。