SharePoint自动化部署,利用PowerShell 导出/导入AD中的用户
这几个月一直在帮客户改需求,部署。我已经心力憔悴,经过一段时间的摸索,我对用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创建权限组,分配权限,设置母版页等。
SharePoint自动化部署,利用PowerShell 导出/导入AD中的用户的更多相关文章
- SharePoint自动化部署,利用PowerShell 导入用户至AD——PART II
这是对上一篇文章<SharePoint自动化部署,利用PowerShell 导出/导入AD中的用户>进行补充.开发时,为了测试和演示,我们往往需要经常性的把用户添加到AD中.数据量小的时候 ...
- SharePoint自动化部署,利用SPSD工具包
目录 怎样使用SPSD 配置Environment XML文件 PowerShell激活Feature 上篇博客讲了利用PowerShell导出.导入AD中的Users.这篇介绍简单介绍一下SPSD ...
- ArcGIS for Server使用AD中的用户配置
ArcGIS for Server使用AD中的用户配置 1.概述 默认情况下,ArcGIS Server使用内置存储模式来管理用户和角色.该模式使用基于文件格式来存储信息.当然,ArcGIS Serv ...
- MySql利用mysqldump导出/导入数据库表数据
备份 在源主机上,先使用mysqldump命令备份,导出sql脚本文件 mysqldump -uroot -p tel_dev > /opt/tel_dev.sql 也可指定编码 mysqldu ...
- SharePoint自动化系列——通过PowerShell创建SharePoint Lists
转载请注明出自天外归云的博客园:http://www.cnblogs.com/LanTianYou/ 代码如下(保存到本地ps1文件中,右键run with PowerShell即可): Add-PS ...
- SharePoint自动化系列——通过PowerShell创建SharePoint List Items
转载请注明出自天外归云的博客园:http://www.cnblogs.com/LanTianYou/ 代码如下(保存到本地ps1文件中,右键run with PowerShell即可): Add-PS ...
- SharePoint自动化系列——通过PowerShell创建SharePoint Web
转载请注明出自天外归云的博客园:http://www.cnblogs.com/LanTianYou/ 代码如下(保存到本地ps1文件中,右键run with PowerShell即可): Add-PS ...
- SharePoint自动化系列——通过PowerShell创建SharePoint Site Collection
通过PowerShell创建SharePoint Site Collection,代码如下: Add-PSSnapin microsoft.sharepoint.powershell function ...
- SharePoint自动化系列——通过PowerShell在SharePoint中批量做数据
转载请注明出自天外归云的博客园:http://www.cnblogs.com/LanTianYou/ PowerShell是基于.NET的一门脚本语言,对于SharePoint一些日常操作支持的很好. ...
随机推荐
- JAVA Eclipse打开报错failed to load the jni shared library怎么办
JRE是64位的,但是Eclipse是32位的 一般都用绿色版的了,可以直接解压运行
- 【jeecg-mybatis版本】 mybatis+spring mvc 完美整合方案 查询,保存,更新,删除自动生成
Jeecg-Mybatis版本代码生成器演示视频 http://pan.baidu.com/share/link?shareid=243717&uk=2668473880 简要说明 JE ...
- SQL Server配置支持中文
- WIP 001 - design the applicant screen
In this item, you only need to design the screen
- ViewRoot,DecorView,MeasureSpec和View的工作原理——Android开发艺术探索笔记
原文链接 http://sparkyuan.me/ 转载请注明出处 View的绘制流程是从ViewRoot的performTraversals方法開始的.它经过measure.layout和draw三 ...
- Linux安装和设置Samba服务器
1. 安装 安装前先关闭iptables和SELinux. Centos输入以下命令: yum install samba samba-client Ubuntu输入以下命令: apt-get ins ...
- Java多线程之线程的状态以及线程间协作通信导致的线程状态转换
转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/6561589.html 一:线程的状态以及变化图 Java中线程中状态可分为五种:New(新建状态),Ru ...
- 关于Git HEAD^与HEAD~的关系
关于Git HEAD^与HEAD~的关系 请参考下图,来自stackoverflow http://stackoverflow.com/questions/2221658/whats-the-diff ...
- N-Queens I II(n皇后问题)(转)
N-Queens The n-queens puzzle is the problem of placing n queens on an n×n chessboard such that no tw ...
- cmake交叉编译android(转)
生成cmake编译所需的文件 #-H指向CMakeLists.txt文件父级目录 #-B指向中间产物目录 #-DCMAKE_LIBRARY_OUTPUT_DIRECTORY指向so输出目录 #-DCM ...