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

本文介绍了如何利用Windows PowerShell从CSV文件导入新雇佣员工信息到MySQL数据库,包括字段映射和用户创建的过程。通过示例脚本展示了如何连接数据库、处理数据并创建用户。
摘要由CSDN通过智能技术生成

使用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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值