使用powershell在广告中获取组织职务

使用powershell在广告中获取组织职务,powershell,active-directory,Powershell,Active Directory,我一直在到处搜索,并尝试了许多不同的组合,但我似乎不知道如何从广告的组织部分获得“职位” 以下是我尝试过的一些事情 get-aduser -Filter * -SearchBase "Bob.Barker" -Properties sAMAccountName,Title Get-ADUser -identity "Bob.Barker" -Filter * -Properties title | group title -NoElement 另外,作为一个额外的问题,你将如何设置职位名称

我一直在到处搜索,并尝试了许多不同的组合,但我似乎不知道如何从广告的组织部分获得“职位”

以下是我尝试过的一些事情

get-aduser -Filter * -SearchBase "Bob.Barker" -Properties sAMAccountName,Title

Get-ADUser -identity "Bob.Barker" -Filter * -Properties title | group title -NoElement 
另外,作为一个额外的问题,你将如何设置职位名称


谢谢大家的帮助。

在您的示例中,如果用户的用户名是Bob.Barker,请使用以下命令:

get-aduser -Filter {samAccountName -eq "Bob.Barker"}  -Properties sAMAccountName,Title
或者如果姓巴克


使用此选项可以获取所需的所有信息,如标题相关信息或组织信息

Get-ADUser -Filter {samAccountName -like "*bla*"} -Properties *
(我知道这是一条老线索,我很高兴我知道了其中一些问题的答案——希望能帮助下一个需要这份参考资料的家伙/女孩)

powershell的以下部分是正确的:

get-aduser -Filter {samAccountName -eq "Bob.Barker"}  -Properties sAMAccountName,Title
(通过SamAccountname查找,更准确一点)

(按姓氏/姓氏查找,如果你有一个大广告,你会有很多结果要看)

上面的另一个问题是

另外,作为一个额外的问题,你将如何设置职位名称

以下是:

Get-aduser -identity bob.barker | set-aduser -replace @{title="New Job Title"} -whatif
我喜欢使用-whatif,以防出现严重问题,我让首席执行官当看门人之类的

在这里您提交它:注意,您首先使用get aduser找到用户,然后在管道|中,使用@{}大括号之间的新值设置aduser

Get-aduser -identity bob.barker | set-aduser -replace @{title="New Job Title"}
这里有一个额外的答案。如果要导出一整群具有相同标题且需要新标题的用户,请将搜索结果导出为CSV:

Get-Aduser -filter 'Title -like "Old Job Title"' -Properties * | select samaccountname | Export-csv "C:\some_path\change_these_titles_samaccountnames.csv"
导出的CSV将只有与您要查找的职务匹配的SAMAccountName(在本例中为“旧职务”)

现在,创建几个$variables来存储新的职务、要导入的CSV和samaccountname,并创建一个for循环来查看CSV文件

$Set_Title=Import-CSV "C:\some_path\change_these_titles_samaccountnames.csv"
$New_Title="New Title for everyone in CSV file"
    foreach ($User in $Set_Title) {
        $User.sAMAccountName
        Set-ADUser -Identity $User.sAMAccountName -Title $New_Title
}
您甚至可以在for循环之外放置一个count变量,以显示更新了多少用户:

$total = ($Set_Title).count
$total
Write-Host "AD User Titles have been updated..."

希望这能帮助下一个人走出困境

get aduser-Filter*-SearchBase“Bob.Barker”-属性sAMAccountName,Title
应该可以正常工作。输出是什么?您期望它是什么?输出应该是Bob Barker的职称。相反,我得到的是get aduser:提供的DifferentizedName必须属于以下分区之一:'DC=foobar,DC=ForestDNSZones,DC=lala,DC=local at line:1 char:1这很容易使控制台混乱。将它放在一个变量中,然后从该变量中生成一个Get成员,该成员使用“where”搜索用户帐户的属性。
$Set_Title=Import-CSV "C:\some_path\change_these_titles_samaccountnames.csv"
$New_Title="New Title for everyone in CSV file"
    foreach ($User in $Set_Title) {
        $User.sAMAccountName
        Set-ADUser -Identity $User.sAMAccountName -Title $New_Title
}
$total = ($Set_Title).count
$total
Write-Host "AD User Titles have been updated..."