2017-12-06 5 views
0

사용자가 사용자 이름을 말할 수있는 방법을 설정하려고하는데 플러그를 꽂으면 컴퓨터 이름이 나에게 반환됩니다.확장 특성 Unresolvable, Powershell

// 가져 오기 사용자 이름

$username = Read-Host -prompt 'Username' 

//에 distinguishedName를 취득하고

$usernameDN = Get-ADUser $username -properties * | SELECT DistinguishedName 

// 컴퓨터 이름을 가져
가 //이 하나가 매번

Get-ADComputer -Filter {ManagedBy -eq $usernameDN} -properties * | SELECT CN,ManagedBy 
실패 저장

// 오류가 발생했습니다 ... 거의 마치 strin이어야합니다. g

Get-ADComputer : 잘못된 값 : 확장 특성에 대해 ''이 (가) 지정되었습니다. 'ManagedBy'. 줄에 : 1 문자 : 1 + Get-ADComputer -Filter {ManagedBy -eq $ usernamedn} -properties * | SE ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidArgument : (:), ArgumentException이 [-ADComputer 받기] + FullyQualifiedErrorId : ActiveDirectoryCmdlet : System.ArgumentException, Microsoft.ActiveDirectory. Management.Comm ands.GetADComputer는

당신은 문자열

PS C:\WINDOWS\system32> Get-ADComputer -Filter {ManagedBy -eq '$usernamedn'} -properties * | SELECT CN,ManagedBy 

// 오류

로 넣어 // 그래서

Get-ADComputer : 확장 된 특성에 제공된 ID 정보 : 'ManagedBy'를 확인할 수 없습니다. 이유 : ' ID가있는 개체를 찾을 수 없습니다 :'DC = ****, DC = ***** '.'에서 '$ usernamedn'. 줄에 : 1 문자 : 1 + Get-ADComputer -Filter {ManagedBy -eq '$ usernamedn'} - 속성 * | ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~ ~ ~ ~ ~ ~ ~ ~CategoryInfo : InvalidData : 당신이 문자에 distinguishedName으로 변수를 대체 할 경우 , Microsoft.ActiveDirectory.Management.Commands.GetADComputer

// 그러나 ... 그것은

PS C:\WINDOWS\system32> Get-ADComputer -Filter {ManagedBy -eq 'CN=*******\, ***** *.,OU=********,OU=*****,OU=******,DC=*****,DC=******'} -properties * | SELECT CN,ManagedBy 

가 //

결과 작동합니다
CN  ManagedBy 
--  --------- 
********* CN=**\, ** *.,OU=***,OU=***,OU=***,DC=***,DC=** 
********* CN=**\, ** *.,OU=***,OU=***,OU=***,DC=***,DC=** 

그래서 내 문제는 필터가 문자열이어야한다고 요구하고 있지만 변수를 그런 식으로 읽으려면 올바른 이스케이프를 이해할 수 없습니다.

은 나뿐만 아니라 서식 문자열을하려고하지만 난 아직 완전히

감사합니다,

답변

0

내가 -LDAPFilter 대신 -Filter의 사용 및 LDAP 필터 문자열을 사용하는 것이 좋습니다 것을 이해하지 않습니다

Get-ADUser -LDAPFilter "(managedBy=$usernameDN)" 

LDAP search filter syntax은 PowerShell에서 -Filter을 "변환"해야하기 때문에 가치가 있습니다.

+0

오류를 반환하지 않지만 빈 결과도 반환합니다. 내가 변수의 값을 하드 코딩 할 수 있고 작동 할 수 있기 때문에 나는 그렇지 않다는 것을 안다. –

+0

내 문제는 변수를 잘못 저장하는 것이 었습니다. 리터럴 값만 잡으려고 -expand를 사용하는 대신 전체 값을 저장했습니다. https://stackoverflow.com/questions/10072911/store-a-cmdlets-result-value-in-a-variable-in-powershell –

관련 문제