sharepoint server
2064 TopicsSharePoint 2019 Crawler not working on one site.
I have a 2019 on prem SharePoint server running. I've not had an issue with crawling until recently. For some reason all crawling quit working after a reboot of the server so I just deleted the Search Service app and created a new one. No issues doing that. After assigning permissions and making sure the service was running. I checked the Crawl log. We have 3 SharePoint Sites that are listed in the Content Sources for Crawling. http://servername:2121 - site2 http://servername:17195 - mysites http://servername:39064 - site1 Crawling works perfect for site2 and mysites. The issue is with site1 I get the following warning for it Item not crawled due to one of the following reasons: Preventive crawl rule; Specified content source hops/depth exceeded; URL has query string parameter; Required protocol handler not found; Preventive robots directive. ( This item was deleted because it was excluded by a crawl rule. ) I've searched and tried just about everything I can find. Site1 and Site2 are almost identical so I don't understand why it works for one but not the other. I can browse to either just fine. Any suggestions on what else to look at? Things I've Tried: I made sure there are no crawl rules I created a new crawl rule to include the affected URL No Robots.txt file at all Created new content source with just site1 in it to test19Views0likes0CommentsSharepoint 2016 certificat expiration
Hello, We are running a SharePoint 2016 farm composed of: 2 Database Servers 1 App Server 1 Search Server 1 Web Front-End Server 1 Office Online Server After checking the environment, I noticed that only the Web Front-End server is using the certificate that will expire in June. The App Server is using an old expired certificate, the Search Server is configured only with HTTP, and the Office Online Server is using a different certificate. Is there any documented procedure describing the steps required to renew the expired certificates in a SharePoint 2016 farm and on which server we should install the new certificat ? We are using Microsoft CA for certificate management.23Views0likes0CommentsHow to hide the Modify this view and Create View as per users available in groups
Hi All, I have classic view of SharePoint in list/libraries. I have group(for Managers). I just want want to show and hide the Create View/Modify View/Modify this view depends on users available in group. If user available in group(for Managers) then they can do anything like Create View/Modify View/Modify this view but if user is not a part of the group(for Managers) then they can not modify any Public views but the can create Personal view. Is there any way how I can achieve this functionality?134Views0likes1CommentSharePoint Video Playback Quality Defaults to 480p – Horrendous
I manage multimedia training for over 600 locations and two distribution centers, supporting nearly 10,000 team members. We have made a significant investment in producing high-quality training content through professional equipment, structured scripting, and dedicated production and editing time. However, once videos are uploaded to SharePoint, the default playback quality often degrades the experience to what appears to be approximately 480p. As a result, professionally produced content can look noticeably poor on initial playback. Many of our store-level team members are not in a position to manually adjust playback settings, so the default experience matters. The source files are high resolution, but the default playback does not reflect that quality. This also creates issues when leadership reviews training content, because the playback quality can reflect poorly on the production even though the original video is clear. We moved away from third-party hosting due to ad exposure during onboarding and the need for a controlled internal platform. We are intentionally using SharePoint and Stream as part of our existing Microsoft 365 ecosystem for scalability, governance, and centralized access. Introducing additional paid hosting platforms or external streaming solutions is not a direction we are pursuing. From an enterprise training standpoint, defaulting to low-resolution playback undermines engagement and credibility. Are there plans to allow administrators to define a default playback resolution for SharePoint or Stream videos? Are there recommended encoding settings that influence the initial playback quality more reliably? Are there roadmap updates around improving adaptive streaming behavior or default resolution selection? Any guidance or insight would be appreciated.121Views0likes1CommentTrustedMissingIdentityClaimSource - OIDC
Hello, Good day! I'm setting up OIDC connection thru SharePoint subscription edition referring to the below link https://learn.microsoft.com/en-us/SharePoint/security-for-sharepoint-server/set-up-oidc-auth-in-sharepoint-server-with-msaad I was able to get in thru Entra (that means OIDC connection works) but sharepoint return me this exception when getting in to site collection. _layouts/15/_login/default.aspx?errorCode=TrustedMissingIdentityClaimSource=https%3A%2F%2FSPdemo.local%2F_layouts%2F15%2FAuthenticate.aspx%3FSource%3D%252F Workaround suggested done like reconfigured SPTrust, certificates and SharePoint Web application multiple times but yet still no avail. Unfortunately, this have been greyed out for me as i cannot find a concrete resolution. Is anyone have experience the same exception, or perhaps share thoughts what are missing here. Thank you!55Views0likes0CommentsSharepoint link shared with me does not seem to be working
Hi, With my new job I was shared a link to my personal gmail address for a folder of documents I need to become familiar with. This was done with an invite link to a Sharepoint folder the documents are kept in to my gmail. When I click the link it prompts me to log into my outlook account. When I log into my account with the same gmail address as the one the link was shared to I do not see the folder that was shared to me. I tried logging into my gmail on outlook and clicking the link again, to the same result. Both times what I see is a web based outlook page with no emails, no documents shared on the “shared with me” tab of one drive and the only documents present are the cloud backup of my personal computer on one drive. I tried downloading the sharepoint app and logging in this way, but it says I need a school or work email and I can’t log in with a personal email address. It’s important I be able to view these documents. I would appreciate any help telling me how to access them.1KViews1like2CommentsSharepoint Listas Columna Autonumerada
Buenas a todos. Necesitaria crear una lista en la cual exista una columna que concatene la primer letra de 2 columnas anteriores y realice una numeración consecutiva. Les dejo una imagen de como sería esta numeracion necesaria. Es decir que necesitaria un indice por cada combinacion de letras Supongo debo usar alguna formula. Alguien me podrá ayudar? Saludos Diego4.1KViews0likes2CommentsAutomating SharePoint Site Status Reporting with PowerShell
Introduction Migrating Microsoft 365 workloads is a critical step during organizational transitions such as mergers or de‑mergers. SharePoint site collections often contain business‑critical data, and ensuring visibility into their readiness is essential for a smooth migration. To address this, I developed a PowerShell script that automatically generates a SharePoint Site Status Report, categorizing sites into Active, Read‑Only, and Offline. This report provides administrators and migration engineers with actionable insights to plan and execute migrations confidently. Why This Matters Visibility: Quickly assess site readiness across all web applications. Governance: Ensure compliance and proper access controls. Efficiency: Automate reporting to reduce manual effort. Risk Mitigation: Identify offline or read‑only sites before migration. How It Works The script leverages the SharePoint Management Shell and runs under the Farm Account with elevated permissions. It performs the following steps: Loads SharePoint cmdlets. Iterates through all web applications. Categorizes sites into Active, Read‑Only, and Offline. Compiles results into a structured CSV/Excel/HTML report. Sends the report via email to stakeholders. Key PowerShell Cmdlets Add-PSSnapin Microsoft.SharePoint.PowerShell Get-SPWebApplication Get-SPSite -WebApplication -Limit All $site.ReadOnly / $site.Status Export-Csv Send-MailMessage Parameters to Replace Before running the script, update these placeholders: SMTP Server → mail.company.com → replace with your mail server Sender Address ($from) → email address removed for privacy reasons → replace with reporting account Recipient Address ($to) → email address removed for privacy reasons → replace with stakeholder distribution list Email Subject ($subject) → "SharePoint Site Status Report" → customize for clarity Report File Path ($csvPath) → C:\Reports\SharePoint_SiteStatusReport.csv → replace with desired location Web Application URLs → ensure correct farm references Execution Context → must run under Farm Account Conclusion This automated reporting solution provides clarity, governance, and efficiency during SharePoint migrations. By categorizing sites and delivering structured reports, administrators can prioritize tasks, mitigate risks, and ensure a seamless transition to Microsoft 365. Code: #Adding Snapin for SharePoint #Add-PSSnapin Microsoft.SharePoint.Powershell -ErrorAction SilentlyContinue $TodayDate =Get-Date Write-Host $TodayDate $FileName = "C:\Results_Active_WebSites.txt" if (Test-Path $FileName) { Remove-Item $FileName } $FileName = "C:\Results_NoAccess_WebSites.txt" if (Test-Path $FileName) { Remove-Item $FileName } $FileName = "C:\Results_Readonly_WebSites.txt" if (Test-Path $FileName) { Remove-Item $FileName } $FileName = "C:\Results_Active_WebSites.txt" if (Test-Path $FileName) { Remove-Item $FileName } $FileName = "C:\Results_Readonly_WebSites.txt" if (Test-Path $FileName) { Remove-Item $FileName } $FileName = "C:\Results_NoAccess_WebSites.txt" if (Test-Path $FileName) { Remove-Item $FileName } $FileName = "C:\Results_Active_WebSites.txt" if (Test-Path $FileName) { Remove-Item $FileName } $FileName = "C:\Results_Readonly_WebSites.txt" if (Test-Path $FileName) { Remove-Item $FileName } $FileName = "C:\Results_NoAccess_WebSites.txt" if (Test-Path $FileName) { Remove-Item $FileName } $FileName = "C:\Results_Active_WebSites.txt" if (Test-Path $FileName) { Remove-Item $FileName } $FileName = "C:\Results_Readonly_WebSites.txt" if (Test-Path $FileName) { Remove-Item $FileName } $FileName = "C:\Results_NoAccess_WebSites.txt" if (Test-Path $FileName) { Remove-Item $FileName } ##My Connect # $FileName = "C:\Results_Active_WebSites.txt" if (Test-Path $FileName) { Remove-Item $FileName } # $FileName = "C:\Results_Readonly_WebSites.txt" if (Test-Path $FileName) { Remove-Item $FileName } # $FileName = "C:\Results_NoAccess_WebSites.txt" if (Test-Path $FileName) { Remove-Item $FileName } # # WebSites $FileName = "C:\Results_Active_WebSites.txt" if (Test-Path $FileName) { Remove-Item $FileName } # $FileName = "C:\Results_Readonly_WebSites.txt" if (Test-Path $FileName) { Remove-Item $FileName } # $FileName = "C:\Results_NoAccess_WebSites.txt" if (Test-Path $FileName) { Remove-Item $FileName } # ##Websites # $FileName = "C:\Results_Active_WebSites.txt" if (Test-Path $FileName) { Remove-Item $FileName } # $FileName = "C:\Results_Readonly_WebSites.txt" if (Test-Path $FileName) { Remove-Item $FileName } # $FileName = "C:\Results_NoAccess_WebSites.txt" if (Test-Path $FileName) { Remove-Item $FileName } # ## Websites # $FileName = "C:\Results_Active_WebSites.txt" if (Test-Path $FileName) { Remove-Item $FileName } # $FileName = "C:\Results_Readonly_WebSites.txt" if (Test-Path $FileName) { Remove-Item $FileName } # $FileName = "C:\Results_NoAccess_WebSites.txt" if (Test-Path $FileName) { Remove-Item $FileName } # ##FGC-SalesShareWebSites # $FileName = "C:\Results_Active_WebSites.txt" if (Test-Path $FileName) { Remove-Item $FileName } # $FileName = "C:\Results_Readonly_WebSites.txt" if (Test-Path $FileName) { Remove-Item $FileName } # $FileName = "C:\Results_NoAccess_WebSites.txt" if (Test-Path $FileName) { Remove-Item $FileName } ##WebSites # $FileName = "C:\Results_Active_WebSites.txt" if (Test-Path $FileName) { Remove-Item $FileName } # $FileName = "C:\Results_Readonly_WebSites.txt" if (Test-Path $FileName) { Remove-Item $FileName } # $FileName = "C:\Results_NoAccess_WebSites.txt" if (Test-Path $FileName) { Remove-Item $FileName } ##WebSites # $FileName = "C:\Results_Active_WebSites.txt" if (Test-Path $FileName) { Remove-Item $FileName } # $FileName = "C:\Results_Readonly_WebSites.txt" if (Test-Path $FileName) { Remove-Item $FileName } # $FileName = "C:\Results_NoAccess_WebSites.txt" if (Test-Path $FileName) { Remove-Item $FileName } ##WebSites # $FileName = "C:\Results_Active_WebSites.txt" if (Test-Path $FileName) { Remove-Item $FileName } # $FileName = "C:\Results_Readonly_WebSites.txt" if (Test-Path $FileName) { Remove-Item $FileName } # $FileName = "C:\Results_NoAccess_WebSites.txt" if (Test-Path $FileName) { Remove-Item $FileName } Add-PSSnapin Microsoft.SharePoint.Powershell [string[]]$WebapplicationList = "" Foreach($Webapp in $WebapplicationList) { Write-Host $Webapp $displaywebappname=Get-SPWebApplication $webapp $webappname=$displaywebappname.name Write-Host $webappname $Sites = Get-SPWebApplication $webapp | Get-SPSite -limit all | foreach { if ($_.ReadOnly -eq $false -and $_.ReadLocked -eq $false -and $_.WriteLocked -eq $false) { $Result =”Site is Active” $save2= "Results_Active_${webappname}.txt" #Write-Host $save2 $saveCSVactive="Results_Active_${webappname}.csv" $_.RootWeb.Title +”`t” + $_.URL + “`t” + $Result | Out-File $save2 -append #$_.RootWeb.Title +”`t” + $_.URL + “`t” + $Result | Out-File $saveCSVactive -Append } elseif ($_.ReadOnly -eq $true -and $_.ReadLocked -eq $false -and $_.WriteLocked -eq $true) { $Result = “Site is Read-Only” $save1= "Results_Readonly_${webappname}.txt" $_.RootWeb.Title +”`t” + $_.URL + “`t” + $Result | Out-File $save1 -Append } elseif ($_.ReadOnly -eq $null -and $_.ReadLocked -eq $null -and $_.WriteLocked -eq $null) { $Result=”Site status is No Access” $save3= "Results_NoAccess_${webappname}.txt" #$_.RootWeb.Title +”`t” + $_.URL + “`t” + $Result | Out-File $save3 -Append $_.URL +”`t” + $_.RootWeb.Title + “`t” + $Result | Out-File $save3 -Append } } } $TodayDate =Get-Date Write-Host $TodayDate sleep -Seconds 100 #Active Sites WebSites $ActiveSites_Websites= Get-Content -Path "C:\Results_Active_WebSites.txt" | Measure-Object Write-Host "Websites Active sites" $ActiveSites_Websites.count $Websites_ActiveSitescount = $ActiveSites_Websites.count #Read-only Sites WebSites $ReadonlySites_Websites=Get-Content -Path "C:\Results_Readonly_WebSites.txt" | Measure-Object Write-Host "Websites Read-only Sites" $ReadonlySites_Websites.count $Websites_Readonlysitescount=$ReadonlySites_Websites.count #No-Access Sites WebSites $NoaccessSies_Websites= Get-Content -Path "C:\Results_NoAccess_WebSites.txt" | Measure-Object Write-Host "Websites No-Access Sites" $NoaccessSies_Websites.count $Websites_NoAccessSitesCount=$NoaccessSies_Websites.count #Active Sites WebSites $ActiveSites_WebSites= Get-Content -Path "C:\Results_Active_WebSites.txt" | Measure-Object Write-Host "WebSites Active sites" $ActiveSites_WebSites.count $WebSites_ActiveSitescount = $ActiveSites_WebSites.count #Read-only Sites WebSites #$Readonlysite_WebSites =Get-Content -Path C:\Results_Readonly_Websites.txt | Measure-Object #If($Readonlysite_WebSites -eq $null) #{ #$WebSites_Readonlysitecount ="0" #} #else{ $Readonlysite_WebSites =Get-Content -Path "C:\Results_Readonly_WebSites.txt" | Measure-Object Write-Host "WebSites Readonly Sites" $Readonlysite_WebSites.count $WebSites_ReadonlySitesCount= $Readonlysite_WebSites.count # Write-Host $WebSites_ReadonlySitesCount #} #WebSites - No Access Sites #$NoAccessSites_WebSites= Get-Content -Path "C:\Results_NoAccess_Websites.txt" $NoAccessSites_WebSites= Get-Content -Path "C:\Results_NoAccess_WebSites.txt" | Measure-Object Write-Host "WebSites NoAccess Sites" $NoAccessSites_WebSites.count # #Write-Host "Site Count $($NoAccessSites_WebSites.Count)" $WebSites_NoAccessSitesCount= $NoAccessSites_WebSites.count ################################################################## # #Active Sites Websites $ActiveSites_WebSites= Get-Content -Path "C:\Results_Active_Websites.txt" | Measure-Object Write-Host "WebSites Active sites" $ActiveSites_WebSites.count $WebSites_ActiveSitescount = $ActiveSites_WebSites.count # # #Read-only Sites WebSites $ReadonlySites_WebSites=Get-Content -Path "C:\Results_Readonly_Websites.txt" | Measure-Object Write-Host "WebSites Read-only Sites" $ReadonlySites_WebSites.count $WebSites_Readonlysitescount=$ReadonlySites_WebSites.count # # #No-Access Sites WebSites $NoaccessSies_WebSites= Get-Content -Path "C:\Results_NoAccess_Websites.txt" | Measure-Object Write-Host "WebSites No-Access Sites" $NoaccessSies_WebSites.count $WebSites_NoAccessSitesCount=$NoaccessSies_WebSites.count # # #Active Sites Websites $ActiveSites_WebSites= Get-Content -Path "C:\Results_Active_Websites.txt" | Measure-Object Write-Host "WebSites Active sites" $ActiveSites_WebSites.count $WebSites_ActiveSitescount = $ActiveSites_WebSites.count # # #Read-only Sites WebSites $ReadonlySites_WebSites=Get-Content -Path "C:\Results_Readonly_Websites.txt" | Measure-Object Write-Host "WebSites Read-only Sites" $ReadonlySites_WebSites.count $WebSites_Readonlysitescount=$ReadonlySites_WebSites.count # # #No-Access Sites WebSites $NoaccessSies_WebSites= Get-Content -Path "C:\Prod\Results_NoAccess_Websites.txt" | Measure-Object Write-Host "WebSites No-Access Sites" $NoaccessSies_WebSites.count $WebSites_NoAccessSitesCount=$NoaccessSies_WebSites.count # # #WebSites # # #Active Sites WebSites ##$ActiveSites_WebSites= Get-Content -Path "C:\Results_Active_WebSites.txt" | Measure-Object ##Write-Host "WebSites Active sites" $ActiveSites_WebSites.count ##$WebSites_ActiveSitescount = $ActiveSites_WebSites.count # # #Read-only Sites WebSites ##$ReadonlySites_WebSites=Get-Content -Path "C:\Results_Readonly_WebSites.txt" | Measure-Object ##Write-Host "WebSites Read-only Sites" $ReadonlySites_WebSites.count ##$WebSites_Readonlysitescount=$ReadonlySites_WebSites.count # # #No-Access Sites WebSites ##$NoaccessSies_WebSites= Get-Content -Path "C:\Results_NoAccess_WebSites" | Measure-Object ##Write-Host "WebSites No-Access Sites" $NoaccessSies_WebSites.count ##$WebSites_NoAccessSitesCount=$NoaccessSies_WebSites.count # # #WebSites # # #Active Sites WebSites ##$ActiveSites_WebSites= Get-Content -Path "C:\Results_Active_WebSites.txt" | Measure-Object ##Write-Host "WebSites Active sites" $ActiveSites_WebSites.count ##$WebSites_ActiveSitescount = $ActiveSites_WebSites.count # # #Read-only Sites WebSites ##$ReadonlySites_WebSites=Get-Content -Path "C:\Results_Readonly_WebSites.txt" | Measure-Object ##Write-Host "WebSites Web Read-only Sites" $ReadonlySites_WebSites.count ##$WebSites_Readonlysitescount=$ReadonlySites_WebSites.count # # #No-Access Sites WebSites ##$NoaccessSies_WebSites= Get-Content -Path "C:\Results_NoAccess_WebSites.txt" | Measure-Object ##Write-Host "WebSites Web No-Access Sites" $NoaccessSies_WebSites.count ##$WebSites_NoAccessSitesCount=$NoaccessSies_WebSites.count # # #Websites # # #Active Sites Websites ##$ActiveSites_Websites= Get-Content -Path "C:\Results_Active_WebSites.txt" | Measure-Object ##Write-Host "Websites Active sites" $ActiveSites_Websites.count ##$Websites_ActiveSitescount = $ActiveSites_Websites.count # # #Read-only Sites Websites ##$ReadonlySites_Websites=Get-Content -Path "C:\Results_Readonly_WebSites.txt" | Measure-Object ##Write-Host "Websites Read-only Sites" $ReadonlySites_Websites.count ##$Websites_Readonlysitescount=$ReadonlySites_Websites.count # # #No-Access Sites Websites ##$NoaccessSies_Websites= Get-Content -Path "C:\Results_NoAccess_WebSites.txt" | Measure-Object ##Write-Host "Websites No-Access Sites" $NoaccessSies_Websites.count ##$Websites_NoAccessSitesCount=$NoaccessSies_Websites.count # # #Websites # # #Active Sites Websites ##$ActiveSites_Websites= Get-Content -Path "C:\Results_Active_WebSites.txt" | Measure-Object ##Write-Host "Websites Active sites" $ActiveSites_Websites.count ##$Websites_ActiveSitescount = $ActiveSites_Websites.count # # #Read-only Sites Websites ##$ReadonlySites_Websites=Get-Content -Path "C:\Results_Readonly_WebSites.txt" | Measure-Object ##Write-Host "Websites Read-only Sites" $ReadonlySites_Websites.count ##$Websites_Readonlysitescount= $ReadonlySites_Websites.count # # #No-Access Sites Websites ##$NoaccessSies_Websites= Get-Content -Path "C:\Results_NoAccess_WebSites.txt" | Measure-Object ##Write-Host "Websites No-Access Sites" $$NoaccessSies_Websites.count ##$Websites_NoAccessSitesCount=$NoaccessSies_Websites.count # # #Websites # # #Active Sites Websites ##$ActiveSites_Websites= Get-Content -Path "C:\Results_Active_WebSites.txt" | Measure-Object ##Write-Host "Websites Active sites" $ActiveSites_Websites.count ##$Websites_ActiveSitescount = $ActiveSites_Websites.count # # #Read-only Sites Websites ##$ReadonlySites_Websites=Get-Content -Path "C:\Results_Readonly_WebSites.txt" | Measure-Object ##Write-Host "Websites Read-only Sites" $ReadonlySites_Websites.count ##$Websites_Readonlysitescount=$ReadonlySites_Websites.count # # #No-Access Sites Websites ##$NoaccessSies_Websites= Get-Content -Path "C:\Results_NoAccess_WebSites.txt" | Measure-Object ##Write-Host "Websites No-Access Sites" $NoaccessSies_Websites.count ##$Websites_NoAccessSitesCount=$NoaccessSies_Websites.count # #WebSites # # #Active Sites Websites ##$ActiveSites_Websites= Get-Content -Path "C:\Results_Active_WebSites.txt" | Measure-Object ##Write-Host "Websites Active sites" $ActiveSites_Websites.count ##$Websites_ActiveSitescount = $ActiveSites_Websites.count # # #Read-only Sites Websites ##$ReadonlySites_Websites= Get-Content -Path "C:\Results_Readonly_WebSites.txt" | Measure-Object ##Write-Host "Websites Read-only Sites" $ReadonlySites_Websites.count ##$Websites_Readonlysitescount=$ReadonlySites_Websites.count # # #No-Access Sites Websites ##$NoaccessSies_Websites= Get-Content -Path "C:\Results_NoAccess_WebSites.txt" | Measure-Object ##Write-Host "Websites No-Access Sites" $NoaccessSies_Websites.count ##$Websites_NoAccessSitesCount=$NoaccessSies_Websites.count # #WebSites # # #Active Sites Websites ##$ActiveSites_Websites= Get-Content -Path "C:\Results_Active_WebSites.txt" | Measure-Object ##Write-Host "Websites Active sites" $ActiveSites_Websites.count ##$Websites_ActiveSitescount = $ActiveSites_Websites.count # # #Read-only Sites Websites ##$ReadonlySites_Websites= Get-Content -Path "C:\Results_Readonly_WebSites.txt" | Measure-Object ##Write-Host "Websites Read-only Sites" $ReadonlySites_Websites.count ##$Websites_Readonlysitescount=$ReadonlySites_Websites.count # # #No-Access Sites Websites ##$NoaccessSies_Websites= Get-Content -Path "C:\Results_NoAccess_WebSites.txt" | Measure-Object ##Write-Host "Websites No-Access Sites" $NoaccessSies_Websites.count ##$Websites_NoAccessSitesCount=$NoaccessSies_Websites.count # #WebSites # # #Active Sites Websites ##$ActiveSites_Websites= Get-Content -Path "C:\Results_Active_WebSites.txt" | Measure-Object ## Write-Host "Websites Active sites" $ActiveSites_Websites.count ##$Websites_ActiveSitescount = $ActiveSites_Websites.count # # #Read-only Sites Websites ## $ReadonlySites_Websites= Get-Content -Path "C:\Results_Readonly_WebSites.txt" | Measure-Object ##Write-Host "Websites Read-only Sites" $ReadonlySites_Websites.count ##$Websites_Readonlysitescount=$ReadonlySites_Websites.count # # #No-Access Sites Websites ##$NoaccessSies_Websites= Get-Content -Path "C:\Results_NoAccess_WebSites.txt" | Measure-Object ##Write-Host "Websites No-Access Sites" $NoaccessSies_Websites.count ##$Websites_NoAccessSitesCount=$NoaccessSies_Websites.count $TotalActiveSite = ($Websites_ActiveSitescount + $WebSites_ActiveSitescount + $WebSites_ActiveSitescount + $WebSites_ActiveSitescount + $WebSites_ActiveSitescount + $WebSites_ActiveSitescount + $Websites_ActiveSitescount + $CTLQwest_ActiveSitescount + $RecordsCenter_ActiveSitescount + $Websites_ActiveSitescount + $Websites_ActiveSitescount + $Websites_ActiveSitescount + $Websites_ActiveSitescount + $Websites_ActiveSitescount) $TotalReadonlySites = ($Websites_Readonlysitescount + $WebSites_ReadonlySitesCount + $WebSites_Readonlysitescount + $WebSites_Readonlysitescount + $WebSites_Readonlysitescount + $WebSites_Readonlysitescount + $Websites_Readonlysitescount + $Websites_Readonlysitescount + $Websites_Readonlysitescount + $Websites_Readonlysitescount + $Websites_Readonlysitescount + $Websites_Readonlysitescount) $TotalNoAccessSite = ($Websites_NoAccessSitesCount + $WebSites_NoAccessSitesCount + $WebSites_NoAccessSitesCount + $WebSites_NoAccessSitesCount + $WebSites_NoAccessSitesCount + $WebSites_NoAccessSitesCount + $Websites_NoAccessSitesCount + $Websites_NoAccessSitesCount + $Websites_NoAccessSitesCount + $Websites_NoAccessSitesCount + $Websites_NoAccessSitesCount + $Websites_NoAccessSitesCount) #Total Sites $TotalWebSites = ($WebSites_ActiveSitescount + $WebSites_Readonlysitescount + $WebSites_NoAccessSitesCount) $TotalWebSites = ($WebSites_ActiveSitescount + $WebSites_ReadonlySitesCount + $WebSites_NoAccessSitesCount) $TotalWebSites = ($WebSites_ActiveSitescount + $WebSites_Readonlysitescount + $WebSites_NoAccessSitesCount) $TotalWebSites = ($WebSites_ActiveSitescount + $WebSites_Readonlysitescount + $WebSites_NoAccessSitesCount) $TotalWebSites = ($WebSites_ActiveSitescount + $WebSites_Readonlysitescount + $WebSites_NoAccessSitesCount) $TotalWebSites = ($WebSites_ActiveSitescount + $WebSites_Readonlysitescount + $WebSites_NoAccessSitesCount) $TotalWebSites = ($Websites_ActiveSitescount + $Websites_Readonlysitescount + $Websites_NoAccessSitesCount) $TotalWebSites = ($Websites_ActiveSitescount + $Websites_Readonlysitescount + $Websites_NoAccessSitesCount) $TotalWebSites =($Websites_ActiveSitescount + $Websites_Readonlysitescount + $Websites_NoAccessSitesCount) $TotalWebSites = ($Websites_ActiveSitescount + $Websites_Readonlysitescount + $Websites_NoAccessSitesCount) $TotalWebSites = ($Websites_ActiveSitescount + $Websites_Readonlysitescount + $Websites_NoAccessSitesCount) $TotalWebSites = ($Websites_ActiveSitescount + $Websites_Readonlysitescount + $Websites_NoAccessSitesCount) #====== All Sites Count $TotalSites =($TotalWebSites + $TotalWebSites + $TotalWebSites + $TotalWebSites + $TotalWebSites + $TotalWebSites + $TotalWebSites + $TotalWebSites + $TotalWebSites + $TotalWebSites + $TotalWebSites + $TotalWebSites) #Sending Email #================ #[string[]]$recipients = "" $recipients11 = @("") #[string[]]$recipients = "" # "" $smtp = "smtp" #$to = $recipients11 $from = "" #$from = "" $subject = "SharePoint Sites Current Status" $body = " <b> <font color=Navy> Date -$todaydate </b> </font> <br>" #$attachment11="C:\Results_Active_Web.txt","C:\Results_Active_Web.txt" #$body = " <b><font color=red> SP-Apps Read-only Sites Count - $Readonlysitecount </b></font> <br>" #$body += " <b><font color=red> SP-Apps Active Sites Count - $ActiveSitescount </b></font> <br>" #$body += " <b><font color=red> SP-Apps No-Access Sites Count - $NoAccessSiteCount </b></font> <br>" #$body += "Click <a href=http://www.google.com>here</a> to open google <br>" #### Now send the email using \> Send-MailMessage #========= $report = "<html> <style> {font-family: Arial; font-size: 15pt;color: #F70707; } {color:#F70707;} TABLE{border: 1px solid black; border-collapse: collapse; font-size:15pt;} #TH{border: 1px solid black; background: #F4D03F; padding: 5px; color: #000000;} TR{color: #2E86C1;text-align: center;background: #13B5ED; padding: 5px; color: #0F0F0F;} TR{color: #2E86C1;text-align: center;background: #13B5ED; padding: 5px; color: #0F0F0F;} TH{border: 1px solid black; background: #F4D03F; padding: 5px; color: #F70707;} TD{border: 1px solid black; padding: 5px; } H2{color: #F70707;} H1{Color: #0C0B0A;} </style> <h1> SharePoint Sites Current Status</h1> <table> <tr> <td> <b> Web Application </b> </td> <td> <b> Active Sites </b> </td> <td> <b> Read-Only Sites </b> </td> <td> <b> No-Access (Locked) Sites </b></td> <td> <b> Total Sites </b> </td> <tr> <tr> <td> <b> Web Application </b> </td> <td> $Web_ActiveSitescount </td> <td> $Web_Readonlysitescount</td> <td> $Web_NoAccessSitesCount </td> <td> <b> $TotalWebSites </b> </td> </tr> <tr> <td> <b> Web Application </b> </td> <td> $Web_ActiveSitescount </td> <td> $Web_ReadonlySitesCount</td> <td> $Web_NoAccessSitesCount </td> <td> <b> $TotalWebSites </b> </td> </tr> <tr> <td> <b> Web Application </b> </td> <td> $Web_ActiveSitescount </td> <td> $Web_Readonlysitescount </td> <td> $Web_NoAccessSitesCount </td> <td> <b> $TotalWebSites </b> </td> </tr> <tr> <td> <b> Web Application </b> </td> <td> $Web_ActiveSitescount </td> <td> $Web_Readonlysitescount </td> <td> $Web_NoAccessSitesCount </td> <td> <b> $TotalWebSites </b> </td> </tr> </tr> </table> " $report1 = "<html> <style> {font-family: Arial; font-size: 12pt;color: #0F0F0F; } {color:#F70707;} TABLE{border: 1px solid black; border-collapse: collapse; font-size:15pt;} #TH{border: 1px solid black; background: #F4D03F; padding: 5px; color: #000000;} TR{color: #F70707;text-align: center;background: #13B5ED; padding: 5px; color: #0F0F0F;} TR{color: #F70707;text-align: center;background: #13B5ED; padding: 5px; color: #0F0F0F;} TH{border: 1px solid black; background: #F4D03F; padding: 5px; color: #F70707;} TD{border: 1px solid black; padding: 5px; } H2{color: #F70707;} H1{Color: #0C0B0A;} </style> <table> <tr> <td> <b>Total Active Sites Count </b> </td> <td> <b> Total Read-Only Sites Count </b> </td> <td> <b> Total NoAccess Sites Count </b> </td> <td> <b> Total Sites </b> </td> </tr> <tr> <td> <b> $TotalActiveSite </b> </td> <td> <b> $TotalReadonlySites </b> </td> <td> <b> $TotalNoAccessSite </b> </td> <td> <b> $TotalSites </b> </td> </tr> </table> " #========== $body += " <br> $report< </br>" $body += " <br> $report1 </br>" $attachment12="C:\Results_Active_Web.txt" toadd="" #$toadd= "" #$toadd="" #send-MailMessage -SmtpServer $smtp -To $to -From $from -Subject $subject -Body $body -BodyAsHtml -Attachments $attachment11 -Priority Low #Send-MailMessage -SmtpServer "smtp" -To $toadd -From "email address removed for privacy reasons" -Subject $subject -Body $body -BodyAsHtml #Send-MailMessage -SmtpServer "smtp" -To $toadd -From "email address removed for privacy reasons" -Subject $subject -Body $body -BodyAsHtml -Attachments $attachment12 -Priority Low Send-MailMessage -SmtpServer "smtp" -To $toadd -From "email address removed for privacy reasons" -Subject $subject -Body $body -BodyAsHtml -Priority Low #Send-MailMessage -SmtpServer "smtp" -To $toadd -From "email address removed for privacy reasons" -Subject $body -53Views0likes0CommentsMigrating large number of Nintex based SPS 2019 Workflows to SPO
Hi SP Brain trust, We’re migrating a SharePoint 2019 on-prem farm (200+ sites) to SharePoint Online, which includes massive 100+ Nintex workflows heavily used across the business and we’re working within a tight timeline which makes it a massive challenge to go down the modernisation path. Has anyone migrated a large number of Nintex workflows (100+ ) from SharePoint 2019 to SharePoint Online using 3rd party tooling? What approach or tools did you use, how much manual rework was involved, and what was your overall success rate and effort like? Thank you!155Views0likes1Comment