SharePoint 2013 使用 PowerShell 更新用户

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

  代码逻辑

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

  优点

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

  缺点

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

  总结

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

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

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

时间: 2024-11-08 21:25:35

SharePoint 2013 使用 PowerShell 更新用户的相关文章

SharePoint 2013 同步FBA认证用户

SharePoint 开启了基于FBA的身份认证,经常会遇到用户组用户的问题,当我加入一个AD账号,无法同时加入Form认证的用户,这时,只能手动添加,比较麻烦:所以,写了一个服务,用来每天晚上同步一下用户组中的AD账号和Form账号. 原理 原理比较简单,就是遍历用户组的所有用户,同步的时候首先删掉所有的Form账号,然后根据所有的AD账号去查找Form账号重新添加:如果碰到AD安全组,就去安全组中遍历所有的用户,然后查找Form账号添加,每天晚上定时执行. 优点 免去添加账号的时候添加2次,

SharePoint 2013 JavaScript 对象判断用户权限

场 景 近期有个场景,判断当前用户对项目有没有编辑权限,使用JavaScript完成,弄了好久才弄出来,分享一下,有需要的自行扩展吧,具体如下: 代 码 function getPermissions() { var mycontext = new SP.ClientContext(); var mysite = mycontext.get_web(); var mylist = mysite.get_lists().getByTitle('Demo'); myitem = mylist.get

SharePoint 2013 数据库中手动更新用户信息

在SharePoint的使用过程中,尤其是Windows认证的情况下,而且没有配置用户配置文件服务,经常会出现如果更新AD中的用户信息(包括名字.显示名.邮件等),SharePoint这边站点并不会更新的情况. 这时候,我们经常会操作数据进行更新操作,生产环境建议备份,测试环境也要多看几次update语句. 1.首先进入授权的用户组,看到我们的用户名,当AD中更新,这里的Name还是之前的名字,如下: 2.鼠标放到名字上,可以看到Url链接地址,这时候我们需要ListId和ID,ListId是用

SharePoint 2013技巧:Active Directory同步显示的用户照片

为了保持通讯信息的一致性,需要设置SharePoint,Exchange, Lync等信息同步更新显示,例如,员工头像信息. 本文介绍如何在SharePoint 2013中同步显示Active Directory活动目录用户头像信息. 首先在用户属性Picture中导入AD活动目录属性,进入"Central Administration" -〉"Manage Service Applications"-〉"User Profile Service Appl

SharePoint 2013中Active Directory同步显示用户照片

为了保持通讯信息的一致性,需要设置SharePoint,Exchange, Lync等信息同步更新显示,例如,员工头像信息. 本文介绍如何在SharePoint 2013中同步显示Active Directory活动目录用户头像信息. 首先在用户属性Picture中导入AD活动目录属性,进入"Central Administration" -〉"Manage Service Applications"-〉"User Profile Service Appl

SharePoint 2013 新手注意事项总结[不断更新ing]

前言 最近自己的QQ群里,经常有新加入的人,带着一些很入门的问题进行提问,这里,自己也总结总结,入门会经常碰到那些问题,希望能够带给入门的人以帮助. 1. SharePoint搭建环境 大家可以参考下面两篇博客进行SharePoint的安装,这是一个all in one的安装示例,一步步的介绍如何安装SharePoint,截图也算比较完整的. Ø SharePoint 2013 安装图解 http://www.cnblogs.com/jianyus/archive/2013/02/01/2889

SharePoint 2013同步Exchange显示高清用户照片

在"SharePoint 2013技巧分享系列 - Active Directory同步显示用户照片"文中介绍了如何同步Active Directory显示用户照片,但是同步完成后,用户照片尺寸和清晰度都不是非常理想.本文将介绍如何同步Exchange Server显示高清用户照片. 原理 与SharePoint Server 2010相似, 在SharePoint Server 2013中存在一个用户照片的目录.当SharePoint启用Exchange照片同步时, SharePoi

SharePoint 2013中如何启用以其他用户身份登陆

习惯于SharePoint 2010的用户会发现,SharePoint 2013默认把  以其他用户身份登陆(Sign in as different user)的选项去掉了,这对于开发人员来说很麻烦,尤其是需要平凡切换用户来进行测试.幸运的是,修改相关的文件,就可把 以其他用户身份登陆(Sign in as different user)这个选项开启. 解决步骤 进入(C:\Program Files\Common Files\microsoft shared\Web Server Exten

SharePoint 2013 APP开发示例 (二)获取用户信息

这个示例里,我们将演示如何获取用户信息: 1. 打开 Visual Studio 2012. 2. 创建一个新的  SharePoint 2013 app: UserProfileTest. 3. 选择SharePoint-hosted, 点Finish. 4. 打开Default.aspx : 加入knockoutjs和sp.userprofiles.debug.js(包含user profile的信息): <script type="text/javascript" src=