2015-01-15 3 views
0

나는 그런 CSV가가져 오기 - CSV의 ADN 세트는 비어 있지 않은 값의 속성을

EMP_ID DEP_ID LOGIN_AD 
0102 042 jane.doe 
0103   john.doe 
0104 042  
0105 046 john.smith 

나는이 extenssionattribute1 같은 사용자 계정에이 CSV 및 다음 설정 값을 가져옵니다 스크립트를 작성하고 싶습니다 = EMP_ID 및 extenssionattribute2 = DEP_ID. 중요한 것은 스크립트가 빈 값을 건너 뛰어야한다는 것입니다. 아래 예제에서 스크립트는 jane.doe 계정에 설정해야합니다. extenssionattribute1 = 0102, extenssionattribute2 = 042, 그러나 john.doe에서만 extenssionattribute1 = 0103이면 스크립트는 LOGIN_AD없이 행을 건너 뜁니다.

지금은 이런 식으로 뭔가를 시도하고 들어

:

Import-CSV "c:\test.csv" | foreach-object { 
$adLogin = @($_.LOGIN_AD) | where-object{$_}; 
if (Get-AdUser -Identity $adLogin) 
{ 
if ($_.EMP_ID) {Set-admUser $adLogin -Replace @{extensionAttribute1 = $_.EMP_ID} 
if ($_.DEP_ID) {Set-admUser $adLogin -Replace @{extensionAttribute2 = $_.DEP_ID} 
} 

하지만 LOGIN_AD가 비어있을 때 난 여전히 오류가 발생했습니다. 저 좀 도와 주 시겠어요?

답변

0

구분 기호를 공백으로 지정해야하는 경우 LOGIN_AD가 비어 있지 않은 개체를 선택해야하며 마지막으로 ForEach-Object 루프에서 필요한 작업을 수행하고로드하는 것을 잊지 마십시오 속성 :

Import-CSV "c:\test.csv" -Delimiter ' ' | where-object{$_.LOGIN_AD -ne ""}| foreach-object { 
    $adLogin = $_.LOGIN_AD 

    if (Get-AdUser -Identity $adLogin -properties extensionAttribute1,extensionAttribute2) 
    { 
     if ($_.EMP_ID) {Set-admUser $adLogin -Replace @{extensionAttribute1 = $_.EMP_ID} } 
     if ($_.DEP_ID) {Set-admUser $adLogin -Replace @{extensionAttribute2 = $_.DEP_ID} } 
    } 
} 
관련 문제