国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

Delphi深度探索:活動目錄開發二

系統 Windows
ADSI 可以使 Windows NT 管理員的工作變得輕松,而ADSI即活動目錄服務接口是想要使用活動目錄服務的必要途徑,本文就是介紹了對活動目錄的使用。

繼上文Delphi深度探索:活動目錄開發一,本文接著介紹活動目錄的開發。

創建或刪除計算機用戶

通過 WinNT provider ,可以創建或刪除域中任意一臺計算機的用戶,要想創建一個域中指定的計算機的用戶,需要綁定到指定的計算機上。一旦要綁定到計算機對應的 ADSI 容器對象,就需要調用 Create 方法。容器對象的 Create 方法需要兩個參數,一個是要創建的 ADSI 對象的類別,一個是要用來描述 ADSI 對象的名字。調用 Create 方法后會返回新的 ADSI 對象的引用參考,下面代碼演示了如何創建一個用戶:

var

ComputerObj: IADsContainer;

TempUserObj: IUnknown;

UserObj: IADsUser;

PDCName: WideString;

NewUserName: WideString;

AdsPath: WideString;

begin

// 獲取用戶信息

PDCName := InputBox(' 創建新用戶 ', ' 請輸入域名 : ', '');

NewUserName := InputBox(' 創建新用戶 ', ' 請輸入用戶名 : ', '');

// 指定域名路徑

AdsPath := 'WinNT://' + PDCName + ',computer';

// 創建計算機對象

OleCheck(AdsGetObject(PWideChar(AdsPath),

IID_IADsContainer, ComputerObj));

// 創建新用戶

TempUserObj := ComputerObj.Create('user', NewUserName);

UserObj := TempUserObj as IADsUser;

// 設定目錄信息

UserObj.SetInfo;

// 刷新列表

actOpenWinNT.Execute;

刪除用戶也非常類似 , 只不過不需要創建任何的用戶對象 , 可直接調用容器對象 IADsContainer 接口的 Delete 方法 , Delete 方法需要兩個參數 , 第一個是要刪除的對象類別 , 第二個是對象名稱 , 代碼示意如下 :

var

ComputerObj: IADsContainer;

PDCName: WideString;

UserName: WideString;

AdsPath: WideString;

begin

// 獲取用戶信息

PDCName := InputBox(' 刪除用戶 ', ' 請輸入域名 ', '');

UserName := InputBox(' 刪除用戶 ', ' 請輸入要刪除的用戶名 : ', '');

if MessageDlg(' 你是否確信要刪除用戶 : ' +UserName + ' ?', mtConfirmation, [mbYes, mbNo], 0) = mrYes then

begin

// 指定域名路徑

AdsPath := 'WinNT://' + PDCName + ',computer';

// 創建計算機對象

OleCheck(AdsGetObject(PWideChar(AdsPath),

IID_IADsContainer, ComputerObj));

// 刪除用戶

ComputerObj.Delete('user', UserName);

// 刷新列表

actOpenWinNT.Execute;

end;

end

查看組中的用戶

通過 WinNT provider ,我們還可以執行各種用戶組的維護任務,比如從組中添加或刪除用戶。下面就來演示如何枚舉組中的用戶并察看用戶相關信息。首先讓下面代碼獲得一個 IADsGroup 對象,然后使用 IADsMember 對象來枚舉 IADsGroup 對象中所有用戶對象,列出不同組中的所有用戶:

var

GroupObj: IADsGroup;

Members: IADsMembers;

AdsPath: WideString;

Enum: IEnumVariant;

TempUserObj: OLEVariant;

UserObj: IADsUser;

TempListObj: TListItem;

Value: LongWord;

begin

// 清空列表

GroupListView.Items.Clear;

// 指定域名路徑

AdsPath := 'WinNT://' + MainFrm.ADSIDomainName.Text +'/' + GroupName;

// 創建組對象

OLECheck(AdsGetObject(PWideChar(AdsPath), IID_IADsGroup,

GroupObj));

// 獲得 members 對象

Members := GroupObj.Members;

// 獲取枚舉對象

Enum := (Members._NewEnum) as IEnumVariant;

// 使用枚舉對象進行查找

while (Enum.Next(1, TempUserObj, Value) = S_OK) do

try

// 保存臨時對象

UserObj := IUnknown(TempUserObj) as IADsUser;

// 創建新的列表項

TempListObj := GroupListView.Items.Add;

// 指定屬性

TempListObj.Caption := UserObj.Name;

except

on E:Exception do

Delphi深度探索:活動目錄開發二

圖 1.113
 

end;

IADsGroup 接口是用來管理 NT 組信息的接口,而它的 Members 屬性是一個管理組中用戶或 ADSI 對象列表的接口。最后使用 IADsUser 接口變量 UserObj 來獲得 NT 組中的用戶信息。

程序運行結果如圖 1.113 所示。

控制 NT 服務

WinNT provider 還可以用來控制 NT 服務、服務器和工作站 , 下面的代碼遍歷 NT 服務 , 并根據相應的計算機添加服務到相應列表中 :

var

UnknownObject: IUnknown;

Computer: IADsContainer;

ComputerPath: WideString;

Enum: IEnumVariant;

AdsTempObj: OLEVariant;

AdsObj: IADs;

Value: LongWord;

begin

if Item.Caption = '' then

Exit;

// 指定域名路徑

ComputerPath := 'WinNT://' + ADSIDomainName.Text +'/' + Item.Caption;

// 創建計算機對象

OleCheck(ADsGetObject(PWideChar(ComputerPath),

IID_IADsComputer, UnknownObject));

// 獲得計算機容器接口

Computer := UnknownObject as IADsContainer;

// 清空服務視圖列表

ServiceListView.Items.Clear;

// 獲取枚舉對象用于遍歷

Enum := (Computer._NewEnum) as IEnumVariant;

// 用枚舉對象進行查找

while (Enum.Next(1, ADsTempObj, Value) = S_OK) do begin

// 保存臨時對象

ADsObj := IUnknown(ADsTempObj) as IADs;

// 如果對象為服務的話 ,添加到視圖中

if AdsObj.Class_ = 'Service' then

AddServiceToList(ADsObj);

end;

end.

要想獲得 NT 服務的信息,需要綁定服務對應的 ADSI 對象, ADSI 提供了 IADsService 對象來維護 NT 服務的信息,下面代碼演示了如何綁定 NT 服務,并顯示服務名:

var

ServiceObj: IADsService;

AdsPath: WideString;

begin

// 指定域名路徑

AdsPath := 'WinNT://' + ComputerName + '/' + ServiceName;

// 獲得服務對象

OLECheck(ADsGetObject(PWideChar(AdsPath),

IID_IADsService, ServiceObj));

// 獲得服務名

lblServiceName.Caption := ' 服務名 : ' + ServiceName;

lblDisplayName.Caption := ' 服務顯示名稱 : ' +

ServiceObj.Get_DisplayName;

要想啟動或停止 NT 服務 , 可以使用 IADsServiceOperations ADSI 對象。同上面一樣需要先綁定到 NT 服務上去,而同前面不一樣的是,這回不是獲得 IADsService ADSI 對象,而是獲得 IADsServiceOperations ADSI 對象:

// 創建計算機對象

OleCheck(AdsGetObject(PWideChar(AdsPath),

IID_IADsServiceOperations, Result));

然后使用 GetServiceObj 函數來綁定到 IADsServiceOperations ADSI 對象上 , 并返回 IADsServiceOperations 接口 :

// 獲得服務對象

ServiceObj := GetServiceObj;

啟動服務需要調用 IADsServiceOperations 接口的 Start 方法:

Delphi深度探索:活動目錄開發二

圖 1.114
 

// 啟動服務 , Get_Status = 1 表明服務正處于停止狀態

if ServiceObj.Get_Status = 1 then

ServiceObj.Start;

要停止服務需要調用 IADsServiceOperations ADSI 對象的 Stop 方法 , 運行結果如圖 1.114 所示。

結論

毫無疑問,通過 ADSI 目錄服務,調用 WinNT provider 可以更容易實現 NT 的管理功能,但它也是一個龐大的系統,光 Windows 的活動目錄編程參考就有上千頁,說明我們必須花費大量時間才能真正掌握它的精髓。

希望本系列Delphi深度探索—活動目錄開發的內容能夠對讀者有所幫助。

【編輯推薦】

  1. 活動目錄用戶如何管理?
  2. 活動目錄中的對象如何操作?
  3. 活動目錄災難管理員應該如何應對
  4. 讓活動目錄在復制過程中更好地運行
  5. 用ADSI實現自動化的活動目錄操作方法
責任編輯:韓亞珊 來源: 中科軟件園
相關推薦

2011-07-19 16:28:55

活動目錄ADSI

2010-11-01 05:54:41

2010-04-15 11:39:22

微軟活動目錄基礎

2011-08-08 09:17:32

活動目錄ActiveDirec

2011-08-18 09:46:40

活動目錄驗證原理

2024-07-20 00:00:00

2017-10-25 11:17:18

數據

2011-07-12 16:22:31

活動目錄

2010-04-15 11:47:37

微軟活動目錄邏輯結構

2025-08-21 08:50:00

2011-07-15 10:20:34

活動目錄

2010-04-25 23:13:26

活動目錄物理結構

2011-01-05 10:30:42

活動目錄Powershell

2011-06-27 09:42:46

2010-10-22 11:01:42

Windows Pow

2012-03-20 14:17:33

活動目錄

2011-07-15 13:35:52

Windows 200

2010-08-30 15:57:25

2009-07-16 09:48:29

數據庫連接

2011-07-27 10:30:21

活動目錄
點贊
收藏

51CTO技術棧公眾號

亚洲一区黄色| 亚洲精品国产精品自产a区红杏吧| 欧美重口乱码一区二区| 亚洲久久久久| 全球成人中文在线| 国产精品亚洲四区在线观看| 精品国产三级a在线观看| 国产精品久久久久一区二区国产| 亚洲色图欧洲色图| 成人拍拍拍免费视频网站| 久久奇米777| 欧美日韩黄色一级片| 国产精品乡下勾搭老头1| 亚洲欧洲精品一区二区三区波多野1战4| 欧美影院一区| av一区二区三区免费| 五月婷婷六月综合| 91在线观看免费| 亚洲精品国产成人影院| 91成人免费在线观看| 国产精品x453.com| 成人夜晚看av| 欧美在线视屏| 久久久久久久久一区二区| 伊人久久亚洲美女图片| 精品福利影视| 免费的国产精品| 欧美另类videosbestsex日本| 国产精品1024| 激情视频综合网| 亚洲欧美自拍偷拍| 瑜伽美女视频| 日韩欧美一区二区三区| 91最新在线| 欧美一卡二卡三卡四卡| 日韩激情电影| 久久精品99无色码中文字幕| 日韩专区视频网站| 国产69精品久久久久9| 米奇777超碰欧美日韩亚洲| 国产精品入口夜色视频大尺度| 91精品国产乱码久久久久久| 精品无码久久久久国产| 国产精品一区2区| 日日躁夜夜躁aaaabbbb| 色综合天天综合网天天狠天天| 黄网站在线免费| 中日韩美女免费视频网站在线观看| 欧美电影院免费观看| 国产成人精品网站| 久久精品一本| 99色精品视频| 午夜精品123| 中文在线免费二区三区| 国语自产精品视频在线看抢先版图片| 激情综合网五月| 欧美二区在线| 久久新电视剧免费观看| 视频一区二区在线播放| 亚洲电影中文字幕| 日韩精品免费一区二区三区竹菊| 官网99热精品| 91视频一区二区三区| 一级毛片在线播放| 亚洲黄色有码视频| 少妇高潮一区二区三区| 欧美极品jizzhd欧美| 91在线免费视频观看| 青青草在线播放| 在线观看亚洲区| 亚洲国产一成人久久精品| 蜜桃网站在线观看| 欧美日韩国产精品一区| 欧美日韩大片| 亚洲综合中文字幕在线观看| 成人av中文字幕| 中文字幕av在线| 亚洲色图15p| 先锋资源久久| 久久精品国产sm调教网站演员| 偷窥国产亚洲免费视频| 日韩久久一区二区三区| 91中文精品字幕在线视频| 成人午夜电影小说| 在线激情小视频| 欧美怡红院视频一区二区三区| 久久er99热精品一区二区| 偷拍25位美女撒尿视频在线观看| 北条麻妃久久精品| 日韩精品乱码av一区二区| 色琪琪丁香婷婷综合久久| 一本一本久久a久久精品牛牛影视 一本色道久久综合亚洲精品小说 一本色道久久综合狠狠躁篇怎么玩 | 免费亚洲电影| 99久久精品免费看国产四区| 国产女人18水真多18精品一级做| 欧美理论片在线播放| 国产欧美精品久久久| 久久噜噜亚洲综合| 亚洲一区二区三区在线看| 一区精品在线| 久草视频视频在线播放| 欧美变态凌虐bdsm| 亚洲激情自拍| 成人台湾亚洲精品一区二区 | av亚洲在线观看| 成人av福利| 欧美日韩色网| 羞羞免费视频| 亚洲精品视频一区二区三区| 欧美激情国产精品| 国产亚洲欧美日韩一区二区| 亚洲男人电影天堂| 日韩精品视频一区二区三区| 狠狠久久综合| 在线日本视频| 天堂中文在线8| 男操女免费网站| 一区二区三区四区五区精品| 国产九九精品视频| 一本久久a久久精品亚洲| 日本成人在线一区| 欧美调教在线| 成人免费不卡视频| 免费h视频在线观看| 国产a级黄色大片| 精品无码一区二区三区在线| 日韩精品在在线一区二区中文| 97香蕉超级碰碰久久免费软件| 欧美日韩成人在线| 亚洲成av人片一区二区三区| 亚洲男女毛片无遮挡| 亚洲日本在线a| 欧美黑人做爰爽爽爽| 久草在线成人| 欧美性生活一级片| 国产欧洲在线| 亚洲美女久久久| 九色|91porny| 欧美片第一页| 欧美一区二区中文字幕| 色婷婷综合久久久久中文字幕1| av不卡在线播放| 91国内精品白嫩初高生| 美女av电影| 国产精品免费网站| 欧美日韩午夜激情| 国产精品久久久久9999高清| 在线观看av黄网站永久| 天堂一区二区三区| 中文日韩电影网站| 国产日韩欧美电影| 久久国产综合| а√中文在线8| 超薄肉色丝袜足j调教99| 欧美成人免费在线视频| 国产日韩精品一区| 日韩毛片视频| 日韩精品卡一| 亚洲精品乱码久久久久久自慰| 青青久久av北条麻妃黑人| 亚洲在线视频免费观看| 999在线观看精品免费不卡网站| 牛牛在线精品视频| 欧美极品少妇无套实战| 中文字幕亚洲欧美日韩2019| 国产欧美日产一区| 欧美一区二区三| 第九色区av在线| 国产精品美女在线播放| 欧美日本精品在线| 色综合久久天天| 极品少妇xxxx偷拍精品少妇| 97se亚洲国产一区二区三区| 麻豆app在线观看| 韩国无码av片在线观看网站| 日本精品久久电影| 精品三级在线看| 国产精品沙发午睡系列990531| 亚洲欧洲一级| 国产麻豆一区二区三区| 国产日产精品久久久久久婷婷| 久久久久久久久久伊人| 2019日本中文字幕| 日韩欧美一级二级三级| 国产三级精品视频| 99亚洲精品| 久久综合另类图片小说| 亚洲丝袜一区| 国产福利在线播放| 亚洲在线观看一区| 日本精品在线视频| 国产丝袜一区二区三区免费视频 | 中文字幕日本在线| 亚洲熟妇无码另类久久久| 91精品中文在线| 日韩中文字幕在线视频| 欧美色窝79yyyycom| 国产精品盗摄一区二区三区| 亚洲作爱视频| 亚洲裸色大胆大尺寸艺术写真|