文档章节

SharePoint自动化部署,利用PowerShell 导出/导入AD中的用户

 木宛城主
发布于 2015/03/02 19:42
字数 643
阅读 9
收藏 1

这几个月一直在帮客户改需求,部署。我已经心力憔悴,经过一段时间的摸索,我对用PowerShell实现自动化部署也有了一些心得,比如说利用PowerShell导出导入AD中的User。在基于SharePoint平台开发时,利用AD来进行人员的管理,一般会建组织单元(OrganizationalUnit)来对用户进行管理。当最终部署到客户的服务器上时,怎样把本地AD中的用户数据同步到服务器上呢,要知道如果手动输入人员是一件麻烦的事。幸运的事,PowerShell可以帮我们解决这个麻烦的问题。

导出AD Users(Export-Csv)

  • 首先导出本地相应OU中的User Object
<#

.Description

从AD中的组织单元里以csv格式导出人员数据

.Example

.\userInfoExport.ps1 -ou "Sources" -dc "xcgov" -path "c:\temp\xxx.csv"

#>

param([string]$ou,[string]$dc,[string]$path)

if(!(Get-PSSnapin| Where-Object{$_.Name -eq "Microsoft.SharePoint.PowerShell"})){

    Add-PSSnapin "Microsoft.SharePoint.PowerShell"
}

$searchBase='OU='+$ou+',Dc='+$dc+',Dc=com'

Get-ADUser -LDAPFilter '(name=*)' -SearchBase $searchBase |Select GivenName,SurName,Name,SamAccountName|Export-Csv $path -NoTypeInformation -Encoding UTF8
  • 导出时注意编码格式,特别是数据中包含中文等。比如我这儿使用的是UTF-8。
  • 导出的对象包含许多属性,我们选重要的属性导出,比如GivenName、SurName、Name、SamAccountName,结果如下所示:

导入AD Users(Import-Csv)

  • 当得到指定的OU中的User后,接下来就是导入到线上服务器AD指定的OU中
<#

.Description

从指定的csv格式中导入人员信息

.Example

.\importUserInfo.ps1 -ou "Hello" -dc "Kingdom" -sourcePath "C:\temp\xxx.csv"

#>

param([string]$ou,[string]$dc,[string]$sourcePath)

if(!(Get-PSSnapin|Where-Object{$_.Name -eq "Microsoft.SharePoint.PowerShell"})){

     Add-PSSnapin "Microsoft.SharePoint.PowerShell" 

}

#创建组织单元#

[string]$path='OU='+$ou+',Dc='+$dc+',Dc=Com'

if(![adsi]::Exists("LDAP://$path")){

    $domainObj=[adsi]("LDAP://Dc="+$dc+",Dc=com")

    $domainOU=$domainObj.Create("OrganizationalUnit","OU="+$ou)

    $domainOU.SetInfo()
}

$users=Import-Csv -Path $sourcePath

foreach($user in $users){

    $givenName=$user.GivenName

    $surName=$user.SurName

    $name=$user.Name

    $samAccountName=$user.SamAccountName

    $userPrincipalName=$samAccountName+'@'+$dc+'.com'

    $password=$user.Password

    #创建AD User#

    New-ADUser -Name $name -SamAccountName $samAccountName -UserPrincipalName $userPrincipalName -DisplayName $name -GivenName $givenName -Surname $surName -AccountPassword (ConvertTo-SecureString $password -AsPlainText -Force) -PasswordNeverExpires $true -Enabled $true -Path $path

}

Write-Host "导入成功"
  • 如果导入的时候一直出现乱码,但用Excel打开csv格式时都是正确的编码。尝试将csv用记事本打开,另存为UTF-8格式。因为我使用的英文版的Server,不知道中文版本的系统是否会出现导入乱码。

导入成功后,如下所示:

小结

这篇博客对PowerShell自动化部署SharePoint开了个头,下一篇随笔打算写写利用SPSD进行自动化部署SharePoint,包括利用PowerShell创建权限组,分配权限,设置母版页等。

© 著作权归作者所有

共有 人打赏支持
粉丝 2
博文 222
码字总数 199010
作品 0
黄浦
私信 提问
Powershell入门必备(四)

     介绍   随着我们这个系列文章的逐步深入,我们就越能发现powershell的强大之处,而这种强大只会越来越明显。   在本篇文章中,我们会探索如何使用powershell来操作模块。这对我...

嘶吼RoarTalk
10/08
0
0
PowerShell 与 Linux 的前世、今生、未来

今天,我们的客户面对的是一个多平台、多云、多操作系统共存的世界。这个世界带来了新的挑战,用户需要新的工具把一切都整合起来。而微软上下都在全力以赴打造这样的管理工具,让用户能够在任...

linuxprobe
2016/08/27
3.3K
13
Windows Server AD功能介绍

在 Windows Server 2000、2003 和2008 中,管理员使用各种命令行工具和管理控制台管理单元连接到其 Active Directory 域进行管理工作,通常我们习惯于使用MMC界面,但是很多高级管理操作只能...

TracyZhang
2012/06/08
0
0
PowerShell为什么强大

微软是一个很”低调”的公司,取名为微软,感觉有“微微软下去”的意思,这是个玩笑了。windows 操作系统 和office办公软件,如此之优秀,微软也没敢命名为PowerOS 和 PowerOffice,但是在Mon...

babylater
07/02
0
0
SharePoint 2013技巧分享系列 - Active Directory同步显示用户照片

为了保持通讯信息的一致性,需要设置SharePoint,Exchange, Lync等信息同步更新显示,例如,员工头像信息。 本文介绍如何在SharePoint 2013中同步显示Active Directory活动目录用户头像信息...

冷秋寒
06/29
0
0

没有更多内容

加载失败,请刷新页面

加载更多

js垃圾回收机制和引起内存泄漏的操作

JS的垃圾回收机制了解吗? Js具有自动垃圾回收机制。垃圾收集器会按照固定的时间间隔周期性的执行。 JS中最常见的垃圾回收方式是标记清除。 工作原理:是当变量进入环境时,将这个变量标记为“...

Jack088
昨天
17
0
大数据教程(10.1)倒排索引建立

前面博主介绍了sql中join功能的大数据实现,本节将继续为小伙伴们分享倒排索引的建立。 一、需求 在很多项目中,我们需要对我们的文档建立索引(如:论坛帖子);我们需要记录某个词在各个文...

em_aaron
昨天
27
0
"errcode": 41001, "errmsg": "access_token missing hint: [w.ILza05728877!]"

Postman获取微信小程序码的时候报错, errcode: 41001, errmsg: access_token missing hint 查看小程序开发api指南,原来access_token是直接当作parameter的(写在url之后),scene参数一定要...

两广总督bogang
昨天
31
0
MYSQL索引

索引的作用 索引类似书籍目录,查找数据,先查找目录,定位页码 性能影响 索引能大大减少查询数据时需要扫描的数据量,提高查询速度, 避免排序和使用临时表 将随机I/O变顺序I/O 降低写速度,占用磁...

关元
昨天
15
0
撬动世界的支点——《引爆点》读书笔记2900字优秀范文

撬动世界的支点——《引爆点》读书笔记2900字优秀范文: 作者:挽弓如月。因为加入火种协会的读书活动,最近我连续阅读了两本论述流行的大作,格拉德威尔的《引爆点》和乔纳伯杰的《疯传》。...

原创小博客
昨天
35
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部