首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在powershell中重命名AD用户对象名称

在powershell中重命名AD用户对象名称
EN

Stack Overflow用户
提问于 2019-06-07 18:49:26
回答 3查看 2.7K关注 0票数 0

我尝试只获取user类型的AD对象,然后遍历所有这些对象并更改AD用户对象名称。因此,我做了以下工作:

代码语言:javascript
运行
复制
$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不仅返回用户,还返回计算机对象……我只需要用户对象类。另外,我不确定下面这行代码是否正确,通过将标识设置为$_来更新迭代中的当前用户:

代码语言:javascript
运行
复制
Rename-ADObject -Identity $_ -NewName $newUserObjectName
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-06-07 18:54:40

为什么不使用Get-ADUser而不是Get-ADObject,只返回DistinguishedName?显然,不要只运行下面的代码:)

代码语言:javascript
运行
复制
$users = (Get-ADUser -Filter *).DistinguishedName #This gets all the users in AD
Foreach($user in $users){
    Rename-ADObject -Identity $user -NewName $newUserObjectName
}
票数 2
EN

Stack Overflow用户

发布于 2019-06-07 19:00:46

Computer objectClass派生自User objectClass。因此,对user类的查询将同时返回ComputersUsers。如果要仅过滤用户,则必须将ObjectCategory指定为Person

代码语言:javascript
运行
复制
$Users = Get-ADObject -Filter {(Objectclass -eq "user") -and (objectCategory -eq "Person")}

使用它或者你可以使用goodole Get-ADuser

票数 2
EN

Stack Overflow用户

发布于 2019-06-08 01:41:07

使用Get-ADUserSet-ADUser

代码语言:javascript
运行
复制
$Users = Get-ADUser -Filter *
$Users | foreach {
    # Naming code
    Set-ADUser -Identity $_.SamAccountName -SamAccountName $newName
}

这会将所有用户的身份替换为$newName

注您可以用ADUser的任何其他属性替换-SamAccountName。例如,如果要替换显示名称,则应使用-Name $newName

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56492883

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档