PowerShell 管理单元:在 IIS 管理单元命名空间中导航
作者:Thomas Deml
每个人都熟悉文件系统的组织方式。 文件系统是分层命名空间,由包含文件和其他目录的目录组成。 PowerShell 管理单元利用对文件系统的这种熟悉性,并允许将其他数据存储公开为分层命名空间。 与文件系统驱动器的根目录通常是 C:\
一样,IIS 配置系统的根目录为“IIS:”。
在根“IIS:”驱动器下,你会发现“Sites”和 Application Pools(简称为“AppPools”)。
IIS 管理单元命名空间的组织情况
下面是 IIS PowerShell 管理单元命名空间的结构。 无法删除或移动以下容器。
IIS:\
站点
网站集
- 应用程序和虚拟目录
AppPools
- WorkerProcesses
SslBindings
请注意:如果启动工作进程,你将在工作进程集合中找到 PowerShell 进程对象。 此进程集合使用 Request 和 AppDomain 对象进行扩充。 这样,你可以查询 IIS 工作进程,以获取当前正在执行的请求和正在运行的应用程序域。
现在来试一试。
任务 1 - 熟悉 IIS 提供程序命名空间
1.1. 启动 IIS PowerShell 管理控制台
单击“开始”菜单,然后选择“所有程序”-“IIS 7.0 扩展”-“IIS PowerShell 管理控制台”。 新的 PowerShell 命令窗口的提示设置为“IIS:” - 它是IIS 提供程序命名空间的根目录。
1.2. 导航命名空间
键入“dir”,请注意 Sites 和 AppPools 是根目录下仅有的两个目录。
PS IIS:\> dir
Name
----
Sites
AppPools
在下一步,我们要更改为 Sites 目录。 为此,可以使用以下命令:
PS IIS:\> cd Sites
PS IIS:\Sites> dir
Name ID State Physical Path Bindings
---- -- ----- ------------- --------
Default Web Site 1 Started f:\inetpub\wwwroot http *:80:
如果你喜欢冒险,你会注意到键入 cd Si<tab> 将为你提供命令行补全。
现在请尝试此操作:
1.2 更多的一些导航
现在请尝试以下操作:
PS IIS:\Sites> Get-Item 'Default Web Site' | Select-Object *
PSPath : IIsProviderSnapIn\WebAdministration::\\THDLAP\Sites\Default Web Site
PSParentPath : IIsProviderSnapIn\WebAdministration::\\THDLAP\Sites
PSChildName : Default Web Site
PSDrive : IIS
PSProvider : IIsProviderSnapIn\WebAdministration
PSIsContainer : True
State : Started
name : Default Web Site
id : 1
serverAutoStart : True
bindings : {binding, binding}
limits : Microsoft.Web.Administration.ConfigurationElement
logFile : Microsoft.Web.Administration.ConfigurationElement
traceFailedRequestsLogging : Microsoft.Web.Administration.ConfigurationElement
applicationDefaults : Microsoft.Web.Administration.ConfigurationElement
virtualDirectoryDefaults : Microsoft.Web.Administration.ConfigurationElement
applicationPool : DefaultAppPool
enabledProtocols : http
userName :
password :
physicalPath : f:\inetpub\wwwroot
Attributes : {name, id, serverAutoStart, state}
ChildElements : {bindings, limits, logFile, traceFailedRequestsLogging...}
ElementTagName : site
IsLocallyStored : True
Methods : {Start, Stop}
RawAttributes : {name, id, serverAutoStart, state}
Schema : Microsoft.Web.Administration.ConfigurationElementSchema
我们第一次尝试使用 PowerShell cmdlet,而不是使用旧的 DOS 命令,例如 CD 或 DIR。 如果想要有效地使用 IIS PowerShell 管理单元,最好熟悉这些命令。
例如,通过 Get-Item 命令可以获取指定位置的项的详细信息。 在本例中,我们获取“默认网站”的详细信息(如果想要少键入一些内容,请尝试使用“get-item D<tab>”,这样命令行将由 PowerShell 自动补全)。 我们将 Get-Item 的输出通过管道传递给 Select-Object cmdlet,它会显示“默认网站”的所有配置设置。
总结
本演练简要介绍了 IIS 管理单元命名空间的组织方式。 你还学习了用于在 IIS 命名空间中找到所需信息的一些基本命令。