Я пытаюсь обновить web.conig с помощью сценария PowerShell для веб-приложения sharepoint, используя приведенный ниже код

$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()

Но я получаю исключение:

Исключение, вызывающее «ApplyWebConfigModifications» с аргументом (ами) «0»: «=» является неожиданным токеном.

Значение, которое я устанавливаю, является URL-адресом в кодировке http, и я сталкиваюсь с этой проблемой только с URL-адресом в кодировке. Для другого простого текста код работает нормально. Есть ли обходной путь для этого?

0
Anwer Ali 18 Фев 2014 в 18:58

2 ответа

Лучший ответ

Думаю, я нашел ответ. Проблема заключалась в амперсанде в "& wtrealm" с использованием метода [System.Security.SecurityElement] :: Escape (). Проблема была решена.

0
Anwer Ali 26 Фев 2014 в 12:10

Если название мода будет примерно таким:

$NewMod.name = "add[@key='STSSignInURL'][@value]='https://mydomain:443/v2/wsfederation?wa=wsignin1.0&wtrealm=http%3a%2f%2ffra1fv-na%2f']"
0
websch01ar 18 Фев 2014 в 15:08