在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计划任务中执行。
好了,就到这里,休息,休息一下。。。