ADSI与ADAM的区别(1)什么是ADAM

之所以介绍这两个不同的概念,是应为在exchange 2007中出现了在安装边缘服务器时候,adam成为必需的一个插件。因为边缘传输服务器由于它的特殊性是在非域环境下存在的。之前ADAM这个东西我倒是很少遇见,在安装exc07的时候补了一节课。太长了额,耐心看
--------------------------------------------------------------------------------------------------------------
Active Directory 为支持目录的应用程序和 microsoft® Windows 网络结构的 管理提供可伸缩的 LDAP 目录服务。Active Directory 应用程序模式 (ADAM) 是 Active Directory 的一种新模式,专门为支持目录的应用程序提供 LDAP 目录服务 — 没有 Active Directory 的结构要求。因此,ADAM 不需要使用域或域控制器。可以在 microsoft® Windows XP Professional 上以及运行 microsoft® Windows server™ 2003 Standard Edition、Windows Server 2003 Enterprise Edition 和 Windows Server 2003 Datacenter Edition 的成员服务器和域控制器上安装 ADAM。ADAM 作为非操作系统服务运行,不需要重新启动即可安装、停止和重新启动。也可以在一台计算机上安装多个 ADAM 实例,每个 ADAM 实例处理各自独立 管理的架构。因为构建 ADAM 所采用的核心技术与 Active Directory 相同,所以,支持目录的应用程序的开发人员可以使用类似的方法来利用 ADAM,同时降低了应用程序对结构的依存性。
ADAM 是为支持目录的应用程序提供专用的 LDAP 目录服务的理想选择。通过将 ADAM 与支持目录的应用程序绑定在一起,不需要在安装应用程序之前关心目录服务的可用性。您也可以将 ADAM 作为应用程序安装过程的一部分进行安装,以确保应用程序可以在安装后立即访问目录服务。
ADAM 作为打包成一个自执行 IExpress 软件包的一组文件进行分发。可以通过直接在 Windows 中运行 ADAM 安装程序可执行文件,执行 ADAM 的独立安装。也可以将 ADAM 安装程序加入应用程序安装程序,方法是将 ADAM IExpress 软件包加入应用程序安装程序,然后从应用程序安装程序中启动 ADAM 安装程序。
要创建和安装支持目录的应用程序软件包(其中包含 ADAM 安装程序的捆绑副本),请执行包含下列任务的三阶段过程:
1.创建 Windows Installer 软件包以安装支持目录的应用程序。
2.修改支持目录的应用程序的安装过程,以便可以选择安装 ADAM。
3.运行支持目录的应用程序的安装程序,以便同时安装支持目录的应用程序和 ADAM(如果需要)并创建 ADAM 实例。

捆绑 ADAM可以将 Active Directory 应用程序模式 (ADAM) 与您的应用程序绑定在一起,方法是使您给应用程序创建的 Windows Installer 软件包有选择地安装 ADAM, 然后创建 ADAM 实例。
如果应用程序安装程序软件包将 ADAM 作为其安装过程的一部分来安装,那么必须可以检测到目标计算机上运行的 Windows 版本、该计算机上是否安装了 ADAM 以及所安装的 ADAM 版本(如果已安装)。
如果要将您的应用程序安装在 Microsoft Windows Server 2003 R2 上,那么安装程序软件包必须确定该计算机上是否已安装 ADAM。如果已安装,那么应用程序安装程序软件包只需要运行 %windir%\ADAM\Adaminstall.exe,即可创建供您的应用程序使用的 ADAM 实例。反之,如果 ADAM 尚未安装,那么运行 Adaminstall.exe 之前,您的应用程序安装必须先使用可选组件管理器 (OCM) 安装 ADAM。要在运行 Windows Server 2003 R2 的计算机上安装 ADAM,请使用以下 命令
Sysocmgr /i:sysoc.inf /q /u:script.inf
指定的脚本文件必须包含以下内容:
[components]adam=on如果要将应用程序安装在运行其他 Windows 版本的计算机上,那么安装程序软件包必须确定是否已安装 ADAM SP1。如果未安装,那么在运行 Adaminstall.exe 来创建应用程序的 ADAM 实例之前,安装程序软件包必须先运行 Adamsp1.exe 来安装 ADAM SP1。如果已安装 ADAM SP1,那么应用程序安装程序软件包只需要运行 Adaminstall.exe。
要确定目标计算机上是否在运行 Windows Server 2003 R2,请调用 nIndex 参数设置为 SM_SERVERR2 (80) 的 GetSystemMetrics API。如果返回值为 0,那么计算机上没有运行 Windows Server 2003 R2。
要确定目标计算机上是否安装了 ADAM,请在以下系统注册表项中查找任意值:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\ADAM_Shared\VersionMajor
如果此值存在,那么 ADAM 已安装。
要确定所安装的 ADAM 版本是否为 ADAM SP1,请在以下系统注册表项中查找值 1:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\ADAM_SP\SP1\Installed
可以通过下列三种方法之一来创建 ADAM 实例:
Active Directory 应用程序模式安装向导
无人参与的 ADAM 安装
进度模式的安装

Active Directory 应用程序模式安装向导在运行 Adamsp1.exe 时,将安装 Active Directory 应用程序模式安装向导。Active Directory 应用程序模式安装向导使用一系列向导页来引导用户创建 ADAM 实例。要从应用程序的 Windows Installer 软件包启动 Active Directory 应用程序模式安装向导,必须启动 Adamsp1.exe,然后从该软件包中运行 Adaminstall.exe。可以通过自定义操作,从应用程序的 Windows Installer 软件包启动 Adamsp1.exe 和 Adaminstall.exe。自定义操作可以安排在应用程序安装过程中的特定时刻运行,也可以利用事件(例如用户单击按钮)来触发。自定义操作可以设置为在完成后归还控制权,也可以设置为不同步运行。要确保用户在继续安装应用程序之前完成 ADAM 的安装,必须将自定义操作设置为在完成后归还控制权。

无人参与的 ADAM 安装ADAM 实例可以在无人参与(或“无提示”)模式下安装,该模式不需要用户输入。通过为 Adaminstall.exe 提供文本应答文件来完成 ADAM 的无人参与安装,该文件中包含要安装的 ADAM 实例的所有必要 配置选项。如果在为支持目录的应用程序编写安装程序时已经知道这些选项,那么固定版本的应答文件可能会作为应用程序安装程序的一部分。但是,如果在安装应用程序期间要使用用户输入来修改任何 ADAM 安装程序选项,那么必须在用户指定了选项之后,动态创建应答文件并提供给 Adaminstall.exe。典型的 ADAM 无人参与安装流程包括以下六个步骤:
Windows Installer 软件包将配置选项写入文本应答文件。
1.如果需要,那么 Windows Installer 软件包将启动 Adamsp1.exe,Adamsp1.exe 将解压缩 ADAM 文件。
2.Windows Installer 软件包显示 ADAM EULA。
3.Windows Installer 软件包启动 Adaminstall.exe。
4.Adaminstall.exe 从应答文件读取安装选项。
调用包含 /answer 参数的 Adaminstall.exe 会导致 ADAM 安装程序从指定的应答文件检索安装设置,如下例所示:
adaminstall /answer:answer.txt
以下示例应答文件用于安装唯一的 ADAM 实例:
[ADAMInstall]; The following line specifies to install a unique ADAM instance.InstallType=Unique; The following line specifies the name to be assigned to the new ; instance.InstanceName=MyAppInstance; The following line specifies the TCP port to use for LDAP.LocalLDAPPortToListenOn=1129; The following line specifies the port to use for SSL.LocalSSLPortToListenOn=1130; The following line specifies an application partition to createNewApplicationPartiti; The following line specifies the directory to use for ADAM data ; files.DataFilesPath=C:\Program Files\Microsoft ADAM\MyAppInstance \data; The following line specifies the directory to use for ADAM log files.LogFilesPath=C:\Program Files\Microsoft ADAM\MyAppInstance \logs
显示 ADAM EULA上面所示的命令将无提示安装 ADAM 实例,但是不允许应用程序安装程序显示 ADAM EULA。要允许应用程序安装程序显示 ADAM EULA,必须之前已将 ADAM EULA 加入应用程序的安装程序。要获取 ADAM EULA,必须将 ADAM 文件解压缩到一个已知位置,如下例所示:
adamsp1 /t:"%temp%\adamfiles" 解压缩之后,可以将 ADAM EULA 导入应用程序安装程序以便显示。在安装应用程序期间,可以使用上面所示的命令来解压缩 ADAM 安装程序文件。如果用户接受该 EULA,那么可以通过运行 Adaminstall.exe 继续安装 ADAM。

自定义 ADAM 选项如果希望在安装应用程序期间由用户自定义 ADAM 实例,那么必须先将包含所需选项的应答文件写入磁盘,然后才能运行 Adaminstall.exe。下表列出在无人参与模式下运行时,ADAM 安装可以接受的有效应答文件参数。
参数可能值InstallType
Unique — 创建 ADAM 的唯一实例。
Replica — 通过全部或部分复制某个现有 ADAM 实例来创建 ADAM 实例。
Tools — 仅安装 ADAM 工具。
任何其他值 — 返回错误消息。
ShowOrHideProgressGUI
Show — ADAM 安装程序在安装过程中显示进度信息。
Hide — ADAM 安装程序在安装过程中不显示进度信息。
InstanceName
有效的域名系统 (DNS) 主机名标签,最多可以包含 63 个 UCS 转换格式 8 (UTF-8) 字节。
""(空字符串)— 会将该实例命名为 Instance n,其中 n 是大于 0 的最小编号,使 Instance n 在本地计算机中是唯一的。
任何其他值 — 返回错误消息。
ApplicationPartitionsToReplicate
指定要从源 ADAM 实例复制的应用程序分区的可分辨名称。以下示例指定要复制的三个应用程序分区:
ApplicationPartiti "DC=partition2" "CN=embed qu\"ote in DN"
要从源 ADAM 实例复制所有应用程序分区,请指定“*”作为该值。如果没有将 InstallType 设置为 Replica,则为 ApplicationPartitionsToReplicate 指定的任何值都会被忽略。
ReplicationDataSourcePath
指定 ADAM 数据的还原副本的目录路径。如果未将 InstallType 设置为 Replica,或者还没有为 ReplicationLogSourcePath 指定一个值,则为 ReplicationDataSourcePath 指定的任何值都会被忽略。
ReplicationLogSourcePath
为 ADAM 数据的还原副本指定日志文件的目录路径。如果未将 InstallType 设置为 Replica,或者还没有为 ReplicationDataSourcePath 指定一个值,则为 ReplicationLogSourcePath 指定的任何值都会被忽略。
ReplicateOnlySpecifiedPartitions
Yes — 仅复制通过 ApplicationPartitionsToReplicate 指定的应用程序分区。
No — 从复制源复制所有应用程序分区,忽略为 ApplicationPartitionsToReplicate 设置的任何值。
LocalLDAPPortToListenOn
389 或介于 1025 和 65535 之间的任何未使用的端口号(包括 1025 和 65535)。
任何其他值 — 返回错误消息。
LocalSSLPortToListenOn
636 或介于 1025 和 65535 之间的任何未使用的端口号(包括 1025 和 65535)。
任何其他值 — 返回错误消息。
SourceServer
有效的 DNS 名、网络基本输入/输出系统 (NetBIOS) 名或 Inter net 协议 (IP) 地址。
任何其他值 — 如果 InstallType 为 Replica,那么将返回错误消息。否则,不执行任何操作。
SourceLDAPPort
389 或 1025 到 65535 之间的某个数字。
任何其他值 — 如果 InstallType 为 Replica,那么将返回错误消息。否则,不执行任何操作。
NewApplicationPartitionToCreate
有效的可分辨名称 — 使用指定的名称创建一个应用程序分区。
""(空字符串)— 不会创建任何新的应用程序分区。
任何其他值 — 如果 InstallType 为 Unique,那么将返回错误消息。否则,不执行任何操作。
DataFilesPath
语法上正确的路径名称,它可能包括不包含现有 ADAM 文件的未解析环境变量。
任何其他值 — 返回错误消息。
LogFilesPath
语法上正确的路径名称,它可能包括不包含现有 ADAM 文件的未解析环境变量。
任何其他值 — 返回错误消息。
ServiceAccount
有效的 DNS 域名,后面跟着一个反斜杠和帐户名或组名。
有效的 NetBIOS 域名,后面跟着一个反斜杠和帐户名。
有效的用户主体名称 (UPN)。
只是有效的帐户名(通常建议不要这样,因为解析一个没有域名的帐户名需要附加的处理)。
任何其他值 — 返回错误消息。
AddPermissionsToServiceAccount
Yes — ADAM 安装程序尝试将“作为服务登录”的权限添加到指定为服务帐户的帐户。
任何其他值 — ADAM 安装程序并不尝试将“作为服务登录”权限添加到指定为服务帐户的帐户。
ServicePassword
任何字符串,包括空字符串。
Administrator
有效的 DNS 域名,后面跟着一个反斜杠和帐户名。
note.gif注:不指定内置组或内置帐户,如 DOMAIN\Administrators。相反,如果要指定组,请指定一个域组,如 domainname\Domain Admins,其中 domainname 代表域名。
有效的 NetBIOS 域名,后面跟着一个反斜杠和帐户名。
有效的 UPN。
只是有效的帐户名(通常建议不要这样,因为解析一个没有域名的帐户名需要附加的处理)。
任何其他值 — 返回错误消息。
ShowInAddRemovePrograms
Show — 在“添加或删除程序”中列出该 ADAM 实例。
Hide — 在“添加或删除程序”中不列出该 ADAM 实例。
ImportLDIFFiles
一个或多个由 Microsoft 提供的、要导入到 ADAM 架构中的可选 .ldf 文件(Ms-User.ldf、Ms-InetOrgPerson.ldf、Ms-UserProxy.ldf 和 Ms-azman.ldf)。文件名必须加上双引号,并使用空格分隔,如下例所示:
"Ms-User.ldf" "Ms-UserProxy.ldf"
note.gif注:
不再支持 ShowAdamShortcuts 参数。

进度模式的安装如果应用程序的 Windows Installer 软件包在无人参与安装模式下启动 ADAM 安装程序,那么用户不会意识到 ADAM 安装程序正在运行,可能会认为应用程序安装程序出现问题。为了避免发生这种情况,可以在应答文件中指定 ShowOrHideProgressGUI=Show,如下例所示:
; The following line in the answer file will cause a progress dialog to ; be displayed during the ADAM setup.ShowOrHideProgressGUI=Show此参数使 ADAM 安装在安装期间显示进度栏。用户可以取消安装,否则,就只能查看 ADAM 安装的进度。ADAM 安装完成之后,控制权将归还给应用程序的 Windows Installer 软件包,然后继续安装应用程序。