Powershell管理系列(三)2012 AD域用户UPN名称还原

简介:

今天在一个用户环境碰到一个非常奇怪的事情,4000多个账户UPN名称全部都为空,和客户沟通后得知是大概禁用过邮箱,不太确定是不是因为那个原因引起的,分析得知可能是由于删除过Exchange邮箱,把AD账户都误删了,误删后通过第三方的AD恢复软件把AD账号都恢复回来了,造成UPN名称都丢失了,具体情况见下图:

wKioL1SsCprCXh5-AAIKmz42bE0691.jpg

我们通过以下步骤把这些UPN名称还原

方法一:[这个方法其实更多的是依赖于我们的Excel处理水平,Powershell我当时不知道怎么导入双引号,囧,周末温习了下Powershell语法,有点思路了,有兴趣的读者请参考方法二]

步骤1、

导出对应的AD账号列表名单为csv文件,命令如下:

Get-ADUser -Filter * -Properties * | where {$
_.UserPrincipalName -eq $null} | Select-Object name,SamAccountName,UserPrincipal
Name | Export-Csv -Encoding Utf8 -NoTypeInformation c:\userinfo.csv

wKiom1SsFxegVoKcAAHMJIPaAfY582.jpg

步骤2、

使用函数A&"@"&C,将userprincipalname列填充为samaccountname@contoso.com,同时向下拖拉填充至最后一行。

 

wKioL1SsFKKx72KFAALP_zzOOKI741.jpg

步骤3、修改完后,就是如下的效果。保存到c:\userinfo.csv,方便后面的导入。

 

wKiom1SsE-PxXW8oAANdzybQE2c342.jpg

步骤4、执行导入命令

 Import-Csv -Path c:\userinfo.csv | foreach {S
et-ADUser -Identity $_.name -UserPrincipalName $_.UserPrincipalName}

 

wKioL1SsFl-DlvppAAEx27ldgsA244.jpg

步骤5、修改后,查看效果,UPN名称均已全部修改过来。

wKioL1SsFuiADSrfAAIl3tcCHio751.jpg

 

 -----------------------------------------------------------------------------------------------------

 

方法二:

步骤1、

查询出UPN名称为空的账号,命令如下:

Get-ADUser -Filter * -Properties * | where {$_.UserPrincipalName -eq $null} | Select-Object name,SamAccountName,UserPrincipalName

wKioL1SyXyXgivhmAAGAddHnO_c603.jpg

步骤2、执行AD用户修改命令

Get-ADUser -Filter * -Properties * | where {$_.UserPrincipalName -eq $null} | Select-Object name,SamAccountName,UserPrincipalName | foreach {Set-ADUser -Identity $_.name -UserPrincipalName ($_.SamAccountName+"@contoso.com")}

wKiom1SykEKDl6RhAAFjAx4YR8M131.jpg

步骤3、修改后,查看效果,UPN名称均已全部修改过来。

wKiom1SykJjDg2aQAAITTid_Zzg210.jpg


本文转自 zhou_ping 51CTO博客,原文链接:http://blog.51cto.com/yuntcloud/1600003,如需转载请自行联系原作者


相关文章
|
13天前
|
监控 数据可视化 安全
AD域管理PowerShell常用命令总结
本文介绍了GET-ADUser命令在AD域管理中的多种应用场景,包括获取、过滤和导出用户信息至CSV文件。同时,推荐了卓豪ADManager Plus软件,该软件提供了批量用户与组管理、报表生成功能,极大简化了AD域的日常管理工作,提升了IT管理员的工作效率和准确性。
|
4月前
PowerShell快速修改多个文件的名称
【8月更文挑战第28天】在PowerShell中批量重命名文件可通过以下方法实现:1)使用`Rename-Item`命令逐一重命名;2)通过循环批量处理特定模式的文件名更改;3)利用正则表达式进行复杂模式匹配与替换。操作前请确保验证命令并备份文件。
305 1