我在Active Directory中更新自定义属性时遇到了一些问题,希望你们可以帮助我。
到目前为止,我正在更新属性,但它会将整行发送出我的csv文件,而不只是一个值。
好的......这就是我的csv的样子:
PERSONALNUMMER;GESCHLECHT;NACHNAME;VORNAME;EMAIL;MOBIL;TEL;BEZIRK;VORGESETZER;ZINR;ZINAME;SPESENHOEHE;KOSTENSTELLE;VBART;COLLECTION;
AA871;W;Mustermann;Max;max.mustermann@contoso.com;+49123456789;+492345678901;22559;A0C57;0000000031;Maxine Mustermann;01;0010076540;VB;0
这是导入我的AD属性的内容:
@{PERSONALNUMMER=AA871; GESCHLECHT=W; NACHNAME=Mustermann; VORNAME=Max; EMAIL=max.mustermann@contoso.com; MOBIL=+49123456789; TEL=++492345678901; BEZIRK=22559; VORGESETZER=A0C57; ZINR=0000000031; ZINAME=Maxine Mustermann; SPESENHOEHE=01; KOSTENSTELLE=0010076540; VBART=VB; COLLECTION=0}.Collection
好的......现在正在执行此操作的代码片段:
$users = Import-Csv $FullDestPath -Delimiter ';'
foreach ($user in $users) {
IF ($user.Collection -ne '') {Get-ADUser -Filter "SamAccountName -eq '$($user.PERSONALNUMMER)'" -Properties * -SearchBase "DC=intern,DC=berendsohn,DC=com" | Set-ADUser -replace @{bAGCollection="$user.Collection"}}
Else {Get-ADUser -Filter "SamAccountName -eq '$($user.PERSONALNUMMER)'" -Properties * -SearchBase "DC=intern,DC=contoso,DC=com" |Set-ADUser -replace @{bAGCollection=""}}
}
如果你们可以帮助我在这里导入Collection的值而不是导入整个变量$ user,那将是很棒的。
答案 0 :(得分:1)
原因是你使用的字符串:
Set-ADUser -replace @{bAGCollection="$user.Collection"}
将导致解析器展开$user
并将.Collection
视为文字字符串。使用子表达式运算符$()
包含属性引用:
Set-ADUser -replace @{bAGCollection="$($user.Collection)"}