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

时间:2022-09-20 08:04:47

这几个月一直在帮客户改需求,部署。我已经心力憔悴,经过一段时间的摸索,我对用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,结果如下所示:

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

导入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,不知道中文版本的系统是否会出现导入乱码。

导入成功后,如下所示:

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

小结

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

SharePoint自动化部署,利用PowerShell 导出/导入AD中的用户的更多相关文章

  1. SharePoint自动化部署,利用PowerShell 导入用户至AD——PART II

    这是对上一篇文章<SharePoint自动化部署,利用PowerShell 导出/导入AD中的用户>进行补充.开发时,为了测试和演示,我们往往需要经常性的把用户添加到AD中.数据量小的时候 ...

  2. SharePoint自动化部署,利用SPSD工具包

    目录 怎样使用SPSD 配置Environment XML文件 PowerShell激活Feature  上篇博客讲了利用PowerShell导出.导入AD中的Users.这篇介绍简单介绍一下SPSD ...

  3. ArcGIS for Server使用AD中的用户配置

    ArcGIS for Server使用AD中的用户配置 1.概述 默认情况下,ArcGIS Server使用内置存储模式来管理用户和角色.该模式使用基于文件格式来存储信息.当然,ArcGIS Serv ...

  4. MySql利用mysqldump导出&sol;导入数据库表数据

    备份 在源主机上,先使用mysqldump命令备份,导出sql脚本文件 mysqldump -uroot -p tel_dev > /opt/tel_dev.sql 也可指定编码 mysqldu ...

  5. SharePoint自动化系列——通过PowerShell创建SharePoint Lists

    转载请注明出自天外归云的博客园:http://www.cnblogs.com/LanTianYou/ 代码如下(保存到本地ps1文件中,右键run with PowerShell即可): Add-PS ...

  6. SharePoint自动化系列——通过PowerShell创建SharePoint List Items

    转载请注明出自天外归云的博客园:http://www.cnblogs.com/LanTianYou/ 代码如下(保存到本地ps1文件中,右键run with PowerShell即可): Add-PS ...

  7. SharePoint自动化系列——通过PowerShell创建SharePoint Web

    转载请注明出自天外归云的博客园:http://www.cnblogs.com/LanTianYou/ 代码如下(保存到本地ps1文件中,右键run with PowerShell即可): Add-PS ...

  8. SharePoint自动化系列——通过PowerShell创建SharePoint Site Collection

    通过PowerShell创建SharePoint Site Collection,代码如下: Add-PSSnapin microsoft.sharepoint.powershell function ...

  9. SharePoint自动化系列——通过PowerShell在SharePoint中批量做数据

    转载请注明出自天外归云的博客园:http://www.cnblogs.com/LanTianYou/ PowerShell是基于.NET的一门脚本语言,对于SharePoint一些日常操作支持的很好. ...

随机推荐

  1. Let it go&period;Let it be&period;Keep it up&excl;

    第三份工作仅仅持续了三个月,今天是last day. 虽然时间很短,但也是经历一场,认识了一些人,知道了一些事. 来去匆匆,难免有一点遗憾,还有一点愧疚. 只能放下,顺其自然,继续努力!

  2. toggle函数

    $(function() { $('.love').toggle(function() { $(this).attr("src", "images/loved.png&q ...

  3. 13&period;python笔记之pyyaml模块

    Date:2016-03-25 Title:13.Python笔记之Pyymal模块使用 Tags:Python Category:Python 博客地址:www.liuyao.me 作者:刘耀 YA ...

  4. MyEclipse6&period;5注册码&lpar;转&rpar;

    新装的MyEclipse6.5在网上找了半天的注册码,都不可用.将下面的代码放在MyEclipse下运行后,可以得到注册码.这相当于一个注册机.我得到的如下: administrator nLR8ZC ...

  5. 译文:javascript function中的this

    个人理解+google翻译.如有错误,请留言指正.原文来自MDN: this 简介 Javascript中一个函数的this关键字的行为相对其它语言有些不同.在严格模式和非严格模式间也有区别. 在大多 ...

  6. spring&lpar;6&rpar;--注解式控制器

    6.1.注解式控制器简介 一.Spring2.5之前,我们都是通过实现Controller接口或其实现来定义我们的处理器类.已经@Deprecated.   二.Spring2.5引入注解式处理器支持 ...

  7. Python从零搭建Conf&lowbar;Web配置管理平台

    环境 CentOS 6/7 x64 Python:2 .7.6 Etcd: 3.2.18 Confd:0 .16.0 Nginx: 1.12.1 效果演示 一,拓扑图: 二.涉及软件 ETD: .分布 ...

  8. Revisiting Network Support for RDMA

    重新审视RDMA的网络支持 本文为SIGCOMM 2018会议论文. 笔者翻译了该论文.由于时间仓促,且笔者英文能力有限,错误之处在所难免:欢迎读者批评指正. 本文及翻译版本仅用于学习使用.如果有任何 ...

  9. Execution failed for task &&num;39&semi;&colon;app&colon;processDebugResources&&num;39&semi;

    经常会遇到突然AndroidStudio编译不了程序,报错误: Execution failed for task ':app:processDebugResources'. > Failed ...

  10. FileUpload1&period;PostedFile&period;FileName 获取的文件名

    例如文件叫做 c:\web\a.jpg 如果用IE,则返回   c:\web\a.jpg 含路径 如果用Chrome,则返回 a.jpg 不含路径.