你好我運行下面的代碼更新AD用戶信息CSV導入PowerShell的 - 公元
import-module activedirectory
$Users=Import-CSV C:\UserFeed.csv
foreach($_ in $Users)
{
if ($_."FAX" -ne $null){
$fax = $_."FAX"
}
else {
$fax = $null
}
if ($_."MOBILETELEPHONE" -ne $null){
$mobile = $_."MOBILETELEPHONE"
}
else {
$mobile = $null
}
if ($_."COUNTRY" -ne $null){
$country = $_."COUNTRY"
}
else {
$country = $null
}
$Mgr = Get-ADUser -Filter "SamAccountName -like '$($_."REPORTSTOEMAIL")'" |
Select -ExpandProperty DistinguishedName
Get-ADUser -filter "EmailAddress -like '$($_.EMAILPRIMARY)'" |
Set-ADUser -Replace @{physicalDeliveryOfficeName=($_."ACTUALOFFICE");Title=
($_."PERSONALJOBTITLE");department=($_."DeptName");company=
($_."COMPANYNAME");facsimileTelephoneNumber="$fax";StreetAddress=
($_."STREET");l=($_."TOWNCITY");postalCode=($_."POSTZIPCODE");Co=$country;C=
($_."COUNTRY2");CountryCode=($_."COUNTRY3");givenName=($_."KNOWNAS");sn=
($_."LASTNAME");telephoneNumber=($_."WORKTELEPHONE");mobile="$mobile
";manager="$Mgr"}
}
的問題是在CSV其中一個用戶說沒有傳真號碼,該字段爲空,而不是在傳真中沒有任何東西放置空間特徵。我如何得到它不設置任何該領域。
示例,請參閱圖像http://s22.postimg.org/nsf66ngc1/mobile.jpg
下面是CSV樣子
TITLE,KNOWNAS,姓氏,姓名縮寫,分裂,DEPARTMENTCODE,COMPANYREFNO,WORKTELEPHO NE,MOBILETELEPHONE,WORKPHONESHORTCODE,EMAILPRIMARY,傳真,STREET ,TOWNCITY,POSTZIPCOD E,COUNTRY,COMPANYNAME,REPORTSTOEMAIL,ACTUALOFFICE,DeptName,Office,COUNTRY2,COUNTR Y3 Peter,Smith,P,Executive,IT,PL,+ 44(0)1234 567 890 ,,, user1 @ testdomain.co.uk,+ 44(0)1234 567 890,Road,London,QWER,英國,COMPANY,j.smith,OfficeName,Computers,City,GB,826
在此先感謝
我試過代碼修正案,但當AD在AD領域空虛時,我仍然會得到奇怪的角色。這個問題似乎與$傳真= $空。對於爲什麼它把這個怪異的字符 - – user3770745
我強烈建議對'foreach($ _ $用戶)'語法。 '$ _'是一個保留變量。如果你想使用它,我推薦使用ForEach-Object cmdlet('$ Users | ForEach-Object {[...]}')而不是foreach語句。 –