gpt4 book ai didi

iis - 使用 PowerShell 构建 Active Directory 条目在 IIS 6 中有效,但在 IIS 7 中无效

转载 作者:行者123 更新时间:2023-12-01 23:44:16 25 4
gpt4 key购买 nike

以下 PowerShell 行适用于已安装的 IIS 6:

$service = New-Object System.DirectoryServices.DirectoryEntry("IIS://localhost/W3SVC")

但是,对于 IIS 7,除非安装了 IIS 6 管理兼容性角色服务,否则它会引发以下错误:

out-lineoutput : Exception retrieving member "ClassId2e4f51ef21dd47e99d3c952918aff9cd": "Unknown error (0x80005000)"

我的目标是修改 HttpCustomHeaders:

$service.HttpCustomHeaders = $foo

如何以符合 IIS-7 的方式执行此操作?

谢谢

最佳答案

有多种方法可以使用 APPCMD 来执行此操作。和 C#/VB.NET/JavaScript/VBScript:

Custom Headers (IIS.NET)

要使用 PowerShell 和 Microsoft.Web.Administration 来执行此操作组装:

[Reflection.Assembly]::Load("Microsoft.Web.Administration, Version=7.0.0.0, Culture=Neutral, PublicKeyToken=31bf3856ad364e35")

$serverManager = new-object Microsoft.Web.Administration.ServerManager

$siteConfig = $serverManager.GetApplicationHostConfiguration()
$httpProtocolSection = $siteConfig.GetSection("system.webServer/httpProtocol", "Default Web Site")
$customHeadersCollection = $httpProtocolSection.GetCollection("customHeaders")
$addElement = $customHeadersCollection.CreateElement("add")
$addElement["name"] = "X-Custom-Name"
$addElement["value"] = "MyCustomValue"
$customHeadersCollection.Add($addElement)
$serverManager.CommitChanges()

这将导致 <location> applicationHost.config中的路径具有以下内容:

<location path="Default Web Site">
<system.webServer>
<httpProtocol>
<customHeaders>
<add name="X-Custom-Name" value="MyCustomValue" />
</customHeaders>
</httpProtocol>
</system.webServer>
</location>

要使用新的 IIS 7 在 PowerShell 中执行此操作 PowerShell Snap-In :

add-webconfiguration `
-filter /system.webServer/httpProtocol/customHeaders `
-location "Default Web Site" `
-pspath "IIS:" `
-value @{name='X-MyHeader';value='MyCustomHeaderValue'} `
-atindex 0

这将配置 <location> applicationHost.config中的路径具有以下内容:

<location path="Default Web Site">
<system.webServer>
<httpProtocol>
<customHeaders>
<clear />
<add name="X-MyHeader" value="MyCustomHeaderValue" />
<add name="X-Powered-By" value="ASP.NET" />
</customHeaders>
</httpProtocol>
</system.webServer>
</location>

每行末尾的反引号表示该行继续。上面给出的两个示例是在 Windows 2008 Server SP2 上测试的。

关于iis - 使用 PowerShell 构建 Active Directory 条目在 IIS 6 中有效,但在 IIS 7 中无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1711706/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com