SharePoint 2013 使用 PowerShell 更新用户

简介:   在SharePoint开发中,经常会遇到网站部署,然而,当我们从开发环境,部署到正式环境以后,尤其是备份还原,所有用户组的用户,还依然是开发环境的,这时,我们就需要用PowerShell更新一下;   PowerShell命令截图:   Windows PowerShell ISE编辑工具编...

  在SharePoint开发中,经常会遇到网站部署,然而,当我们从开发环境,部署到正式环境以后,尤其是备份还原,所有用户组的用户,还依然是开发环境的,这时,我们就需要用PowerShell更新一下;

  PowerShell命令截图

  Windows PowerShell ISE编辑工具编写PowerShell非常方便,头上的一句add是添加SharePoint的引用;

clip_image002

  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();

  代码逻辑

  逻辑很简单,找到站点,获取顶级站点的所有用户组,遍历每一个用户,如果还是dev环境的,就加入相同名字的生产环境用户名,同时删掉开发环境用户;

  优点

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

  缺点

  如果生产环境和开发环境的用户名不相同,那么就无法完成替换工作;

  总结

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

  当然,需要的时候还可以编写成脚本,放在Windows计划任务中执行。

  好了,就到这里,休息,休息一下。。。

目录
相关文章
|
数据库 数据格式 XML
SharePoint BDC(Business Data Connectivity)服务-PowerShell
1. 获取BCS服务应用程序的标识 Get-SPServiceApplication 2. 获取指定的BCS服务应用程序实例 $bcs = Get-SPServiceApplication -Identity b7b3652e-6f51-4161-935a-0631a1100ecf 3.
1007 0
|
安全 存储 数据库
SharePoint SSS(Security Store Service)服务-PowerShell
1. 获取SSS应用程序的标识 Get-SPServiceApplication 2. 获取指定的SSS应用程序实例 $sss = Get-SPServiceApplication -Identity bc4399ed-a2e0-4397-bf07-cd3d207e630e 3.
826 0
SharePoint 解决方案和功能-PowerShell
1. 添加解决方案到SharePoint场 Add-SPSolution "c:\newsolution.wsp" 2. 获取场中的解决方案 Get-SPSolution 3.
1241 0
SharePoint 内容部署-PowerShell
1. 创建一个新的内容部署路径 New-SPContentDeploymentPath –Name "Marketing Internet Content" –SourceSPWebApplication "SharePoint – 80" –SourceSPSite "http://intranet.
783 0