您的位置:首页 > 运维架构 > Shell

SharePoint 2013 使用 PowerShell 更新用户

2015-12-21 21:53 411 查看
  在SharePoint开发中,常常会遇到网站部署,然而,当我们从开发环境,部署到正式环境以后,尤其是备份还原,全部用户组的用户,还依旧是开发环境的,这时,我们就须要用PowerShell更新一下;

  PowerShell命令截图

  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();
  代码逻辑

  逻辑非常easy,找到网站。获取顶级网站的全部用户组。遍历每个用户,假设还是dev环境的,就加入同样名字的生产环境用户名,同一时候删掉开发环境用户。

  长处

  运行效率高,速度快,省去人工处理时间;

  缺点

  假设生产环境和开发环境的用户名不同样,那么就无法完毕替换工作。

  总结

  在SharePoint 2010版本号中推出的PowerShell。之前自己并没有怎么重视,可是经历到了2013版本号,发现非常多时候PowerShell命令行。运行效率比server端对象模型高非常多。尤其使用自带Windows PowerShell ISE编辑工具,调试、使用,都非常方便。

  当然。须要的时候还能够编写成脚本,放在Windows计划任务中运行。

  好了,就到这里,歇息,歇息一下。。。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: