【发布时间】:2020-12-07 18:46:58
【问题描述】:
我想通过带有 powershell 的 Get-WebConfiguration 命令行开关从 web.config 文件中读取一些属性。
我已经用这个命令测试过
Get-WebConfiguration -PSPath 'iis:\sites\default test web site\referenz_ad' -filter "connectionStrings/add[@name='ApplicationDatabase']"
按预期返回以下内容:
connectionString : server=...;uid=...;pwd=...;database=...;language=english
name : ApplicationDatabase
providerName : System.Data.SqlClient
PSPath : MACHINE/WEBROOT/APPHOST/Default Test Web Site/Referenz_AD
Location :
ConfigurationPathType : Location
ItemXPath : /connectionStrings/add[@name='ApplicationDatabase']
Attributes : {connectionString, name, providerName}
ChildElements : {}
ElementTagName : add
Methods :
Schema : Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema
如果我想读取不同的节点属性
Get-WebConfiguration -PSPath 'iis:\sites\default test web site\referenz_ad' -filter "configSections/section[@name='dotless']"
我得到一个空结果(什么都没有显示),但也没有错误消息。路径正确写入 - 复制/粘贴以消除拼写错误。我也尝试过不同的路径。有些确实返回值大多数不是...
以下是 web.config 文件的示例,其中包含不返回结果的节点:
<configuration>
<configSections>
<section name="dotless" type="dotless.Core.configuration.DotlessConfigurationSectionHandler,dotless.Core" />
<section name="storageConfig" type="Cubido.DMS.Storage.Common.Configuration.StorageConfigSection" />
<sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=...">
<section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=..." requirePermission="false" />
<section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=..." requirePermission="false" />
</sectionGroup>
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=..." requirePermission="false" />
</configSections>
.
.
.
</configuration>
有人知道为什么第二个命令没有返回结果吗?
问候 亚历克斯
【问题讨论】:
-
我不熟悉
Get-WebConfiguration(官方的help topic 也无济于事),但是——一般来说——如果-Filter参数不匹配,那么命令安静地运行是正常的什么都不返回。该参数看起来像一个 XPath 查询 - 也许该查询找不到您期望它找到的内容。 -
IIS 是否可能没有从 web.config 文件中读取所有信息?我现在尝试在 IIS 上查找信息,但在那里也找不到。这可以解释为什么
Get-WebConfiguration找不到它...
标签: powershell iis