0

Я хочу добавить значение двух ключей в appSetting в файле sharepoint web.config.Ошибка при выполнении сценария powershell для добавления двух ключей в appSettings

Я нашел хороший пример модифицирующего blobcache атрибут, используя следующую ссылку,

http://blogs.technet.com/b/heyscriptingguy/archive/2010/09/14/use-powershell-to-script-changes-to-the-sharepoint-web-config-file.aspx

, а также следующую ссылку, где я могу добавить новые ключи.

http://farhanfaiz.wordpress.com/2011/09/07/sharepoint-2010-powershell-script-to-add-in-web-config/

И вот мой код, чтобы добавить два ключа в Appsetting.

function AddAppSettingKey { 

param( 

    [Parameter(Mandatory=$true, ValueFromPipeline=$true, Position=0)] 

    [Microsoft.SharePoint.PowerShell.SPWebApplicationPipeBind] 

    $WebApplication 


) 

process { 

    Write-Host "Modification starts..." -ForegroundColor Green 
    $WebApp = $WebApplication.Read() 
    Write-Host $WebApp 

    $configMod1 = New-Object Microsoft.SharePoint.Administration.SPWebConfigModification 
    $configMod1.Path = "configuration/appSettings" 
    $configMod1.Name = "add[@name='key']" 
    $configMod1.Value = "<add key= 'RedirectToPage' value='Main.aspx' />" 
    $configMod1.Sequence = 0 
    $configMod1.Type = 1 
    $configMod1.Owner = "AppSettingMod" 

    $configMod2 = New-Object Microsoft.SharePoint.Administration.SPWebConfigModification 
    $configMod2.Path = "configuration/appSettings" 
    $configMod2.Name = "add[@name='key']" 
    $configMod2.Value = "<add key= 'isProd' value='false' />" 
    $configMod2.Sequence = 0 
    $configMod2.Type = 1 
    $configMod2.Owner = "AppSettingMod" 

    $WebApp.WebConfigModifications.Add($configMod1) 
    $WebApp.WebConfigModifications.Add($configMod2) 
    $WebApp.Update() 
    $WebApp.Parent.ApplyWebConfigModifications() 

    Write-Host "Done......" -ForegroundColor Cyan 

    } 

} 

Но моя проблема в том, когда я выполнить код, я получаю следующее сообщение об ошибке:

Exception calling "ApplyWebConfigModifications" with "0" argument(s): "'/' is a 
n unexpected token. 

Любой вход будет очень полезным.

ответ

0

Я вижу «.Type = 1», который является SPWebConfigModificationType.EnsureAttribute, в то время как вы должны использовать SPWebConfigModificationType.EnsureChildNode(0), я полагаю. (.Type = 0) и повторите попытку.