【问题标题】:Set IIS environment variable through script通过脚本设置 IIS 环境变量
【发布时间】:2020-11-20 07:42:10
【问题描述】:
我想通过appcmd/批处理文件或PowerShell脚本以自动方式添加/删除/编辑IIS、asp.net核心网站环境变量,不仅是一个网站的变量,而且是批量操作。虽然我可以通过使用 IIS UI 来做到这一点
虽然我可以使用 appcmd 添加环境变量
appcmd.exe 重置配置“变量”
-section:system.webServer/aspNetCore /+"environmentVariables.[name='foo',value='bar']"
我找不到添加/删除/更新多个网站环境值的方法,只需单击单个按钮,而不是通过每个网站的配置设置来设置多个值,之后我可以在 Azure DevOps 管道中使用该内联脚本
【问题讨论】:
标签:
powershell
asp.net-core
iis
environment-variables
appcmd
【解决方案1】:
您可以将多个powershell写入一个文件并执行它。这是一个供参考的例子。
-
创建一个文件并命名为“xxx.ps1”。
-
编写多个 powershell 语句。
Add-WebConfigurationProperty -pspath 'MACHINE/WEBROOT/APPHOST/Core Web Site' -filter "system.webServer/aspNetCore/environmentVariables" -name "." -value @{name='foo';value='bar'}
Add-WebConfigurationProperty -pspath 'MACHINE/WEBROOT/APPHOST/Core Web Site' -filter "system.webServer/aspNetCore/environmentVariables" -name "." -value @{name='doc';value='qwe'}
Add-WebConfigurationProperty -pspath 'MACHINE/WEBROOT/APPHOST/Default Web Site' -filter "system.webServer/aspNetCore/environmentVariables" -name "." -value @{name='foo';value='bar'}
Write-Output ('Execute succeed')
编辑和删除环境值
Set-WebConfigurationProperty -pspath 'MACHINE/WEBROOT/APPHOST/Core Web Site' -filter "system.webServer/aspNetCore/environmentVariables/environmentVariable[@name='foo' and @value='bar']" -name "name" -value "foo2"
Set-WebConfigurationProperty -pspath 'MACHINE/WEBROOT/APPHOST/Core Web Site' -filter "system.webServer/aspNetCore/environmentVariables/environmentVariable[@name='foo' and @value='bar']" -name "value" -value "bar2"
Remove-WebConfigurationProperty -pspath 'MACHINE/WEBROOT/APPHOST/Core Web Site' -filter "system.webServer/aspNetCore/environmentVariables" -name "." -AtElement @{name='foo1';value='bar1'}
-
打开powershell执行文件(文件路径+名称)。
PS C:\WINDOWS\system32> & "D:\floder1\xxx.ps1"