使用powershell在AD中获取组织职位

时间:2014-10-10 08:30:02

标签: powershell active-directory

我一直在各处搜寻,尝试了很多不同的组合,但我似乎无法弄清楚如何从AD的组织部分获得“职称”。

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

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

Get-ADUser -identity "Bob.Barker" -Filter * -Properties title | group title -NoElement 

另外,作为奖金问题,您将如何设置职位。

谢谢大家的帮助。

3 个答案:

答案 0 :(得分:1)

在您的示例中,如果用户的用户名是Bob.Barker,则使用此:

get-aduser -Filter {samAccountName -eq "Bob.Barker"}  -Properties sAMAccountName,Title

或者如果姓氏是 Barker

get-aduser -Filter {sn -eq "Barker"}  -Properties sAMAccountName,Title

答案 1 :(得分:1)

(我知道老线程,我很高兴知道一些问题的答案-希望能很快帮助需要此参考的下一个家伙/女孩)

这些powershell块是正确的:

get-aduser -Filter {samAccountName -eq "Bob.Barker"}  -Properties sAMAccountName,Title

(通过SamAccountname查找,更为准确)

get-aduser -Filter {sn -eq "Barker"}  -Properties sAMAccountName,Title

(按姓/名查找,如果您的AD很大,则需要经历很多结果)

上面的另一个问题是

此外,作为一个奖励问题,您将如何设置职称。

在下面:

Get-aduser -identity bob.barker | set-aduser -replace @{title="New Job Title"} -whatif

我喜欢使用-whatif,以防万一出了什么问题而让CEO成为管理员。

在这里提交:注意,首先使用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只会具有与您要查找的职位(在此情况下为“旧职位”)相匹配的SamAccountnames。

现在,创建一些$变量来存储新的职位,要导入的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
}

您甚至可以将一个count变量放在for循环之外,以显示有多少用户被更新:

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

希望这可以帮助下一个人!

答案 2 :(得分:0)

使用它来获取您需要的所有信息,例如标题相关或组织信息

Get-ADUser -Filter {samAccountName -like "*bla*"} -Properties *