Powershell-批量互换域用户属性信息
发表于:2025-02-05 作者:千家信息网编辑
千家信息网最后更新 2025年02月05日,需求描述:因生产环境数据接口需求,需要对某时间段已上线用户属性进行批量互换,涉及字段EmployeeNumber,EmployeeID环境信息:Windows Server 2012 R2 Activ
千家信息网最后更新 2025年02月05日Powershell-批量互换域用户属性信息
需求描述:
因生产环境数据接口需求,需要对某时间段已上线用户属性进行批量互换,涉及字段EmployeeNumber,EmployeeID
环境信息:
Windows Server 2012 R2 ActiveDirectory
操作步骤:
PS.操作之初,建议先对当前环境属性字段进行备份导出操作。
方法一:
1.过滤出某时间段创建帐户信息,并导出域帐号EmployeeNumber,EmployeeID字段;
$date=Get-Date$oldday=(Get-Date).AddDays(-180)Get-ADUser -Filter * -Properties * -SearchBase "OU=Old,OU=Staff,DC=a,DC=com" |?{$_.whenCreated -le $date -and $_.whenCreated -ge $oldday} |`Select-Object name,samaccountname,userPrincipalName,EmployeeNumber,EmployeeID | `Export-Csv C:\New0505.csv -Encoding UTF8 -NoTypeInformation
2.将表格数据进行按需调整,去掉ID字段为空的用户信息,并保存CSV文本格式为utf8
3.执行导入用户信息操作,并查看当前各字段对应信息属性
Import-Csv 'C:\New0505.csv' | select SamAccountName,EmployeeNumber,EmployeeID
4.如信息无误,执行批量替换操作
4.1如ID与Number字段位置无调整,执行如下命令:
Import-Csv 'C:\New0505.csv' | ForEach-Object { Set-ADUser -Identity $_.SamAccountName -EmployeeNumber $_.EmployeeID -EmployeeID $_.EmployeeNumber }
4.2如ID与Number字段已调整,则按照正常替换格式替换,执行如下命令:
Import-Csv 'C:\New0505.csv' | ForEach-Object { Set-ADUser -Identity $_.SamAccountName -EmployeeNumber $_.EmployeeNumber -EmployeeID $_.EmployeeID }
查看替换后属性字段信息
Import-Csv 'C:\New0505.csv' | ForEach-Object { get-ADUser -Identity $_.SamAccountName -Properties * |select SamAccountName,EmployeeNumber,EmployeeID }
5.完成替换操作
方法二:
PS.如当前环境中数据均无须调整,可直接执行替换操作,具体如下:
1.以OU为例介绍,查看当前OU下用户相关属性:
Get-ADUser -SearchBase "OU=Old,OU=Staff,DC=a,DC=com" -Filter * -Properties * |select SamAccountName,EmployeeNumber,EmployeeID
2.执行批量互换当前属性操作:
Get-ADUser -SearchBase "OU=Old,OU=Staff,DC=a,DC=com" -Filter * -Properties * |select SamAccountName,EmployeeNumber,EmployeeID |ForEach-Object { Set-ADUser -Identity $_.SamAccountName -EmployeeNumber $_.EmployeeID -EmployeeID $_.EmployeeNumber }
3.再次查看当前OU下用户属性,发现用户属性已变更完成。
Get-ADUser -SearchBase "OU=Old,OU=Staff,DC=a,DC=com" -Filter * -Properties * |select SamAccountName,EmployeeNumber,EmployeeID
综合:对方法一脚本进行优化操作,批量互换某时间段用户属性字段信息:
$date=Get-Date$oldday=(Get-Date).AddDays(-180)Get-ADUser -Filter * -Properties * -SearchBase "OU=Old,OU=Staff,DC=a,DC=com" |?{$_.whenCreated -le $date -and $_.whenCreated -ge $oldday} |`Select-Object name,samaccountname,userPrincipalName,EmployeeNumber,EmployeeID |forEach-Object { Set-ADUser -Identity $_.SamAccountName -EmployeeNumber $_.EmployeeID -EmployeeID $_.EmployeeNumber }
完成本次需求操作。
欢迎关注微信公众号:小温研习社
属性
字段
信息
用户
环境
调整
数据
方法
时间
时间段
需求
命令
格式
位置
公众
再次
备份
帐户
建议
接口
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
tftp服务器哪个版本好用
校长网络安全职责
软件开发哪些不是外包公司
软件开发必备英语口语
ipad验证不了服务器
k频道网址导航栏服务器大全
新乡县有享网络技术有限公司
扬州多媒体视频系统服务器
软件开发第一步
数据库软件有什么
信息网络安全监察就业
计算机网络技术就业分析论文
贵州鲲鹏服务器工厂
dbca删除数据库语句
cdh hive 数据库
用cmd刷新网络安全策略
俄乌冲突 网络安全启示
数据库安全读写
未登录账户创建数据库用户
绍兴app软件开发多少钱
数据库外键事件触发
黑暗之魂3服务器多少钱
北京西城区软件开发公司
互联网的科技向善是什么
操作数据库的语言叫什么
外部访问服务器
第三届网络安全会议
动账服务器
a级服务器是个什么东西
手机网络安全问题案例