通过脚本设置IIS环境变量

Set IIS environment variable through script

我想add/delete/edit IIS,asp.net核心网站环境变量,通过appcmd/batch文件或PowerShell脚本,以自动化的方式,不只是一个网站的变量,而是批量操作。虽然我可以使用 IIS UI

虽然我可以使用appcmd添加环境变量

appcmd.exe reset config "variable" -section:system.webServer/aspNetCore /+"environmentVariables.[name='foo',value='bar']"

我找不到 add/delete/update 多个网站环境值的方法,只需单击一个按钮而不是进入每个网站的配置设置来设置多个值,之后我可以在 Azure DevOps 管道中使用该内联脚本

您可以将多个powershell写入一个文件并执行。这里有一个例子供参考。

  1. 创建一个文件并命名为“xxx.ps1”。

  2. 编写多个 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'}
    
  3. 打开powershell执行文件(文件路径+名称)。

    PS C:\WINDOWS\system32> & "D:\floder1\xxx.ps1"