通过PowerShell在IIS中设置应用程序设置

时间:2016-12-16 09:04:20

标签: powershell iis

如何通过PowerShell在IIS中设置应用程序设置?

我尝试使用Set-WebConfigurationProperty作为

Set-WebConfigurationProperty "/appSettings/add[@key='someKey']" -PSPath "IIS:\Sites\Default Web Site\someSite" -name "someKey" -Value "someValue"

但我得到了

WARNING: Target configuration object '/appSettings/add[@key='someKey'] is not found at path 'MACHINE/WEBROOT/APPHOST/Default Web Site/someSite'.

2 个答案:

答案 0 :(得分:3)

我发现最简单的方法是从IIS配置编辑器构建PowerShell。

要做到这一点;

1)打开Inetmgr(IIS)
2)单击要定位的站点 3)功能视图,左下方的配置编辑器 4)在此处,浏览到要编辑的配置部分,以及
 做出改变 5)然后单击右上角的“生成脚本”。

这将生成多个不同的脚本来配置它,选择PowerShell然后你去。

例如,将Windows身份验证更改为Forms

Set-WebConfigurationProperty -pspath 'MACHINE/WEBROOT/APPHOST/Somewebsite'  -filter "system.web/authentication" -name "mode" -value "Forms"

您可以从这里学习如何做任何事情。

还有get-webconfigurationproperty命令可以在编辑之前为您提供配置,这只是从PowerShell运行。

要记住的一个关键是SET-WebConfigurationProperty会覆盖所有内容,而且往往不能做你想做的事。

Add-WebConfigurationProperty将添加,而不是覆盖并添加其他配置。

希望有所帮助!

答案 1 :(得分:0)

如何正确使用Add-WebConfigurationProperty?因为必须在应用程序设置丢失的情况下使用它(Set-WebConfigurationProperty会失败)。

因此,在进行以下配置后,将创建具有虚拟目录“ VirtualDirOne”的站点“ SiteOne”:

<?xml version="1.0" encoding="utf-8"?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
  <appSettings>
    <add key="first" value="a" />
  </appSettings>
</configuration>

当我要将值更改为“ b”时:

Set-WebConfigurationProperty -pspath "iis:\Sites\SiteOne\VirtualDirOne" -filter "/appSettings/add[@key='first']" -name value -value "b"

当我想添加其他设置时:

Add-WebConfigurationProperty -pspath "iis:\Sites\SiteOne\VirtualDirOne" -filter "/appSettings" -name "." -value @{key='second'; value='x'}

当我想获取值时:

Get-WebConfigurationProperty -pspath "iis:\Sites\SiteOne\VirtualDirOne" -filter "/appSettings/add[@key='second']" -name "value.Value"

最后,要删除设置:

Clear-WebConfiguration -pspath "iis:\Sites\SiteOne\VirtualDirOne" -filter "/appSettings/add[@key='second']"

here例子很多。