如何使用PowerShell更改Web.Config文件的值?
我在PowerShell上工作。在这种情况下,我试图在PowerShell的帮助下更改现有配置文件的值,并且它运行良好。 但我面临一项新任务,如下所示,并在这里艰难地将PowerShell中的值转换为配置文件中的覆盖。对于这项任务,我引用了以下内容 如果有这样的代码:如何使用PowerShell更改Web.Config文件的值?,powershell,web-config,azure-pipelines-release-pipeline,Powershell,Web Config,Azure Pipelines Release Pipeline,我在PowerShell上工作。在这种情况下,我试图在PowerShell的帮助下更改现有配置文件的值,并且它运行良好。 但我面临一项新任务,如下所示,并在这里艰难地将PowerShell中的值转换为配置文件中的覆盖。对于这项任务,我引用了以下内容 如果有这样的代码: <?xml version="1.0" encoding="utf-8"?> <configuration> <configSections> <section name
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<section name="service.tasks" type="HRNetTaskService.TaskConfigurationSection, TaskService" />
</configSections>
<connectionStrings>
<add name="Production" connectionString="" providerName="System.Data.SqlClient" />
</connectionStrings>
<appSettings>
<add key="RestServiceUrl" value="XXXXXXXXXXX" />
</appSettings>
<service.tasks>
<tasks>
<!-- App.config specified tasks are always recurring starting from whenever The Service first schedules it -->
<task name="ExpireRequirements" taskName="ExpireRequirements" recurrenceFactor="1" recurrenceType="Days" executeTime="01:00">
<parameters>
<param key="entityID">00000000-0000-0000-0000-000000000E01</param>
</parameters>
</task>
<task name="RequestExpiredRequirementsTask" taskName="RequestExpiredRequirementsTask" recurrenceFactor="1" recurrenceType="Days" executeTime="01:00">
<parameters>
<param key="entityID">00000000-0000-0000-0000-000000000E01</param>
<param key="CopyBatchSize">50</param>
</parameters>
</task>
<task name="UpdateRequirementChecksEffectiveDateTask" taskName="UpdateRequirementChecksEffectiveDateTask" recurrenceFactor="1" recurrenceType="Days" executeTime="01:00">
<parameters>
<param key="entityID">00000000-0000-0000-0000-000000000E01</param>
</parameters>
</task>
<task name="PeoplenetMatchAssignmentRefresh" taskName="PeoplenetMatchAssignmentRefresh">
<parameters>
<param key="checkInterval">300000</param>
<param key="batchCount">100</param>
</parameters>
</task>
</tasks>
</service.tasks>
<system.net>
<connectionManagement>
<add address="*" maxconnection="48" />
</connectionManagement>
</system.net>
<system.runtime.remoting>
<application name="server">
<channels>
<channel ref="tcp" port="8090">
<serverProviders>
<formatter ref="soap" typeFilterLevel="Full" />
<formatter ref="binary" typeFilterLevel="Full" />
</serverProviders>
</channel>
</channels>
</application>
</system.runtime.remoting>
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
</configuration>
00000000-0000-0000-0000-000000000 E01
00000000-0000-0000-0000-000000000 E01
50
00000000-0000-0000-0000-000000000 E01
300000
100
如何更改service.tasks标记和system.runtime.remoting标记内的值。请参阅此代码以更新ExpireRequirements任务元素中的entityID值(在参数中指定配置文件路径:
-webCofig xxx
):
并可能有助于提供web.config文件的全部代码。@开始更新我的问题后会发生什么
param(
[string]$webConfig
)
$doc = (Get-Content $webConfig) -as [Xml]
$root=$doc.get_DocumentElement()
$ExpireRequirementsTask=$root."service.tasks"."tasks"."task" | where {$_.name -eq 'ExpireRequirements'}
Write-Output $ExpireRequirementsTask
$ExpireRequirementsTaskEntityID=$ExpireRequirementsTask."parameters"."param" | where {$_.key -eq 'entityID'}
Write-Output $ExpireRequirementsTaskEntityID
$ExpireRequirementsTaskEntityID.InnerText="11111111-0000-0000-0000-000000000E01"
$doc.Save($webConfig)