最具影响力的数字化技术在线社区

Share 发表于 2015-4-7 15:58:19

SharePoint 2013 使用 PowerShell 更新用户

在SharePoint开发中,经常会遇到网站部署,然而,当我们从开发环境,部署到正式环境以后,尤其是备份还原,所有用户组的用户,还依然是开发环境的,这时,我们就需要用PowerShell更新一下;  PowerShell命令截图:
  Windows PowerShell ISE编辑工具编写PowerShell非常方便,头上的一句add是添加SharePoint的引用;
http://images.cnitblog.com/blog/256729/201412/191612022518946.jpg
  PowerShell完整代码:
PowerShell的编写和cmd命令、C#代码都有一些区别,尤其是比较字符,字符串连接,变量等等,大家有兴趣还是可以看看PowerShell的资料的;
http://common.cnblogs.com/images/copycode.gif
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();http://common.cnblogs.com/images/copycode.gif

  代码逻辑
  逻辑很简单,找到站点,获取顶级站点的所有用户组,遍历每一个用户,如果还是dev环境的,就加入相同名字的生产环境用户名,同时删掉开发环境用户;
  优点
  执行效率高,速度快,省去人工处理时间;
  缺点
  如果生产环境和开发环境的用户名不相同,那么就无法完成替换工作;
  总结
  在SharePoint 2010版本中推出的PowerShell,之前自己并没有怎么重视,但是经历到了2013版本,发现很多时候PowerShell命令行,执行效率比服务器端对象模型高很多,尤其使用自带Windows PowerShell ISE编辑工具,调试、使用,都非常方便。
  当然,需要的时候还可以编写成脚本,放在Windows计划任务中执行。
  好了,就到这里,休息,休息一下。。。


页: [1]
查看完整版本: SharePoint 2013 使用 PowerShell 更新用户