2014-10-08 3 views
0

안녕하세요 "쓰기 호스트"를 작성했지만 텍스트 파일로 정보를 내보낼 때 부분적으로 작동하는 스크립트가 있습니다. 사용자 ID 설명, 이름, 표시 이름 및 관리자를 찾고 싶습니다. 왜 작동하지 않는지 이해해주세요.Active Directory 사용자 정보 꺼내기

Import-Module ActiveDirectory 

$document = "C:\Temp\ADupdate yyyy.txt" 

Clear-Content $document 

<# 
-ne = not equal CN=xxpc37254,OU=Standard,OU=Users,OU=Corporate,DC=we,DC=dirsrv 
-eq = equal 
-lt = less than 
-gt = greater than 
-ge = greater than or qual to 
-le = less than or equal to 
#> 

$Header = ` 
"User ID" + "|" + ` 
"Display Name" + "|" + ` 
Description" + "|" + ` 
"ID Owner" + "|" + ` 
"ID Owner Name" 


#Write out the header 
$Header | Out-File $document -Append 

#$Users = Get-ADUser -Filter {name -like "xxpc*" -or name -like "xxmd*"} - SearchBase "OU=Corporate,DC=we,DC=dirsrv,DC=com" -Properties name, displayname, description, manager 
$Users = Get-ADUser -filter {name -like "xxpc*" -or name -like "xxmd*"} -Properties name, displayname, description, manager 


foreach ($User in $Users) 
{ 
#manager missing 
if ($Users.Manager -eq $null) { 
    $owner = "MISSING" 
    $ownerid = "MISSING" 
    $ownername = "MISSING" 

} else { 
#grab the manager's name, surname, and department 
    $owner = Get-ADUser ($userid.Manager) -Properties GivenName, Surname, Department 
    $ownerid = $owner.Name 
    $ownername = $owner.Surname + "." + $owner.GivenName 
} 

$listing = ` 
$Users.Name + "|" + ` 
$Users.DisplayName + "|" + ` 
$Users.Description + "|" + ` 
$ownerid + "|" + ` 
$ownername 

$listing | Out-File $document -Append 
+0

왜 작동하지 않습니까? – kkuilla

+0

그래서 {이름과 같은 "xxpc *"또는 이름과 비슷한 "xxmd *"}가 'xxpc *'및 'xxmb *'로 변경되었으며 쓰기 호스트로 작업했습니다. 여전히 텍스트 파일로 출력되지 않습니다 :/ – narue1992

+0

텍스트 파일에만 헤더가 표시됩니다 – narue1992

답변

1

확인. foreach 내부의 if 문이 잘못되어 아마도 작동하지 않는 이유 일 수 있습니다. foreach 내에서 $ user를 사용해야하며 여기서 사용하는 $ 사용자는 사용하지 않아야합니다.

즉, 사용자 지정 개체 만들기에 대해 읽고 원하는 데이터를 가져와 사용자 지정 개체를 만들어 파이프 라인에 기록해야합니다. 그렇게하면 출력을 텍스트 파일, CSV 파일, XML 또는 화면에 쓸지 등 다양한 방식으로 사용할 수 있습니다.

+0

고맙습니다. 모든 $ users.manager를 $ user로 변경했습니다. – narue1992

+0

그리고 $ 목록을 $ User로 모두 변경했습니다. ... 이제 작동합니다. 감사합니다. ...이 질문을 "답변 됨"대답 방법 – narue1992

+0

@AlyssaCooke 확인 표시가 올바른 대답 옆에있는 위/아래 화살표 아래에 있는지 확인해야합니다. – Matt