Powershell v3.0 파이프 문제
다음 명령에 문제가 있습니다.
gc .\domains.txt | Get-ADDomain
이름에서 알 수 있듯이 도메인입니다.txt에는 쿼리할 Active Directory 목록이 포함되어 있습니다(모든 도메인이 동일한 포리스트에 있음).
윈도우즈 8 시스템에서 실행하면 모든 것이 정상적으로 작동하고 예상 결과가 나오는 대신 WMF 3.0이 설치된 윈도우즈 2008 R2 SP1 멤버 서버(DC가 아님)에서 목록의 첫 번째 도메인과 다른 도메인에서만 결과가 나옵니다.
Get-ADDomain : A referral was returned from the server
목록의 도메인을 다음과 같이 쿼리하는 경우:
Get-ADDomain <Domain name here>
잘 작동합니다.
내 워크스테이션
Microsoft Windows 8 Enterprise(6.2.9200) x64
PS D:\Tools\Powershell> $PSVersionTable
Name Value
---- -----
PSVersion 3.0
WSManStackVersion 3.0
SerializationVersion 1.1.0.1
CLRVersion 4.0.30319.18010
BuildVersion 6.2.9200.16384
PSCompatibleVersions {1.0, 2.0, 3.0}
PSRemotingProtocolVersion 2.2
서버
마이크로소프트 윈도우즈 서버 2008 R2 표준 SP1(6.1.7601) x64
PS C:\Tools\Powershell> $PSVersionTable
Name Value
---- -----
WSManStackVersion 3.0
PSCompatibleVersions {1.0, 2.0, 3.0}
SerializationVersion 1.1.0.1
BuildVersion 6.2.9200.16398
PSVersion 3.0
CLRVersion 4.0.30319.269
PSRemotingProtocolVersion 2.2
갱신하다
서버에서 실행되는 경우:
gc .\domains.txt | %{ Get-ADDomain $_ }
잘 작동합니다.
추적하다
trace-command -Name ParameterBinding { "DOMAIN_1","DOMAIN_2" | Get-ADDomain } -PSHost
서버: http://pastebin.com/sRVJHaCU
워크스테이션: http://pastebin.com/kj3JV6nV
잘 부탁드립니다.
도움이 될 만한 기사를 찾았습니다.
http://technet.microsoft.com/en-us/library/ee617224.aspx
스크립트 모양에서 텍스트 파일을 사용하여 서버를 제공합니다.PowerShell 스크립트를 실행 중인 윈도우즈 2008 서버가 동일한 도메인에 있지 않거나 로그인한 사용자가 다른 서버가 멤버인 도메인에 액세스할 수 없는 경우 문제가 발생할 수 있습니까?
위 기사의 토막글:
-Server 매개 변수가 지정되었지만 Credential 매개 변수가 지정되지 않은 경우: --도메인이 지정된 서버의 도메인으로 설정되고 cmdlet이 서버가 LocalComputer 또는 LoggedOnUser의 도메인에 있는지 확인합니다.그런 다음 현재 로그온한 사용자의 자격 증명을 사용하여 도메인을 가져옵니다.서버가 LocalComputer 또는 LoggedOnUser의 도메인에 없을 때 오류가 반환됩니다.
-Identity, -AuthType 및 -Credential과 같은 Get-ADDomain 명령줄에 대한 추가 매개 변수를 추가할 수 있습니다.
Get-ADDomain [-Identity] [-AuthType { | }] [-Credential] [-Server]
cmdlet 'gc.\text를 실행하려고 했습니다.txt | 내가 가지고 있는 가상 서버 2008 R2 상자에서 'Get-ADDomain'.다음 형식으로 텍스트 파일을 작성했습니다.
Domain1
Domain2
Domain3
한 가지 확실한 것은 각 도메인이 텍스트 파일의 자체 행에 있다는 것입니다.STDOUT를 다음에 연결했을 때 하나의 구문이 작동한 이유를 이해할 수 있습니다.
%{ Get-ADDomain $_}
텍스트 파일에 포함된 모든 정보를 반복하고 cmdlet이 한 번에 하나의 값에서만 작동하기 때문입니다.안타깝게도 Win 8 데스크톱에 RSAT 패키지가 없어서 데스크톱에서 테스트할 수 없습니다.이것이 조금이나마 도움이 되길 바랍니다.
언급URL : https://stackoverflow.com/questions/13192447/powershell-v3-0-pipe-issue
'programing' 카테고리의 다른 글
MariaDB JDBC 경고를 억제하려면 어떻게 해야 합니까? (0) | 2023.07.26 |
---|---|
명령줄에 Android SDK 빌드 도구를 설치하는 방법은 무엇입니까? (0) | 2023.07.26 |
Spring 응용 프로그램의 유틸리티 클래스 - 정적 방법을 사용해야 합니까? (0) | 2023.07.26 |
봄에 현재 HttpServletRequest를 가져오는 정적인 방법이 있습니까? (0) | 2023.07.26 |
도커가 도커 파일을 빌드할 때 실행 npm 설치 명령을 캐시하는 방법 (0) | 2023.07.26 |