Active Directory

出自 ProgWiki
前往: 導覽搜尋

Active Directory,參照:『維基百科~Active_Directory

Path前置關鍵字種類

Service provider Path identifier
Windows 2000 or Windows XP WinNT://path
Lightweight Directory Access Protocol (LDAP) LDAP://path
Novell NetWare Directory Service NDS://path
Novell Netware 3.x NWCOMPAT://path
Internet Information Services IIS://path

技術文件

COM
File:%SystemRoot%\System32\Activeds.dll
.Net Framework
File:%SystemRoot%\Microsoft.NET\Framework\v1.1.4322\System.DirectoryServices.dll
File:%SystemRoot%\Microsoft.NET\Framework\v2.0.50727\System.DirectoryServices.dll
相關

應用

ASP.NET的Login機制用

小朱的書《ASP.NET問題解決》

與ASP.NET的Login機制整合

FAQ

防火牆要開的Port

在MS-SQL 2005從AD中Select

  • 設定Link DB
USE [master]
GO
EXEC master.dbo.sp_addlinkedserver @server = N'ADSI'
, @srvproduct=N'Active Directory Services 2.5'
, @provider=N'ADSDSOObject'
, @datasrc=N'adsdatasource'
GO
  • 變更MS-SQL的組態設定(每一行需個別執行)
--預設情況下,SQL Server不允許 OpenQuery,所以用 show advanced option 打開系統預儲程式進階選項
--並配合下面的 Ad Hoc Distributed Queries 選項  
sp_configure 'show advanced options', 1  
reconfigure with override  
 
--再使用 Ad Hoc Distributed Queries 打開特定分散式查詢選項  
sp_configure 'Ad Hoc Distributed Queries', 1  
reconfigure
  • Select範例
  • ADsPath
SELECT *
FROM OPENQUERY( ADSI, 
'SELECT * FROM ''LDAP://lab_evta.lab.corp''
')
  • 目前已知的user欄位
SELECT *
FROM OPENQUERY( ADSI, 
'select AdsPath,objectCategory,objectSid,homeDirectory,userAccountControl
,SAMAccountName,Name,userPrincipalName,mail,givenName,sn,cn
,telephoneNumber,displayName,LockOutTime
 from ''LDAP://lab_evta.lab.corp''
 WHERE objectCategory=''user''
')
  • 群組名稱
SELECT * FROM OPENQUERY( ADSI,
'select AdsPath,objectCategory,objectSid,cn
 from ''LDAP://lab_evta.lab.corp''
 WHERE objectCategory=''group''
')
 
--或
 
SELECT * FROM OPENQUERY(ADSI,
  '<LDAP://lab_evta.lab.corp>;
  (objectClass=group);cn,objectSid,objectCategory,AdsPath;subtree')
  • AD內電腦
SELECT *
FROM OPENQUERY( ADSI, 
'select dnsHostName,cn,ADsPath
 from ''LDAP://lab_evta.lab.corp''
 where objectCategory=''computer''
')
  • 如果在Select時出現錯誤訊息7399與7321,需在Link Server的登入帳號加上AD的主機名稱,不然無法正常登入AD
    • 例如AD的主機名為lab
EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'ADSI',@useself=N'False',
@locallogin=NULL,@rmtuser=N'lab\administrator',@rmtpassword='########'

Active Directory 升級與移轉

用磁碟映像檔部署的電腦無法加入AD網域

備份、還原Active Directory

網域所有使用者下次登入時變更密碼

如何限制使用者不能以AD帳號存取網域中分享的資料夾