为应用程序池指定标识 (IIS 7)
应用到: Windows 7, Windows Server 2008, Windows Server 2008 R2, Windows Vista
应用程序池的标识是运行应用程序池的工作进程所使用的服务帐户名称。 默认情况下,应用程序池以 Network Service 用户帐户运行,该帐户拥有低级别的用户权限。 您可以将应用程序池配置为以 Windows Server® 2008 操作系统中的内置用户帐户之一运行。 例如,您可以指定 Local System 用户帐户,此帐户与 Network Service 或 Local Service 内置用户帐户相比,具有更高级别的用户权限。 但请注意,以具有高级别用户权限的帐户运行应用程序池存在严重的安全风险。
您还可以配置自定义帐户,使之用作应用程序池的标识。 您选择的任何自定义帐户都应只具有应用程序需要的最基本的权限。 自定义帐户在以下情况下很有用:
- 当您希望提高安全性并且使跟踪相应应用程序的安全事件更加容易。
- 当您在单个 Web 服务器上承载多个客户的网站时。 如果您为多个客户使用同一进程帐户,则一个客户的应用程序源代码可能能够访问另一客户的应用程序源代码。 在这种情况下,您还应为匿名用户帐户配置自定义帐户。
- 当应用程序不仅需要应用程序池的默认权限,而且还需要其他权限时。 在这种情况下,您可以创建一个应用程序池,然后为新的应用程序池分配自定义标识。
先决条件
为应用程序池指定标识
您可以通过以下方法执行此过程:使用用户界面 (UI)、在命令行窗口中运行 Appcmd.exe 命令、直接编辑配置文件或编写 WMI 脚本。
用户界面
使用 UI
-
打开 IIS 管理器。 有关如何打开 IIS 管理器的信息,请参阅 打开 IIS 管理器 (IIS 7)。
-
在“连接”窗格中,展开服务器节点,然后单击“应用程序池”。
-
在“应用程序池”页中,选择要为其指定标识的应用程序池,然后单击“操作”窗格中的“高级设置”。
-
对于“标识”属性,单击 ... 按钮以打开“应用程序池标识”对话框。
-
如果您要使用内置帐户,请选中“内置帐户”选项,然后从列表中选择一个帐户。
-
如果要使用自定义标识,请选中“自定义帐户”选项,然后单击“设置”以打开“设置凭据”对话框。 接着,在“用户名”文本框中键入自定义帐户名,在“密码”文本框中键入密码,在“确认密码”文本框中重新键入密码,然后单击“确定”。
-
单击“确定”关闭“应用程序池标识”对话框。
命令行
若要指定应用程序池要使用的帐户标识,请使用下面的语法:
appcmd set config /section:applicationPools /[name=' string '].processModel.identityType:SpecificUser|NetworkService|LocalService|LocalSystem
变量 string 为您要配置的应用程序池的名称。 例如,若要将名为 Marketing 的应用程序池的标识类型从 Network Service 更改为 Local Service,请在命令提示符处键入如下命令,然后按 Enter:
appcmd set config /section:applicationPools /[name=' Marketing '].processModel.identityType:LocalService
若要将应用程序池配置为使用自定义标识,请使用下面的语法:
appcmd set config /section:applicationPools /[name=' string '].processModel.identityType:SpecificUser|NetworkService|LocalService|LocalSystem /[name=' string'].processModel.userName: string /[name=' string '].processModel.password: string
变量 name string 为您要配置的应用程序池的名称,userName string 为您希望此应用程序池使用的帐户的用户名,password string 是此帐户的密码。 例如,若要将一个名为Marketing 的应用程序池配置为使用一个用户名为 Marketer、密码为 M@dr1d$P 的自定义标识,请在命令提示符处键入如下命令,然后按 Enter:
appcmd set config /section:applicationPools /[name='Marketing'].processModel.identityType:SpecificUser /[name='Marketing'].processModel.userName: Marketer/[name='Marketing'].processModel.password: M@dr1d$P
有关 Appcmd.exe 的详细信息,请参阅 Appcmd.exe (IIS 7) 。
配置
本主题中的过程会影响以下配置元素:
<applicationPools> 下 <add> 下的 <processModel> 元素的 identityType 属性
有关 IIS 7 配置的详细信息,请参阅 MSDN 上的 IIS 7.0:IIS 设置架构(可能为英文页面)。
WMI
请使用以下 WMI 类、方法或属性执行此过程:
- ApplicationPool.ProcessModel.IdentityType 属性
有关 WMI 和 IIS 的详细信息,请参阅 IIS 7 中的 Windows Management Instrumentation (WMI)。 有关与此过程关联的类、方法或属性的更多信息,请参阅 MSDN 网站上的 IIS WMI 提供程序参考(可能为英文页面)。