private775 icon

SP2010: update copyrights info in master pages (Regex)

private775 | PRO | 12/30/15 08:42:13 PM UTC | 0 ⭐ | 10136 👁️ | Never ⏰ | []
PostScript |

2.53 KB

|

None

|

0 👍

/

0 👎

$webApp = "http://acme"
$crRx = "Copyright\s*201[0-5]"
$rplTxt = "Copyright 2016"
 
$siteColls = get-spsite -Limit ALL -WebApplication $webApp
 
function ProcessSite([Microsoft.SharePoint.SPSite]$site){
    $site.AllWebs|%{ProcessWeb $_.Url}
}
 
function ProcessWeb([string]$webUrl){
    $web = get-spweb $webUrl
    write-host "Processing: $($web.Url)"
    $wSRUrl = $web.ServerRelativeUrl
    if($wSRUrl -eq "/"){
        $wSRUrl = ""
 
    }
    $catalogRx = "^$($wSRUrl)/_catalogs/masterpage"
    $masterUrl = $web.MasterUrl
    if($masterUrl -match $catalogRx){
            $tempFileName =  [System.IO.Path]::GetTempFileName()
 
            $f = $web.GetFile($masterUrl)
            if($f.Exists){
                    write-host "** $($masterUrl): $($f.Length)"
                    $ss = $f.OpenBinaryStream([Microsoft.SharePoint.SPOpenBinaryOptions]::SkipVirusScan)
                    $bytes = New-Object Byte[] $($ss.Length)
                    $ss.Read($bytes, 0, $ss.Length)
                    $ss.Close()
                    $content = [System.Text.Encoding]::UTF8.GetString($bytes)
                    if($content -ne $null -and $content -ne ""){
                            if($content -match $crRx){
                                    write-host "!!!!Found Copyrights"
                                    $newContent = $content -replace $crRx,$rplTxt
                                    $newContentBytes = [System.Text.Encoding]::UTF8.GetBytes($newContent)
                                    $f = $web.GetFile($masterUrl)
                                    if($f.RequiresCheckout){
                                        $f.CheckOut()
                                    }
                                    $f.SaveBinary($newContentBytes)
                                    if($f.RequiresCheckout){
                                        $f.CheckIn("Copyrights update", [ Microsoft.SharePoint.SPCheckinType]::MajorCheckIn)
                                        $f.Approve("Copyrights update")
                                    }
 
 
                                } else {
                                    write-host "----No Copyrights"
                                }
                        } else {
                    write-host "The GetFile function returned empty string"
                        }
                } else {
                    write-host "File not exists"
                }
 
        } else {
            write-host "No local MasterPage"
        }
}
 
 
$siteColls|%{ProcessSite $_}

Comments

  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎