Skip to content

Instantly share code, notes, and snippets.

View Vintaurus's full-sized avatar

Vincent Rothländer Vintaurus

View GitHub Profile
function Get-ScriptFiles{
#get all files
$query ="<View Scope='RecursiveAll'><Query><Where><Eq><FieldRef Name='FSObjType' /><Value Type='Integer'>0</Value></Eq></Where></Query><ViewFields><FieldRef Name='FileLeafRef' /><FieldRef Name='FileDirRef' /></ViewFields></View>"
$listItems = Get-PnPListItem -List $librarySiteAssets -Query $query
$libraryFolderPath = $librarySiteAssets + $scriptFolder
$folderPath = $PSScriptRoot + "\" + $folderFiles
foreach($listItem in $listItems){
#get all items in the folder 'Scripts'
if($listItem.FieldValues.FileDirRef -match $scriptFolder){
function Clear-PermissionsInProvisioningTemplate{
$template = Load-PnPProvisioningTemplate -Path $provisioningTemplateFilePath
$template.Security.AdditionalAdministrators.Clear()
$template.Security.AdditionalMembers.Clear()
$template.Security.AdditionalOwners.Clear()
$template.Security.AdditionalVisitors.Clear()
Save-PnPProvisioningTemplate -Out $rootsiteTemplateFileName -InputInstance $template -Force
}
function Get-WebParts($fileName){
$pageFile = $librarySitePages + "/" + $fileName
$web = Get-PnPWeb
$serverRelativePageUrl = $web.ServerRelativeUrl + $pageFile
$serverRelativePageUrl
#Get all web parts
$webParts = Get-PnPWebPart -ServerRelativePageUrl $serverRelativePageUrl
$count = 0
Connect-PnPOnline -Url $siteUrl -CurrentCredentials
Get-PnPProvisioningTemplate -Out $provisioningTemplateFilePath -IncludeSearchConfiguration -IncludeNativePublishingFiles -PersistPublishingFiles -PersistBrandingFiles -Force
Get-Page -fileName $pageFileName
Get-WebParts -fileName $pageFileName
Get-Page -fileName $myTaskPageFileName
Get-WebParts -fileName $myTaskPageFileName
Get-ScriptFiles
$siteUrl = "https://vinrotlab.io/"
$provisioningTemplateFileName = "startpage.xml"
$pageFileName = "welcome.aspx"
$librarySitePages = "SitePages"
$exportPath = "C:\export"
$provisioningTemplateFilePath = $exportPath + "/" + $provisioningTemplateFileName
function Get-Page($fileName) {
$pageFile = "/" + $librarySitePages + "/" + $fileName
function Set-WebPart($fileName, $webPart, $ZoneId, $ZoneIndex, $listName, $isRootWeb) {
$web = Get-PnPWeb -Includes "ParentWeb"
#Destination page where the web part will be added
$serverRelativePageUrl = $web.ServerRelativeUrl + "/SitePages/" + $fileName
#Location for all web part XML-files
$directory = Get-Location
#web part file path
$file = $directory.Path + "\" + $webPart
#create new web part file path for updating information
$newFile = $file.Replace(".xml", "_new.xml")
Connect-PnPOnline -Url $siteUrl -CurrentCredentials
Apply-PnPProvisioningTemplate -Path $rootsiteTemplateFileName -ClearNavigation
Set-WebPart -fileName $startPageFileName -webPart "webpart_Start.aspx_1.xml" -ZoneId "Header" -ZoneIndex 0
Set-WebPart -fileName $startPageFileName -webPart "webpart_Start.aspx_2.xml" -ZoneId "Header" -ZoneIndex 1
Set-WebPart -fileName $startPageFileName -webPart "webpart_Start.aspx_3.xml" -ZoneId "Header" -ZoneIndex 2
Set-WebPart -fileName $myTaskPageFileName -webPart "webpart_MyTasks.aspx_2.xml" -ZoneId "MiddleColumn" -ZoneIndex 0
Set-WebPart -fileName $myTaskPageFileName -webPart "webpart_MyTasks.aspx_3.xml" -ZoneId "LeftColumn" -ZoneIndex 0
Disconnect-PnPOnline
Apply-PnPProvisioningTemplate -Path $rootsiteTemplateFileName -ClearNavigation
string directoryReportFile = "D:\upload\Reports\DailyReport.rdl";
string reportFileName = Path.GetFileName(datasetFile);
string reportFullUrl = string.Concat("http://sharepoint/dashboard/Reports/", reportFileName)
SPList reportLibrary = <Reports>;
//First upload all report files
using(FileStream fileStream = File.OpenRead(directoryDatasetFile))
{
reportLibrary.Files.Add(datasetFileName, fileStream, true);
}
string directoryDatasetFile = "D:\upload\Report_Dataset.rsd";
string datasetFileName = Path.GetFileName(datasetFile);
string datasetFullUrl = string.Concat("http://sharepoint/dashboard/Data Connections/Datasets/", datasetFileName)
SPFolder folder = ....; //get folder "Datasets" from library "Data Connections"
using(FileStream fileStream = File.OpenRead(directoryDatasetFile))
{
folder.Files.Add(datasetFileName, fileStream, true);
}