168大数据
标题:
SharePoint 2013 使用 PowerShell 更新用户
[打印本页]
作者:
Share
时间:
2015-4-7 15:58
标题:
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计划任务中执行。
好了,就到这里,休息,休息一下。。。
欢迎光临 168大数据 (http://www.bi168.cn/)
Powered by Discuz! X3.2