使用 PowerShell 更新特定 OU 中 AD 中的用户
Update users in AD in specific OU with PowerShell
假设我有以下 OU 树:
DataManagement
└─Country
├─Germany
│ └─Users
│ ├─Laptops
│ └─Computers
├─France
│ └─Users
│ ├─Laptops
│ └─Computers
etc.
我想更新 OU 中的特定容器,例如法国的笔记本电脑组中的用户。如果我想从 CSV 导入用户,该怎么做?下面的代码检查并更新所有 OU。不幸的是,我不知道如何 select 一个特定的容器。有什么建议吗?
Import-Module ActiveDirectory
$Userscsv = Import-Csv D:\areile\Desktop\adtest.csv
foreach ($User in $Userscsv) {
Set-ADUser $User.SamAccountName -Replace @{
Division = $User.Division;
Office = $User.Office;
City = $User.City
}
}
如果您只有 SamAccountName
来识别用户,您可以使用 Get-ADUser
检索用户帐户对象并在调用 Set-ADUser
之前检查 DistinguishedName
属性:
$BaseOU = 'OU=Laptops,OU=Users,OU=France,DC=domain,DC=tld'
ForEach ($User in $Userscsv)
{
Get-ADUser $User.sAMAccountName |Where-Object {$_.DistinguishedName -like "*,$BaseOU"} |Set-ADUser -Replace @{
Division = $User.Division;
Office = $User.Office;
City = $User.City
}
}
啊,如果你当时向我们展示了 csv 的(部分)内容,那将会有所帮助。
不过,我认为这对你有用:
Import-Module ActiveDirectory
$UsersCsv = Import-Csv D:\areile\Desktop\adtest.csv
$SearchBase = "<DISTINGHUISHEDNAME-OF-THE-FRENCH-USERS-OU>"
foreach ($usr in $UsersCsv) {
$adUser = Get-ADUser -Filter {EmailAdress -eq '$($usr.Email)'} -SearchBase $SearchBase -Properties Division,Office,City,EmailAddress
if ($null -ne $adUser) {
Set-ADUser $adUser.SamAccountName -Replace @{Division = $usr.Division; Office = $usr.Office; City = $usr.City}
}
}
假设我有以下 OU 树:
DataManagement └─Country ├─Germany │ └─Users │ ├─Laptops │ └─Computers ├─France │ └─Users │ ├─Laptops │ └─Computers etc.
我想更新 OU 中的特定容器,例如法国的笔记本电脑组中的用户。如果我想从 CSV 导入用户,该怎么做?下面的代码检查并更新所有 OU。不幸的是,我不知道如何 select 一个特定的容器。有什么建议吗?
Import-Module ActiveDirectory
$Userscsv = Import-Csv D:\areile\Desktop\adtest.csv
foreach ($User in $Userscsv) {
Set-ADUser $User.SamAccountName -Replace @{
Division = $User.Division;
Office = $User.Office;
City = $User.City
}
}
如果您只有 SamAccountName
来识别用户,您可以使用 Get-ADUser
检索用户帐户对象并在调用 Set-ADUser
之前检查 DistinguishedName
属性:
$BaseOU = 'OU=Laptops,OU=Users,OU=France,DC=domain,DC=tld'
ForEach ($User in $Userscsv)
{
Get-ADUser $User.sAMAccountName |Where-Object {$_.DistinguishedName -like "*,$BaseOU"} |Set-ADUser -Replace @{
Division = $User.Division;
Office = $User.Office;
City = $User.City
}
}
啊,如果你当时向我们展示了 csv 的(部分)内容,那将会有所帮助。
不过,我认为这对你有用:
Import-Module ActiveDirectory
$UsersCsv = Import-Csv D:\areile\Desktop\adtest.csv
$SearchBase = "<DISTINGHUISHEDNAME-OF-THE-FRENCH-USERS-OU>"
foreach ($usr in $UsersCsv) {
$adUser = Get-ADUser -Filter {EmailAdress -eq '$($usr.Email)'} -SearchBase $SearchBase -Properties Division,Office,City,EmailAddress
if ($null -ne $adUser) {
Set-ADUser $adUser.SamAccountName -Replace @{Division = $usr.Division; Office = $usr.Office; City = $usr.City}
}
}