在 powershell 中重命名 AD 用户对象名称
Renaming AD user object name in powershell
我试图只获取用户类型的 AD 对象,然后遍历所有对象并更改 AD 用户对象名称。所以我做了以下:
$Users = Get-ADObject -Filter {(ObjectClass -eq "user")} # OR Get-ADObject -Filter 'ObjectClass -eq "user"'
$Users | foreach
{
# Here code to create name based on conditions ($newUserObjectName)
Rename-ADObject -Identity $_ -NewName $newUserObjectName
}
问题是 Get-ADObject 不仅返回用户,还返回计算机对象....我只想要用户对象 类。我也不确定下面的代码行是否通过将身份设置为 $_ 以在迭代中更新当前用户来正确:
Rename-ADObject -Identity $_ -NewName $newUserObjectName
为什么不使用 Get-ADUser 而不是 Get-ADObject 而只是 return DistinguishedName?显然,不要只是 运行 这段代码 :)
$users = (Get-ADUser -Filter *).DistinguishedName #This gets all the users in AD
Foreach($user in $users){
Rename-ADObject -Identity $user -NewName $newUserObjectName
}
Computer
objectClass 派生自 User
objectClass。因此,对用户 class 的查询将 return 同时 Computers
和 Users
。如果只想过滤用户,则必须将 ObjectCategory
指定为 Person
$Users = Get-ADObject -Filter {(Objectclass -eq "user") -and (objectCategory -eq "Person")}
用那个或者你可以用 goodole Get-ADuser
使用Get-ADUser
和Set-ADUser
:
$Users = Get-ADUser -Filter *
$Users | foreach {
# Naming code
Set-ADUser -Identity $_.SamAccountName -SamAccountName $newName
}
这会将所有用户的身份替换为 $newName
。
请注意,您可以将 -SamAccountName
替换为 ADUser
的任何其他 属性。例如,如果您想替换显示名称,您可以使用 -Name $newName
我试图只获取用户类型的 AD 对象,然后遍历所有对象并更改 AD 用户对象名称。所以我做了以下:
$Users = Get-ADObject -Filter {(ObjectClass -eq "user")} # OR Get-ADObject -Filter 'ObjectClass -eq "user"'
$Users | foreach
{
# Here code to create name based on conditions ($newUserObjectName)
Rename-ADObject -Identity $_ -NewName $newUserObjectName
}
问题是 Get-ADObject 不仅返回用户,还返回计算机对象....我只想要用户对象 类。我也不确定下面的代码行是否通过将身份设置为 $_ 以在迭代中更新当前用户来正确:
Rename-ADObject -Identity $_ -NewName $newUserObjectName
为什么不使用 Get-ADUser 而不是 Get-ADObject 而只是 return DistinguishedName?显然,不要只是 运行 这段代码 :)
$users = (Get-ADUser -Filter *).DistinguishedName #This gets all the users in AD
Foreach($user in $users){
Rename-ADObject -Identity $user -NewName $newUserObjectName
}
Computer
objectClass 派生自 User
objectClass。因此,对用户 class 的查询将 return 同时 Computers
和 Users
。如果只想过滤用户,则必须将 ObjectCategory
指定为 Person
$Users = Get-ADObject -Filter {(Objectclass -eq "user") -and (objectCategory -eq "Person")}
用那个或者你可以用 goodole Get-ADuser
使用Get-ADUser
和Set-ADUser
:
$Users = Get-ADUser -Filter *
$Users | foreach {
# Naming code
Set-ADUser -Identity $_.SamAccountName -SamAccountName $newName
}
这会将所有用户的身份替换为 $newName
。
请注意,您可以将 -SamAccountName
替换为 ADUser
的任何其他 属性。例如,如果您想替换显示名称,您可以使用 -Name $newName