param(
[Parameter(Mandatory=$true, ValueFromPipeline=$true, Position=0)]
[Microsoft.SharePoint.PowerShell.SPWebApplicationPipeBind]
$WebApplication
)
process {
$WebApp = $WebApplication.Read()
$configMod1 = New-Object Microsoft.SharePoint.Administration.SPWebConfigModification
$configMod1.Path = "configuration/system.web/httpRuntime"
$configMod1.Name = "maxRequestLength"
$configMod1.Value = "2097152"
$configMod1.Sequence = 0
$configMod1.Owner = "Bug84563"
## SPWebConfigModificationType.EnsureChildNode -> 0
## SPWebConfigModificationType.EnsureAttribute -> 1
## SPWebConfigModificationType.EnsureSection -> 2
$configMod1.Type = 1
$configMod2 = New-Object Microsoft.SharePoint.Administration.SPWebConfigModification
$configMod2.Path = "configuration/system.web/httpRuntime"
$configMod2.Name = "executionTimeout"
$configMod2.Value = "99999"
$configMod2.Sequence = 0
$configMod2.Owner = "Bug84563"
## SPWebConfigModificationType.EnsureChildNode -> 0
## SPWebConfigModificationType.EnsureAttribute -> 1
## SPWebConfigModificationType.EnsureSection -> 2
$configMod2.Type = 1
$webApp.WebConfigModifications.Clear()
$WebApp.WebConfigModifications.Add( $configMod1 )
$WebApp.WebConfigModifications.Add( $configMod2 )
$WebApp.Update()
$WebApp.Parent.ApplyWebConfigModifications()
Write-Host "Done" -ForegroundColor Green
}
遇到的问题:Exception calling "ApplyWebConfigModifications" with "0" argument(s): "Expression must evaluate to a node-set."
At line:69 char:5+ $WebApp.Parent.ApplyWebConfigModifications()
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [], MethodInvocationException
+ FullyQualifiedErrorId : XPathException
解决方法:try $webApp.WebConfigModifications.Clear() before $WebApp.WebConfigModifications.Add( $configMod1 )