Windows的目录结构采用的是

Windows的目录结构采用的是,第1张

├—WINDOWS

│ ├—system32(存放Windows的系统文件和硬件驱动程序) │ │ ├—config(用户配置信息和密码信息)

│ │ │ └—systemprofile(系统配置信息,用于恢复系统) │ │ ├—drivers(用来存放硬件驱动文件,不建议删除)

│ │ ├—spool(用来存放系统打印文件。包括打印的色彩、打印预存等)

│ │ ├—wbem(存放WMI测试程序,用于查看和更改公共信息模型类、实例和方法等。请勿删除)

│ │ ├—IME(用来存放系统输入法文件,类似WINDOWS下的IME文件夹)

│ │ ├—CatRoot(计算机启动测试信息目录,包括了计算机启动时检测的硬软件信息) │ │ ├—Com(用来存放组件服务文件)

│ │ ├—ReinstallBackups(电脑中硬件的驱动程序备份)

│ │ ├—DllCache(用来存放系统缓存文件。当系统文件被替换时,文件保护机制会复制这个文件夹下的文件去覆盖非系统文件) │ │ ├—GroupPolicy(组策略文件夹)

│ │

│ ├—system(系统文件夹,用来存放系统虚拟设备文件)

│ ├—$NtUninstall$(每给系统打一个补丁,系统就会自动创建这样的一个目录,可删除)

│ ├—security(系统安全文件夹,用来存放系统重要的数据文件)

│ ├—srchasst(搜索助手文件夹,用来存放系统搜索助手文件,与msagent文件夹类似)

│ ├—repair(系统修复文件夹,用来存放修复系统时所需的配置文件)

│ ├—Downloaded Program Files(下载程序文件夹,用来存放扩展IE功能的ActiveX等插件)

│ ├—inf(用来存放INF文件。INF文件最常见的应用是为硬件设备提供驱动程序服务,不建议删除其中文件)

│ ├—Help(Windows帮助文件)

│ ├—Config(系统配置文件夹,用来存放系统的一些临时配置的文件)

│ ├—msagent(微软助手文件夹,存放动态的卡通形象,协助你更好地使用系统。若觉的没有必要,可直接删除)

│ ├—Cursors(鼠标指针文件夹)

│ ├—Media(声音文件夹,开关机等wav文件存放于此)

│ ├—Mui(多语言包文件夹,用来存放多国语言文件。简体中文系统中这个文件夹默认是空的,但不建议删除此文件夹)

│ ├—java(存放Java运行的组件及其程序文件。不建议删除其中文件) │ ├—Web

│ │ ├—Wall*****(存放桌面壁纸的文件夹)

│ │

│ ├—addins(系统附加文件夹,用来存放系统附加功能的文件)

│ ├—Connection Wizard(连接向导文件夹,用来存放“Internet连接向导”的相关文件) │ ├—Driver Cache(驱动缓存文件夹,用来存放系统已知硬件的驱动文件)

│ │ └—i386(Windows *** 作系统自带的已知硬件驱动文件,可删除以节省空间) │ ├—TEMP(系统临时文件夹,其中内容可以全部删除)

│ ├—twain_32(扫描仪相关)

│ ├—AppPatch(应用程序修补备份文件夹,用来存放应用程序的修补文件) │ ├—Debug(系统调试文件夹,用来存放系统运行过程中调试模块的日志文件)

│ ├—Resources(系统资源文件夹,用来存放系统SHELL资源文件,就是我们在桌面上所看到的主题)

│ │ └—Themes(桌面主题都存放于此,可删除无用主题)

│ ├—WinSxS(存储各个版本的Windows XP组件,减少因为DLL文件而引起的配置问题)

│ ├—ime(输入法信息)

│ ├—PCHealth(用来存放协调、配置和管理计算机正常运行的文件) │ │ └—HelpCtr(帮助和支持)

│ │ ├—Binaries(我们常用的msconfig就在这里哟) │ ├—Offline Web Pages(脱机浏览文件存放于此)

│ ├—Prefetch(预读取文件夹,用来存放系统已访问过的文件的预读信息(此信息是系统在访问时自动生成的新信息),以加快文件的访问速度,其扩展名为“PF”。可以将此文件夹中的文件删除)

│ ├—ShellNew

│ ├—Fonts(字体文件夹。要安装某种字体只需将字体文件复制到该目录下即可)

│ ├—pss(用来备份系统启动配置文件的,一般对“Boot.ini”、“System.ini”和“Win.ini”三个文件进行备份,扩展名为“backup”。如果系统原有的这三个文件损坏的话,可以从这里进行恢复。不建议删除) │ ├—Registration(注册文件夹,用来存放用于系统COM+或者其他组件注册的相关文件。不建议删除这里的文件)

│ └—Downloaded Installations(存放一些使用Windows Installer技术的安装程序,主要用来对程序进行修复等 *** 作) ├—Documents and Settings

│ ├—Default User

│ │ ├—Application Data(通用应用程序数据文件夹。此处存放着已经安装的一些应用程序的专用数据) │ │ ├—桌面

│ │ ├—Favorites(收藏夹)

│ │ ├—NetHood(网络共享目录) │ │ ├—My Documents(我的文档) │ │ ├—PrintHood(打印共享目录) │ │ ├—Recent(最近打开的文档) │ │ ├—SendTo(鼠标右键的发送到) │ │ ├—「开始」菜单

│ │ ├—Templates(模板文件夹,可能有Word、Excel等的模板文件)

│ │ └—Local Settings │ │ ├—Application Data │ │ └—Temp(临时文件目录。在系统和软件的运行过程中产生的临时文件就存放在于此。需定期清理)

│ │ └—Temporary Internet Files(Internet临时文件夹。需定期清理) │ ├—All Users(所有用户文件夹,这里的更改对所有用户有效)

│ └—Administrator(系统管理员帐户的文件夹)

├—Program Files

│ ├—Common Files(共享的应用程序文件存放于此) │ ├—Internet Explorer(IE浏览器)

│ ├—ComPlus Applications(COM+ 组件的配置和跟踪,一般为空) │ ├—Windows Media Player(WINDOWS媒体播放器) │ ├—WindowsUpdate(用于Windows的升级,可删除)

│ ├—InstallShield Installation Information

│ ├—Uninstall Information(存放软件反安装信息,删除后可能导致部分软件无法卸载) ├—wmpub(windows media service的目录) ├—boot(一键还原等软件的文件夹) ├—Inetpub(IIS文件夹)

├—Downloads(Flashget默认下载文件夹)

├—System Volume Information(系统还原文件夹) └—TDdownload(迅雷默认下载文件夹)

Debug文件夹

这是系统调试文件夹,用来存放系统运行过程中调试模块的日志文件,以便管理员根据这些日志文件来发现计算机所存在的问题。其中“UserMode”文件夹下存放的是当前用户的调试日志文件。

ime文件夹

这是输入法文件夹,用来存放系统默认安装的输入法文件。Windows *** 作系统已经内嵌了东亚国家的输入法,如日语,韩文等,从理论上可以将用不到的一些其他语言输入法删除掉,但不建议这样做,因为这样有可能会导致输入法系统出现不稳定的情况,严重影响简体中文输入法的正常使用。

CHSIME:简体中文输入法; CHTIME:繁体中文输入法; IMEJP:日文输入法;

IMEJP98:日文98输入法;

IMJP8_1:微软IME标准2002的8.1版本输入法; IMKR6_1:朝鲜语(IME2002)6.1版本输入法; SHARE:东亚语系共享文件夹。

Fonts文件夹

这是字体文件夹,用来存放系统将会用到的字体文件。用户自己新安装的字体也会被存放在这个文件夹下的。其中英文的字体类型比较多,而简体中文字体文件只包括仿宋体、黑体、楷体、宋体和新宋体四个类型,即计算机编码中的GB2312。可以将其中一些不常使用的英文字体删除。

Installer文件夹

导致这问题的原因应该是:WinSock2损坏。

解决办法:

1.将鼠标移到开始图标,点击右键,选择运行。

2.在运行中 输入【services.msc】 命令,点击执行。

3.在打开的窗口选择如图所示的程序,点击启动。

4.这样就能解决网络显示依赖服务或组无法启动的问题。

拓展资料:

WinSock2就相当于连接系统和你使用的软件之间交流的一个接口,可能这个功能就是修复软件与系统正确的通讯的作用。

Winsock2 SPI(Service Provider Interface)服务提供者接口建立在Windows开放系统架构WOSA(Windows Open System Architecture)之上,是Winsock系统组件提供的面向系统底层的编程接口。Winsock系统组件向上面向用户应用程序提供一个标准的API接口向下在Winsock组件和Winsock服务提供者(比如TCP/IP协议栈)之间提供一个标准的SPI接口。各种服务提供者是Windows支持的DLL,挂靠在Winsock2 的Ws2_32.dll模块下。对用户应用程序使用的Winsock2 API中定义的许多内部函数来说,这些服务提供者都提供了它们的对应的运作方式(例如API函数WSAConnect有相应的SPI函数WSPConnect)。多数情况下,一个应用程序在调用Winsock2 API函数时,Ws2_32.dll会调用相应的Winsock2 SPI函数,利用特定的服务提供者执行所请求的服务。

Windows 2000新的系统特性

出自上海热线电脑频道

摘要:本文介绍了Windows 2000新的系统特性。

关键字:网络 *** 作系统、文件保护、驱动程序、用户模式代码开发、硬件设备

Windows 2000是微软公司十几年的软件开发生产的最新成果,也是历史上最大的一个商用 *** 作系统家族。微软公司为此投入了大量的人力和物力,凝聚了许多优秀的软件开发人员的智慧和心血。Windows 2000继承了Windows NT 4.0和Windows 98的优点,同时这两个 *** 作系统几年来无数用户的使用也为Windows 2000的开发提供了经验。Windows 2000几乎集成了当前Windows系统平台的所用功能,并且支持大量流行的硬件设备和整机。

可靠性和可用性的提高

Windows 2000作为新一代的网络 *** 作系统家族,无论在性能上还是可靠性上都有了质的飞跃。在Windows 2000中,微软已经针对可能影响可靠性的软硬件和系统管理问题专门进行了加强。对 *** 作系统来说,用户的主要需求就是系统的可靠性。Windows 2000 *** 作系统家族在硬件、软件和系统管理方面进行了增强以解决可用性和可靠性的问题。微软利用内部和从客户处搜集的大量数据来分析引起Windows NT 4.0失败的原因。这些信息帮助微软增强了Windows 2000的稳定性和可靠性,并且帮助微软开发了工具,这些工具可以帮助管理员更快得分析问题,以及更快得从不可避免的失败中恢复。

Windows 2000 在三个主要方面提高了可靠性和可用性:对 *** 作系统进行基本的改进,帮助开发人员创建可靠的代码,提供管理员提高系统可用性的新的工具。

首先,通过结构的修改, *** 作系统的稳定性得到了增强,结构的修改主要集中在保护 *** 作系统的内核和共享内存上面。包括:

·内核模式的写保护,这有助于阻止错误的代码干涉 *** 作系统的工作。

·Windows 文件保护,阻止新的软件安装替代基本的系统文件。

·Windows 2000 使用Driver Signing (驱动程序数字签名)来识别通过了Windows Hardware Quality Labs 测试的驱动程序,并且在用户将要安装没有数字签名的驱动程序时对用户提出警告。

第二,新的工具可以帮助开发人员创建更可靠得驱动程序。例如,一个公共的驱动程序问题的来源是不正确的使用共享内存。Pool Tagging 和 Guard Pages 特性使得跟踪内存使用更加简单,因此可以帮助开发人员对设备驱动程序进行调试。Driver Verifier 和 Device Path Exerciser 工具可以让开发人员检查错误分类,而在以前这些问题在测试环境中很难发现。

第三,Windows 2000 包括了新的管理特性,这些特性和增强改进了可用性。其中最重要的是减少了要求系统重新启动的维护功能的数目。关键的诊断过程运行的更快速,例如进行硬盘检查或者在系统失败时创建一个关于内存使用的详细报告。另外的几个改进减少了关机和重新启动的时间。

可靠性和可用性的改进的核心是对 *** 作系统和内存的保护。许多会引起系统不稳定的问题主要是由于对 *** 作系统内核(在内核中执行着基本的系统服务)的意外的影响,。因为内核控制着整个 *** 作系统,所以影响内核的代码错误对可靠性有极大的影响。影响内存的错误也是不稳定的一个经常的来源。

Windows 2000 *** 作系统提供了一个应用程序运行的环境。它包含了一系列的小软件组件,它们在一起工作来执行任务。每一个组件提供了一系列的功能来作为系统其它部分的接口。这些模块提供了访问CPU和其他硬件资源的方式。 *** 作系统还提供了使程序和组件可以互相通信的机制。

Windows 2000 将执行代码分为以下两种模式

用户模式

用户模式中的软件在没有特权的状态下运行,对系统资源只有有限的访问权限。例如,软件不能直接访问硬件。Windows 2000基础的应用程序和被保护的子系统运行在用户模式下。被保护的子系统运行在自己的空间内,不会互相干涉。

核心模式

在核心模式中,软件可以访问所有的系统资源,例如计算机硬件和敏感的系统数据。核心模式中的软件构成了 *** 作系统的核心,它们可以分为如下几组:

·Executive(执行体) 包含为环境子系统和其他执行体组件提供系统服务的系统组件。它们执行的系统任务包括输入/输出,文件管理,虚拟内存管理,资源管理,以及进程内部通信等等。

·Device drivers(设备驱动程序) 将组件的调用(例如,请求打印机)翻译为硬件 *** 作。

·Hardware abstraction layer(HAL,硬件抽象层) 将Windows 2000 Executive 的其它部分与特定的硬件分离开来,使 *** 作系统与多处理器平台相兼容。

·Microkernel(微内核) 管理微处理器。它执行一些重要的功能,例如调度,中断,以及多处理器同步等。

由于提供预先检测,阻止了应用程序、服务或设备驱动程序对内存的不正确使用,Windows 2000提高了可靠性。 *** 作系统可以非常出色的管理应用程序以及系统的错误,使得系统不会宕机。另外,为了保证一个程序的失败不会导致影响 *** 作系统或者其他应用程序的运行,其他的子系统与应用程序被隔离在单独的内存空间中。

在Windows 2000中对可靠性的改进主要在三个领域:结构改进,核心模式代码开发工具,以及用户模式代码开发工具。

结构改进有助于保护 *** 作系统核心模式 *** 作。这些改进包括:

核心模式写保护

为了保护 *** 作系统中的每一部分不会受其它部分的错误的影响,Windows 2000在内核部分和设备驱动程序中添加了写保护和只读部分,正象Windows NT总是有用户模式应用程序和动态连接库一样。

为了提供这种保护,物理内存映射标志出包含代码的内存页面,保证它们不能够被覆盖,即使是 *** 作系统也不能。这样就阻止了核心模式软件破坏了其他核心模式软件。这些特性在缺省情况下是激活的,当然如果用户和开发人员愿意的话,可以关闭这些特性。

Windows 文件保护

在Windows 2000以前的Windows版本中,安装软件可能覆盖共享的系统文件(例如,DLL,和可执行文件)。如果系统文件被覆盖,系统性能就会变得不可靠,程序的行为就会混乱, *** 作系统可能会失败。

Windows 文件保护在安装前检查原来的系统文件的版本。这样就保证象.sys, .dll, .ocx, .ttf, .fon, .exe等系统文件不会被替代。Windows 文件保护在后台运行,保护所有的由Windows 2000安装程序安装的文件。它检测其他程序要替换或删除一个被保护的系统文件的企图。Windows 文件保护检查文件的数字签名来确定新文件是否为正确的版本。如果这个文件的版本不正确,Windows文件保护就从dllcache目录,网络安装路径或者Windows 2000光盘中替换这个文件。如果Windows文件保护找不到合适的文件,它就会提示用户输入正确的路径。Windows文件保护还会将替换文件的企图写入事件日志。

缺省情况下,Windows文件保护是被激活的,只允许在安装下面的软件时替换被保护的系统文件:

·使用Update.exe安装Windows 2000 Service Packs

·使用Hotfix.exe

·使用Winnt32.exe进行 *** 作系统升级

·Windows Update

·Windows 2000 Device Manager/Class Installer

驱动程序签名

驱动程序签名有助于提高驱动程序的质量,因为它允许Windows 2000和Windows 98通知用户他们安装的驱动程序是否通过了微软的认证程序。驱动程序签名将一个加密的数字签名附加在通过了Windows Hardware Quality Labs (WHQL) 测试的代码文件上。.

如果驱动程序运行在Windows 2000和Windows 98 *** 作系统中,那么给驱动程序签名则是WHQL测试的一部分。数字签名与独立的驱动程序包结合在一起,Windows 2000可以识别它。这种认证证明用户使用的驱动程序是经过微软测试的那个驱动程序,如果在该驱动程序被放在HCL中后被修改过,Windows 2000就会通知用户。

驱动程序允许三种反应:Warn,Block,Ignore.

·Warn 在被安装的驱动程序没有数字签名的情况下,让用户了解,并且让用户决定是否安装。Warn还让用户可以选择安装一个被保护的驱动程序文件的没有签名的版本。

·Block 禁止安装所有的没有签名的驱动程序。

·Ignore 允许安装所有文件,不管这些程序是否有数字签名。

缺省情况下,Windows 2000 以Warn方式发布。

核心模式代码开发

如前所述,软件可以被分为两类:用户模式软件和核心模式软件。那些有助于程序员创建可靠的用户模式的应用程序的开发工具对开发核心模式代码的程序员来说就不合适了。因为编写核心模式代码由特定的要求,Windows 2000 Server中的可靠性的改进就包括专为核心模式开发人员使用得开发工具。

设备驱动程序是核心模式代码,它将 *** 作系统和硬件联系到一起。为了使系统的性能达到最大,核心模式代码没有应用程序那样的内存保护机制。相反, *** 作系统充分信任核心模式代码没有错误。这就是为什么为了与其他的驱动程序和 *** 作系统组件安全的协调工作,这些驱动程序和核心模式代码必须遵循复杂的规则的原因。一点点偏差就会导致其他核心模式的错误。

某些核心模式代码错误在测试阶段就可以发现。但是,像内存不足等错误,则可能经过很长时间才能导致系统崩溃,因此要找到在那儿产生的错误非常困难。另外,对驱动程序开发人员来说,要完全测试核心模式代码也是非常困难的,因为要模拟驱动程序将会碰到的整个环境是非常困难的。

为了解决这些问题,Windows 2000 Server 增加了下面的特性和工具来帮助开发人员创建更高质量的驱动程序:

Pool Tagging

Windows NT 4.0 内核包含完全共享的内存池,它被分配给各个任务,当不再需要时内存被返回给内存池。如果设备驱动程序发生错误的话,这种共享内存方式就会带来问题。一个经常发生的错误就是让核心模式组件对分配给它的内存以外的内存空间进行写 *** 作。这样做将会引起另外的核心模式组件崩溃,从而导致系统失败。

另一个经常会发生的错误是为一个驱动程序的进程分配了内存,但是在进程结束后却没有释放,这种情况会产生内存不足的问题。内存不足经常导致系统挂起---挂起的时间依赖于当时的环境。例如,一个请求了很少量的驱动程序,没有释放掉它的内存将会花很长时间才能消耗掉整个内存池。

所有的这些错误可能很难被跟踪。为了帮助开发人员发现并且修复这些错误,微软在Windows 2000中增加了Pool Tagging,或者称为(Special Pool)。这个工具在Windows NT 4的Service Pack 4中就存在了。

Guard Pages

Guard Pages 工具创建了Special Pool (Pool Tagging)的边界。这些内存页面让开发核心模式代码的开发人员能够发现覆盖代码的错误。当程序分配内存区域,然后又要在该区域之内进行写 *** 作时就会发生这种错误。而使用了Guard Page,当程序请求内存区域时, *** 作系统将内存区域从页面内存的边界开始分配。然后, *** 作系统就映射下一个页面为Guard Page,并且设置这些页面,使得代码不能够访问它们。如果程序试图对这些内存区域进行写 *** 作的话,它会碰到Guard Page,而这些页面是不能写的,系统将产生一个硬件错误,从而导致系统失败。这种引导出的失败警告开发人员,他们的应用程序的写 *** 作超出了范围。

Driver Verifier

Driver Verifier 是Windows 2000内核中增加的一系列的检查。这些检查有助于发现核心模式中包含的错误。因为Driver Verifier 影响性能,因此不应该连续使用,也不应该在实际环境中使用。在测试新的应用程序或者在实际环境中为后面的重复使用进行配置时,这是理想的工具。Driver Verifier 在进行技术支持时也非常有用,例如有一个特定的驱动程序被怀疑引起系统崩溃了。Driver Verifier 还包含一个Verifier.exe文件,这是一个用来管理driver verifier设置的图形界面的工具。

Driver Verifier 测试特定的错误条件集合,当发现新的可能的错误模式时,这些错误就被添加到测试集合中。Driver Verifier可以测试下面几种类型的错误:

·Memory corruption. 要想用Driver Verifier发现内存错误,必须保证驱动程序的所有内存都来自于Special Pool。Driver Verifier 检查类似于spinlocks, 使用未初始化的变量以及内存错误等等的错误。

·Writing to pageable data. 这种测试寻找那些以提高的中断级别或者具有spinlock访问可以交换的资源的驱动程序。这是一个致命的错误,但是只会发生在一个具体的工作环境中。为了测试这个错误,当一个驱动程序得到spinlock或者提高了中断级别时,Driver Verifier 就会使所有的可交换的代码,数据,和内存池无效。如果驱动程序试图写这些可交换的代码,硬件将生成一个页面错误提示驱动程序试图写无效的数据。

·Handling memory allocation errors. 一个经常发生的编程错误是在核心模式不能为驱动程序分配请求的内存时,驱动程序中没有适当的代码处理这种情况。在过去,驱动程序编程人员不能强迫内核返回内存分配失败。因此,他们缺少创建好的测试环境的能力。Driver Verifier可以配置将随机的内存分配错误映射到特定得驱动程序。

Device Path Exerciser

Device Path Exerciser (Devctl)测试设备驱动程序如何处理错误。它利用各种各样的用户模式I/O接口同步或者异步调用驱动程序,并且测试驱动程序如何处理错误的请求。例如,它可能连接到网络驱动程序并且请求它回卷磁带。可能连接到打印驱动程序并且请求它重新同步通信线路。或者,它也可能使用一个错误的缓冲区请求某个设备功能。这样的测试帮助开发人员使得驱动程序在错误的条件下更强壮。

用户模式代码开发

Windows 2000 包括一个新的工具---PageHeap。它可以帮助开发人员在开发非核心模式代码的时候找到内存访问错误。

PageHeap

Heap(堆)指的是用于临时存放代码的内存。堆错误在应用程序开发中是一个经常遇到的问题。最典型的发生堆错误的情况是一个应用程序分配了一个特定大小的内存块,但是却在该范围之外进行写 *** 作。另一个发生错误的原因是正在写的内存块已经被释放掉了。在这些情况下,可能会出现两个应用程序写同一部分内存,从而导致系统失败。Windows 2000中新添加的PageHeap特性就可以帮助开发人员发现它们的内存错误。

当PageHeap 被激活时,该应用程序的所有的堆分配被放到内存中,这样堆的边界就与虚拟内存的边界排在一起了。与堆相邻的虚拟内存页面被设置为NO_ACCESS。在该应用程序中对堆后面的空间的访问就会立刻引起错误,这就可以在一个调试工具中被捕获,开发人员就可以找到出错的代码。

在释放堆时,过程与之类似。PageHeap修改释放的应用程序虚拟页面为NO_ACCESS,这样,如果应用程序试图读写该内存时就会发生访问错误。

如果为一个应用程序运行PageHeap特性,应用程序要比正常时运行得慢,并且需要更多的虚拟内存,因为每一个堆的分配都需要两个完整的虚拟内存页面。随着应用程序对堆的使用的增加,可能需要增加系统的虚拟内存的大小,否则会出现虚拟内存不够的错误信息。除非系统有相当大的虚拟内存,否则建议不要同时运行两个以上的激活了PageHeap特性的应用程序。

所有的这些工具和开发方式,其目的都是为了保证核心系统的在各种情况下的尽可能正常的运行,以提高系统的可靠性

Active Directory Service Interfaces (ADSI)

Windows NT 4.0适合构建一个小到中型的网络环境,而Windows 2000已经成长到有能力构件一个中到大型的网络环境。这个能力的一个主要标志是Active Directory的实现。一个大型分布式计算环境的主要挑战之一就是定义和定位资源,包括用户、组、打印队列和文档,而目录服务是达到这个目的的有效工具。目录服务就像一个电话簿,当你提供了一个人或资源的名字,它就可以提供访问这个人或资源的必要信息。

当前的实际网络环境,实际情况会更加复杂。可能在同一个内部网络中包含了多个不同的目录,某些 *** 作系统、电子邮件系统和群件系统都有自己的目录服务。由于目录服务对于分布式的网络环境是如此的重要,所以我们需要由一个方便的方法可以对目录服务进行管理。

活动目录服务接口(Active Directory Service Interfaces, ADSI)可以解决这个问题。 ADSI提供了一个单一的、固定的和开放的接口,可以用于管理和使用多个不同的目录。ADSI是一组COM编程接口,为用户和独立软件开发商(ISVs)提供了一组方便的、预定义的统一接口来访问和管理多个目录服务。

ADSI可以让管理人员方便的实现通用的管理任务,如添加一个新用户,管理打印机和在分布式的计算环境中定位资源。开发人员则可以用ADSI快速实现他们的应用和主目录的连接。ADSI是Windows? Open Services Architecture (WOSA) Open Directory Service Interfaces (ODSI)的一个组成部分。

ADSI的主要特征为:

开放 任何目录服务都可以实现一个ADSI provider

目录无关性 管理和应用不必和某个目录服务紧紧绑在一起,同一个应用可以访问多个目录,节省了开发时间和支持费用

Java支持 Java applets和Java COM可以使用ADSI对象访问目录

安全 ADSI支持身份验证和授权

OLE自动化 任何OLE自动化控制器(如Visual Basic, Perl, Rexx, C/C++等)都可以用于开发目录服务应用,开发人员可以使用熟悉的工具,可以降低开发的时间和支持费用

丰富的功能 ADSI开发模型提供了丰富的功能,ISV和用户都可以用于开发简单的管理应用和重要的应用

可扩展性 目录提供者,ISV和用户都可以在ADSI中扩展新的对象和功能,满足自己的需要

ADSI定义了两种类型的对象:架构(schema)管理对象用于浏览和扩展架构,目录对象代表ADSI provider管理的目录。ADSI定义了一组标准的容器和叶对象,用于表达网络目录中通用的对象。

标准容器对象 标准叶对象

·Name spaces· Country· Locality· Organization· Organizational unit· Domain· Computer · User· Group· Alias· Service· Print queue· Print device· Print job· File service· File share· Session· Resource

下面我们来看一些使用ADSI的简单例子。

例子1 获得用户列表

获得用户的列表和属性是一个常见的需求。这个例子中使用了Visual Basic script获得ABX公司的每个用户的名字和电话号码,并传递给PrintUser子程序。

dim MyUserContainer as IADsContainer

dim MyUser as IADsUser

set MyUserContainer as GetObject("WinNT://ABX")

for each MyUser in MyUserContainer

PrintUser MyUser.Name, MyUser.TelephoneNumber

next MyUser

例子2 将用户加入到组

出于安全目的,我们需要将用户加入到组。这个例子中,上例中的那些用户被加入到Manufacturing Users组中。

dim MyUserContainer as IADsContainer

dim MyUser as IADsUser

dim MyGroup as IADsGroup

dim Filter as Variant

Filter = Array("user")

set MyUserContainer = GetOBject("WinNT://ABX")

MyContainer.Filter = Filter ' filter out all objects except users

set MyGroup = GetObject("WinNT://ABX/Manufacturing_Users")

for each MyUser in MyUserContainer

if not MyGroup.IsMember(MyUser) then

MyGroup.Add(MyUser)

end if

next MyUser


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11624078.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存