使用Windows PowerShell从数据库导入用户

虽然在70-640考试中并不涉及使用Windows PowerShell导入数据库的方法,不过学习这样的做法可为以后自动创建用户的工作产生巨大的帮助。正如您看到的,只需要几行额外的代码和强大的Windows PowerShell Cmdlet,即可实现目的。

假设从人力资源部门得到了一个包含新雇佣员工信息的Excel表格,Excel可以直接将文件保存为逗号分隔文本文件(.csv),这样的文件即可使用Windows PowerShell导入。.csv文件的***行必须列出所有字段名称,这些内容对应着每个用户的信息。例如下面的例子,可以将下列.csv文件保存为Newusers.csv:Newusers.csv

cn,sAMAccountName,FirstName,LastName

John Woods,john.woods,Johnathan,Woods

Kim Akers,kim.akers,Kimberly,Akers

请注意字段名并不需要与LDAP属性名保持一致,随后可以使用脚本将字段名与属性名进行映射。

Windows PowerShell只需要使用下列一行命令即可从数据源导入:$dataSource=import-csv "newusers.csv"

在导入数据源后,还必须对数据源中的每条记录进行循环。此时可以通过foreach块实现,例如可使用下列格式的代码:foreach($dataRecord in $datasource)

{

# do whatever you want to do

}

foreach cmdlet可对数据源中的每条记录或对象进行循环,并将当前对象分配给$dataRecord变量,因此$dataRecord变量可以代表当前记录。随后即可看到每条记录中的实际字段,分别称为$dataRecord变量的属性。例如,***位用户的姓氏如下:$dataRecord.FirstName

我们可以将其分配给变量:$givenName= $dataRecord.FirstName

再次提醒,变量或字段的名称并不需要与LDAP属性名称匹配。在将包含值的变量写入属性本身时,可以进行映射:$objUser.Put("givenName",$givenName)

LDAP属性"givenName"被包含在引号中。只有在代表对象的实际属性时才需要使用正确的名称。然而如果数据源中的字段名称和属性名称与实际的属性名一致,代码的编写工作那就更简单了。

将上述代码综合在一起,即可创建用户导入脚本:Userimport.ps1

$objOU=[ADSI]"LDAP://OU=People,DC=contoso,DC=com"

$dataSource=import-csv "NewUsers.csv"

foreach($dataRecord in $datasource) {

#map variables to data source

$cn=$dataRecord.cn

$sAMAccountName=$dataRecord.sAMAccountName

$givenName=$dataRecord.FirstName

$sn=$dataRecord.LastName

$displayName=$sn + ", " + $givenName

$userPrincipalName=$givenName + "." + $sn + "@contoso.com"

#create the user object

$objUser=$objOU.Create("user","CN="+$cn)

$objUser.Put("sAMAccountName",$sAMAccountName)

$objUser.Put("userPrincipalName",$userPrincipalName)

$objUser.Put("displayName",$displayName)

$objUser.Put("givenName",$givenName)

$objUser.Put("sn",$sn)

$objUser.SetInfo()

$objUser.SetPassword("C0mp!exP@ssw0rd")

$objUser.psbase.InvokeSet("AccountDisabled",$false)

$objUser.SetInfo()

脚本的***行用于连接到容器,也就是所有用户将要创建到的OU。随后两行则用于连接到数据源,并对每条记录进行循环,将每条记录分配给变量$dataRecord。其中foreach块将完成两件事:首先,将数据源中的字段映射给变量,随后则创建用户。

这里要注意,某些变量的建立需要将两个字段联系(附加)到一起。例如$displayName变量就需要使用"LastName, FirstName"的格式,而$userPrincipalName变量需要使用"FirstName.LastName@contoso.com"的格式。

要创建用户,则需要调用OU的Create方法。用户的属性会自动填写并提交,随后设置密码并启用帐户。收工!

【责任编辑:云霞 TEL:(010)68476606】

点赞 0

powershell查看mysql密码_使用Windows PowerShell从数据库导入用户相关推荐

  1. 怎么查看mysql密码_怎么查看mysql密码

    MySQL数据库查看密码的方法如下: 以系统管理员身份运行cmd. 查看mysql是否已经启动,如果已经启动,就停止:net stop mysql. 切换到MySQL安装路径下:D:\WAMP\MyS ...

  2. #数据库--第1章 Windows 下的数据库导入 TPCH 数据(以 SQL Server 作为示例,MySQL同样适用)

    #数据库--第1章 Windows 下的数据库导入 TPCH 数据(以 SQL Server 作为示例,MySQL同样适用 一.TPCH 简介 二.TPCH 文件 三.生成 TPCH 数据 四.导入 ...

  3. 忘记本地mysql密码_本地MySQL密码忘了,怎么找回?

    展开全部 MySQL密码通常保存在mysql数据库中,我们可以在访问数据之后,使用如下指令进32313133353236313431303231363533e58685e5aeb93133336564 ...

  4. mysql密码@_如何重设MySQL密码

    展开全部 方法一 使用phpmyadmin,这是最简单的了,修改mysql库的user表,不过别62616964757a686964616fe78988e69d8331333361313936忘了使用 ...

  5. 如何在linux系统下修改mysql密码_如何在linux下修改mysql数据库密码?linux修改数据库密码的方法...

    本篇文章给大家带来的内容是介绍如何在linux下修改mysql数据库密码?linux修改数据库密码的方法.有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所帮助. Linux下修改Mysql的 ...

  6. centos 查看mysql 服务器配置_在CentOS上MySQL数据库服务器配置方法

    http://www.jb51.net/article/23255.htm ======================== 1 . 无密码登录: mysql -u root 在已经有密码的情况下报错 ...

  7. 无法为您重置MySQL密码_无法重置MySQL的root密码

    问题描述 我需要重置本地mysql安装的root密码,但不会让我.我已经试过了: $ sudo /etc/init.d/mysql stop * Stopping MySQL database ser ...

  8. Linux重置Mysql密码_解决MySQL for Linux错误 ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost

    Linux重置Mysql密码 一般这个错误是由密码错误引起,解决的办法自然就是重置密码. 假设我们使用的是root账户. 1.重置密码的第一步就是跳过MySQL的密码认证过程,方法如下: #vim / ...

  9. putty怎么查看MySQL密码_putty mysql修改密码

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 putty mysql修改密码 首先我们使用putty连接上服务器,连接成功后,我们直接使用mysql -u root -p [root@lecloud ...

最新文章

  1. mysql5 数据类型,Mysql学习笔记5-----字段的数据类型
  2. AspNetManagementUtility 类
  3. Spring-AOP @AspectJ切点函数之target()和this()
  4. 深度学习中常见的损失函数
  5. ffmpeg命令_使用ffmpeg命令为多个短视频修改视频备注说明
  6. linux下docker安装步骤_linux下安装mysql8步骤
  7. c hello world
  8. [转载] Python学习之numpy函数 all()和any()比较矩阵
  9. 超人再起 Superman Returns
  10. centos7.6安装maven
  11. docker 暴露端口 查看_Docker容器如何暴露端口
  12. 自动驾驶赛道「孔雀东南飞」,何处安家?各有小算盘
  13. struts2+quartz定时任务
  14. 我们是如何设计出,让玩家们有“上瘾症”的抽卡系统的
  15. 22岁少年破解史上最严重网络攻击,拯救全球互联网,三个月后却被FBI逮捕……
  16. python做相册_用Python和Conky做个电子相册,美化你的Linux桌面
  17. 腾讯课堂个人老师直播授课操作 首次下载与安装 200308
  18. keras使用plot_model绘制网络模型图
  19. 搓丝机传动装置设计F=10KN【机械设计基础课程设计说明书+7张CAD图纸】
  20. 【若依】开源框架学习笔记 07 - 登录认证流程(Spring Security 源码)

热门文章

  1. 二流四流神经网路(模型融合矩阵乘法理论实践)
  2. matplotlib多个饼状图
  3. 云容器实例服务入门必读
  4. Kafka-0.10.0.0 集群高可靠实验
  5. 【计算几何】【分类讨论】Gym - 101173C - Convex Contour
  6. WhatFontIs - 字体百科全书,没有不认识的字体
  7. 零基础Java学习之抽象类
  8. NCBI dbGap数据下载记录
  9. 使用Flink的Savepoint功能
  10. 操作与配置CISCO设备