您好我对powershell和活动目录有疑问。我想要在所有用户中更改属性。
为此,我有这个ps脚本:
Clear
############################################### Settings ####################################################################
$ldap_path = '...' #secret
<# 1. '*'
2. 'XXX*'
3. 'XXX-XXX*' (XXX sind Zahlen)
Ansonsten den genauen String eingeben
#>
$search_filter = '...' #Filterparameter
##############################################################################################################################
#Alle AD-User mit Topdesk in Pager einlesen, Unterhalb OU Abteilungen
$Abteilungen = Get-ADOrganizationalUnit -SearchBase $ldap_path -SearchScope Subtree -Filter 'Name -like $search_filter' | sort
ForEach($Abteilung in $Abteilungen)
{
$Kostenstelle = $Abteilung.Name
$Standort = $Abteilung.City
IF([string]::IsNullOrWhiteSpace($Standort)) { $Standort = "Ohne".Trim() }
$DN = $Abteilung.DistinguishedName
Write-Host "Kostenstelle: " $Kostenstelle
Write-Host "Standort....: " $Standort
$searchb = "..."
$Users = Get-ADUser -Filter { pager -Like "topdesk" -and Enabled -eq $true } -Searchbase "$searchb"
ForEach($User in $Users)
{
...# ???
}
...
}
我只想阅读Department中的所有UserObjects,并将属性street更改为extensionAttribute2,将description更改为extensionAttribute1。
答案 0 :(得分:1)
我认为你可以用一个班轮做到这一点。
Get-ADUser -Filter * -SearchBase "OU=Finance,OU=UserAccounts,DC=FABRIKAM,DC=COM" -properties StreetAddress,Description | foreach-object {Set-ADUser $_ -ExtensionAttribute2 ($_.StreetAddress) -ExtensionAttribute1 ($_.Description)}
Get-ADUser -Filter * -SearchBase "OU=Finance,OU=UserAccounts,DC=FABRIKAM,DC=COM" -properties StreetAddress,Description | foreach-object {Set-ADUser $_ -add @{ "ExtensionAttribute2"="$_.StreetAddress","ExtensionAttribute1"="$_.Description"}}
**根据@kage评论更改了第二个代码示例。
希望这有帮助。
谢谢,蒂姆。