Param( [parameter(Mandatory=$true, Position=1)] [alias("webPath")] $webUrl , [parameter(Mandatory=$true, Position=1)] [alias("DocumentLibraryName")] $docName ) try{ $spWeb=Get-SPWeb $webUrl $featureGuid="94c94ca6-b32f-4da9-a9e3-1f3d343d7ecb" $spDoc=$spWeb.Lists[$docName] $feature=Get-SPFeature -Web $webUrl | where {$_.Id -eq $featureGuid} if($feature -eq $null) { Enable-SPFeature -identity $feaureGuid -URL $webUrl Write-Host "feature activated successfully" } else { Write-Host "Feature PublishingWeb has been activated" } $spDoc.EnableModeration=$true $spDoc.EnableMinorVersions=$true $spDoc.DraftVersionVisibility=2 $spDoc.Update(); # To enable Scheduling in the list [Microsoft.SharePoint.Publishing.PublishingWeb]::EnableScheduling($spDoc) $spDoc.Update() $scheduleFields = @{"PublishingStartDate" = "Scheduling Start Date"; "PublishingExpirationDate" = "Scheduling End Date"} foreach($contentType in $spDoc.ContentTypes) { if($contentType.Id.ToString().StartsWith("0x0120")) { Write-Host "Skip the content folder" continue; } foreach($scheduleField in $scheduleFields.GetEnumerator()) { Write-Host $scheduleField.Value if(-Not $contentType.Fields.ContainsFieldWithStaticName($scheduleField.Name)) { $listField=$spWeb.Site.RootWeb.Fields[$scheduleField.Value]; $spFieldLink=New-Object Microsoft.SharePoint.SPFieldLink($listField); Write-Host "Add" $scheduleField.Value "for Content Type" $contentType.Name $contentType.FieldLinks.Add($spFieldLink) } } $contentType.Update() $spDoc.Update() } $spWeb.Dispose(); Write-Host "Done" -ForegroundColor Green } catch { $ErrorMessage = $_.Exception.Message Write-Host $spWeb.Title $ErrorMessage }
powershell enable items scheduling
最新推荐文章于 2021-11-12 15:45:28 发布