SQLServer 는 ADSI 를 사용 하여 분포 식 으로 ActiveDorectory 대상 을 조회 합 니 다.
-- Query for a list of User entries in an OU using the SQL query dialect
select convert(varchar(50), [Name]) as FullName,
convert(varchar(50), Title) as Title,
convert(varchar(50), TelephoneNumber) as PhoneNumber
from openquery(ADSI,
'select Name, Title, TelephoneNumber
from ''LDAP://OU=Directors,OU=Atlanta,OU=Intellinet,DC=vizability,DC=intellinet,DC=com''
where objectClass = ''User''')
-- Query for a list of Group entries in an OU using the SQL query dialect
select convert(varchar(50), [Name]) as GroupName,
convert(varchar(50), [Description]) GroupDescription
from openquery(ADSI,
'select Name, Description
from ''LDAP://OU=VizAbility Groups,DC=vizability,DC=intellinet,DC=com''
where objectClass = ''Group''')
참조:http://msdn2.microsoft.com/en-us/library/aa772380.aspx http://www.atlantamdf.com/presentations/AtlantaMDF_111201_examples.txt 설명:그러나 이렇게 기본 적 으로 조회 한 것 은 1000 개의 대상 입 니 다.어떻게 하 죠?방법 1.알파벳 으로 순환 합 니 다.다음 과 같 습 니 다.
CREATE TABLE #tmpADUsers
( employeeId varchar(10) NULL,
SAMAccountName varchar(255) NOT NULL,
email varchar(255) NULL)
GO
/**//* AD is limited to send 1000 records in one batch. In an ADO interface you can define this batch size, not in OPENQUERY.
Because of this limitation, we just loop through the alphabet.
*/
DECLARE @cmdstr varchar(255)
DECLARE @nAsciiValue smallint
DECLARE @sChar char(1)
SELECT @nAsciiValue = 65
WHILE @nAsciiValue < 91
BEGIN
SELECT @sChar= CHAR(@nAsciiValue)
EXEC master..xp_sprintf @cmdstr OUTPUT, 'SELECT employeeId, SAMAccountName, Mail FROM OPENQUERY( ADSI, ''SELECT Mail, SAMAccountName, employeeID FROM ''''LDAP://dc=central,dc=mydomain,dc=int''''WHERE objectCategory = ''''Person'''' AND SAMAccountName = ''''%s*'''''' )', @sChar
INSERT #tmpADUsers
EXEC( @cmdstr )
SELECT @nAsciiValue = @nAsciiValue + 1
END
DROP TABLE #tmpADUsers
이상 의 방법 은 다음 과 같다.http://www.sqlservercentral.com/Forums/Topic231658-54-1.aspx#bm231954내 가 추천 하 는 방법:마이크로소프트 에서 검색 한 것 입 니 다.NTDSUtil 을 통 해 서버 에 maxPageSize 를 제한 하 는 방법 을 수정 합 니 다.
1.
Click Start, and then click Run.
2.
In the Open text box, type ntdsutil, and then press ENTER. To view help at any time, type ? at the command prompt.
Modifying policy settings
1.
At the Ntdsutil.exe command prompt, type LDAP policies, and then press ENTER.
2.
At the LDAP policy command prompt, type Set setting to variable, and then press ENTER. For example, type Set MaxPoolThreads to 8. This setting changes if you add another processor to your server.
3.
You can use the Show Values command to verify your changes.To save the changes, use Commit Changes.
4.
When you finish, type q, and then press ENTER.
5.
To quit Ntdsutil.exe, at the command prompt, type q, and then press ENTER.
자료 출처:
http://support.microsoft.com/kb/315071/en-us
http://support.microsoft.com/?scid=kb%3Bzh-cn%3B299410&x=16&y=10SQL 조회 활동 디 렉 터 리 대상 문법 사용 방법:http://www.microsoft.com/china/technet/community/columns/scripts/sg0505.mspx#EMBAC
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Laradock에서 Laravel + SQLServer 환경 준비본 기사는 공식 문서의 신규 작성용의 프로젝트 순서에 따라, 다음의 디렉토리 구성이 된다고 가정합니다. 기본 설정 APP_CODE_PATH_HOST에 작성하려는 프로젝트 이름을 입력하십시오. SQL Server용 설...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.