我正在尝试使用powershell脚本为sharepoint web应用程序使用以下代码更新web.conig
$PublicWebApp = Get-SPWebApplication http://my_website
$NewMod = New-Object Microsoft.SharePoint.Administration.SPWebConfigModification
$NewMod.name = "add[@key='STSSignInURL']"
$NewMod.path = "/configuration/appSettings"
$NewMod.value = "<add key='STSSignInURL' value='https://mydomain:443/v2/wsfederation?wa=wsignin1.0&wtrealm=http%3a%2f%2ffra1fv-na%2f' />"
$NewMod.owner = "Owner"
$NewMod.sequence = 0
$NewMod.type = Microsoft.SharePoint.Administration.SPWebConfigModification+SPWebConfigModificationType]::EnsureChildNode
$PublicWebApp.WebConfigModifications.Add($NewMod)
$PublicWebApp.Update()
$PublicWebApp.Parent.ApplyWebConfigModifications()
但我得到例外:
使用“0”参数调用“ApplyWebConfigModifications”的异常:“=”是一个意外的令牌。
我设置的值是一个http编码的网址,我只会遇到编码网址的问题。对于其他纯文本,代码工作正常。 有没有解决方法呢?
答案 0 :(得分:0)
mod的名称应该是这样的:
$NewMod.name = "add[@key='STSSignInURL'][@value]='https://mydomain:443/v2/wsfederation?wa=wsignin1.0&wtrealm=http%3a%2f%2ffra1fv-na%2f']"
答案 1 :(得分:0)
我想我找到了答案。问题出在&#34;&amp; wtrealm&#34;&amp; amp;使用[System.Security.SecurityElement] :: Escape()方法解决了这个问题。