1

이 질문은 DC 서버에서 실행되고 있거나 DC에 원격으로 액세스하고있는 서비스의 컨텍스트에 있으므로 서비스 Active Directory에 액세스 할 수 있지만 서비스에는 Active Directory 서버에 대한 인식, 서버 수, 서버 주소 등이 포함됩니다. Active Directory 설정에는 연합 서버 그룹이 포함될 수 있습니다. 그래서 Active Directory/Powershell - 페더레이션 클러스터의 서버가 다운되었는지 확인하는 방법

는 예시 적으로 문제를 설명하기 위해 -

내가, 아주 간단한 AD 쿼리를 실행하려고 통해하다고 말하고 파워 쉘 V2 (또는 디렉터리 서비스를 사용할 수 있습니다)에 ADUsers 모두를 얻을 수 :

$ 사용자 =은 Get-ADUser

시애틀 이제

의이 예를 들어 회사에 Contoso는, (자신의 뉴욕 사무소) 뉴욕의 AD 서버가 있다고 가정하자, 하나를 (자신의 시애틀 사무실). 또한이 서비스는 NY 데이터 센터의 서버가 될 DC를 가리 킵니다. 단순성의 목적에 따라서

, 그냥 $ 사용자의 표시 이름의 속성이 사용자 개체 반환 가정 해 봅시다 :

은 이제 시애틀 서버가 다운 있다고 가정하자

단 점프 짐 윌슨 그래서 나는 다시 쿼리를 실행하고 바로 얻을 :

단 점프

를 내가 이해에서 - AD는 시애틀 서버가 down..it 단지를 반환합니다 것을 나타내는 오류를 반환하지 않습니다 사용자가 찾을 수 있습니다 ..

삭제 된 개체를 검색 할 수 있으므로 모든 사용자 목록을 저장하면 사용자가 삭제되었음을 잠재적으로 확인할 수 있습니다. 특히 오버 헤드가 조금 있습니다. 나는 단순한 사용자 목록 이상에 관심이있다

페더 레이 티드 클러스터에서 하나 이상의 AD 서버를 감지하는 방법이 내 쿼리를 실행하기 전에 다운 되었습니까?

+0

1. 'AD 서버'의 '페더레이션 클러스터'- 명확하게 할 수 있습니까? AD는 도메인과 포리스트에서 제공됩니다. 도메인과 포리스트간에 트러스트를 가질 수 있지만 일반적으로 '연합'이라는 단어는 SAML 또는 WS-Federation 시나리오에 적용됩니다. 2. 앱은 DC Locator 메커니즘 때문에 DC 이름을 알도록 구성 할 필요가 없습니다. 3. Active Directory는 수렴으로 느슨한 일관성을 제공하는 멀티 마스터 복제를 사용하여 도메인 내의 모든 사용자가 결국 모든 DC에 있어야 함을 의미합니다. 이 모든 것을 감안할 때 귀하의 질문은 나에게 많은 의미가 없습니다. 그것을 명확히 할 수 있습니까? – ssg31415926

+0

WS-Federation 시나리오에 대해 이야기하고 있었지만 이것은 가능한 시나리오를 설명하기위한 것입니다.이 쿼리를 실행하는 프로그램은 도메인과 포리스트 간의 트러스트를 완전히 무시하는 Active Directory 도메인 컨트롤러에서 실행되는 서비스입니다. 이 서비스는 디렉터리 서비스를 사용하여 모든 포리스트와 도메인에서 볼 수있는 권한이있는 한 모든 사용자 및 그룹 정보를 얻습니다. 서비스가 필요로하는 것에 접근 할 수 있다고 가정 할 수 있습니다. 그러나 뭔가 잘못되었을 때를 식별하는 방법이 명확하지 않습니다. – Jordan

+0

... AD 버전 중 일부는 오래되었을 수도 있지만 시도하고있는 예입니다 설명하기 위해 실제 예가 나와 있습니다. 기본적으로 유효한 점이 있다고 확신하지만 복제에 의존 할 수없는 몇 가지 시나리오 (역사적 경험을 토대로 함)가있을 것이며 일부 데이터는 특정 서버에있을 수 있다는 사실에 직면해야합니다. 때때로 접근하기 어려울 수 있습니다. 그게 말이 안되면 그때 나에게 말한 사람에게 돌아 가야 할 것입니다 ... – Jordan

답변

1

다음 중 하나를 사용하기 전에 this을 읽고 싶을 수도 있습니다. S.DS와 S.DS.AD는 추상적 인 일을 많이하지만 거기에는 많은 유용한 정보가 있으며 요구 사항을 명확히하는 데 도움이 될 수 있습니다.

DC가 작동하지 않는 것을 알고 있지만 System.DirectoryServices.ActiveDirectory 네임 스페이스에는 도메인 토폴로지를 결정하는 데 필요한 클래스가 들어 있습니다. 예를 들어, Forest 클래스는 Domain 개체 (및 Site 및 기타 많은 유용한 속성)의 컬렉션을 반환합니다. DomainDomainController 개체 (및 Children 및 상위 도메인 및 기타 많은 소품 및 방법) 컬렉션에 대한 액세스 권한을 부여합니다.

도메인 전체를 반복하여 모든 DC를 가져온 다음 DC를 반복하고 ping을 시도 할 수 있습니다. 물론 보안이 잘 유지되고 세그먼트 화 된 네트워크에서는 작동하지 않을 수 있습니다. 모든 시나리오에서 DC에서 작동해야하는 것처럼 S.DS.DirectoryEntry를 사용하여 각 DC에 연결을 시도하는 것이 좋습니다. 물론 네트워크 운영자가 과부하 상태 인 경우에도 작동하지 않을 수 있습니다.

0

이 난이 프로그래머가 특정 표시되지 않습니다 www.serverfault.com

의 아름다운 사람들을위한 작업 같은 소리? 네트워크 문제 해결 같은 것 같습니까? 어쨌든 ...

IMO는 페더레이션 서버가있는 위치에 따라 다릅니다. 그들은 구름 속에 있습니까? 가상인가요? 그렇다면 서버 플랫폼에 대한 간단한 API 호출을 통해 다운되었을 때이를 쉽게 감지 할 수 있습니다.

또는이 웹 사이트 here의 예와 같이, 서버 핑 메커니즘을 구현을 시도 할 수 있습니다 :

$servers = Get-Content 'servers.txt' 
ForEach-Object ($server in $servers) { 
    # Ping the machine to see if it's on the network 
    $results = Get-WMIObject -query "select StatusCode from 
Win32_PingStatus where Address = '$server'" 
    $responds = $false 
    ForEach-Object ($result in $results) { 
     # If the machine responds break out of the result loop and indicate success 
     if ($result.statuscode -eq 0) { 
     $responds = $true 
     break 
     } 
    } 
     If ($responds) { 
     # Gather info from the server because it responds 
     Write-Output "$server responds" 
    } else { 
     # Let the user know we couldn't connect to the server 
     Write-Output "$server does not respond" 
    } 
} 

은 **이 서버는 "ping 할"가정합니다.

당신은 아마도 MS 테크넷은 Get-ADComputer cmdlet을 컴퓨터를 얻을 또는 여러 컴퓨터를 검색하기 위해 검색을 수행 here.

에서 발견 AD-GetComputer cmdlet을의 사용을 만들 수 있습니다.

Identity 매개 변수는 Active Directory 컴퓨터를 으로 검색하도록 지정합니다. 컴퓨터의 고유 이름 (DN), GUID, 보안 식별자 (SID) 또는 보안 계정 관리자 (SAM) 계정 이름으로 컴퓨터를 식별 할 수 있습니다. 매개 변수를 $와 같은 컴퓨터 개체 변수로 설정하거나 컴퓨터 개체 을 파이프 라인을 통해 Identity 매개 변수로 전달할 수도 있습니다.

둘 이상의 컴퓨터를 검색하고 검색하려면 필터 또는 LDAPFilter 매개 변수를 사용하십시오. Filter 매개 변수는 PowerShell 표현 언어를 사용하여 Active Directory에 대한 쿼리 문자열을 작성합니다. PowerShell Expression Language 구문은 Filter 매개 변수에서받은 값 형식에 대한 풍부한 형식 변환 을 지원합니다. 필터 매개 변수 구문에 대한 자세한 내용은 about_ActiveDirectory_Filter를 참조하십시오. 기존 LDAP 쿼리 문자열이있는 경우 LDAPFilter 매개 변수를 사용할 수 있습니다.

이 cmdlet은 컴퓨터 개체 속성의 기본 집합을 검색합니다. 추가 속성을 검색하려면 Properties 매개 변수를 사용하십시오. 컴퓨터의 속성을 확인하는 방법에 대한 자세한 내용은 Properties 매개 변수 설명을 참조하십시오.

+0

"이 서비스는 Active Directory 서버에 대한 인식이 없으며 서버 수, 서버 주소 등 ..." – Jordan

+0

알 수없는 경우 어떻게 AD 쿼리를 실행할 수 있습니까? AD 서버가 있습니까? 이 질문은 너무 모호하고 개방적이어서 끝내지 못할 것입니다. – D3vtr0n

+0

"이 질문은 DC 서버에서 실행되는 (또는 DC에 원격으로 액세스하는) 서비스의 컨텍스트에 있습니다"라는 경고가 있습니다 ... "Get-ADUser"와 같은 powershell 쿼리를 실행하면 페더레이션 된 서버 그룹 내의 다른 서버에있는 사용자를 포함하여 모든 사용자를 확보하려고합니다. – Jordan

관련 문제