1

假设我在 OU 树下:

数据管理
└─国家
  ├─德国
  │ └─用户
  │ ├─笔记本电脑
  │ └─电脑
  ├─法国
  │ └─用户
  │ ├─笔记本电脑
  │ └─电脑
  等等

我想更新 OU 中的特定容器,例如法国笔记本电脑组中的用户。如果我想从 CSV 导入用户,该怎么做?下面的代码检查并更新所有OU。不幸的是,我不知道如何选择特定的容器。有什么建议么?

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
    }
}
4

2 回答 2

1

啊,如果您当时向我们展示了 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}
    }
}
于 2018-07-15T10:40:19.530 回答
0

如果您只有SamAccountName识别用户的权限,则可以在调用之前使用Get-ADUser并检查属性来检索用户帐户对象:DistinguishedNameSet-ADUser

$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
    }
}
于 2018-07-15T10:15:52.450 回答