如何通过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'.
答案 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例子很多。