2013
566 TopicsAutomating 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 -30Views0likes0CommentsHow 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?47Views0likes0CommentsSharepoint site's customized column become 'Read-Only'
We have a SharePoint Intranet that has been in active use for 14+ months. I have a customized column Expiration Date for News Expiry. Recently, all custom columns added to Site Pages (Page Details) or News pages have become read-only immediately after clicking Save. Key points: - Issue occurs for ALL column types (Date, Date & Time, Text, etc.) - Fields are editable for the first time. - As soon as Save is clicked and page or news came to draft status and the field become read-only. - Happens for both Draft and Published pages. - Editing in Site Pages library Grid view still works. - This behavior started recently without any configuration changes. Has anyone else experienced this?100Views0likes1CommentSharePoint 2013 Newsfeed
I have a largely cosmetic problem. I have deleted and re-created someone's mysite (OneDrive). Now works fine. However, the landing page is the Newsfeed. It is stuck on an error about setting up OneDrive. It doesn't seem to have noticed OneDrive is fine. What I want to do is just reset the Newsfeed to its defaults. It looks like it is "stuck" as if OneDrive is broken. In SharePoint 2013 can I reset a NewsFeed page for a user in a non-disruptive way because the user now has data on their OneDrive. Stephen42Views0likes0Comments- 178Views0likes1Comment
How to grant access to SharePoint subsite with no Owners
Hello! Can someone advise how I can add a user to a SharePoint site with no Owners/Members or Admins? It is a Classic SharePoint subsite so I cannot modify any settings using the SharePoint Admin Centre so I need to find a script or a method of some sort to allow me to add a user account to the site to then be able to review it/decommission it etc.? TIA!Solved203Views1like2CommentsClassic SharePoint list view redirecting to home page
Hello! I have an old Classic SharePoint site that I need to create a new view in a list for. I have created this view but whenever I go to open that view it redirects me to the homepage. This site was build by someone else and I believe this is by design to stop users from using admin only views....but how do I stop this for my new view? I need some users to be able to use it. When I create a personal view it does not do this redirect. Any ideas how I can stop it happening on a public view? Or will I need each of my users who need a new view to set up personal views of their own?Solved231Views0likes1CommentPreview .eml and .msg files in SharePoint on premises
I have a question regarding Preview of files. In Office 365 there are a lot of options to preview files. But I am looking into SharePoint server. And especially into eml and msg files can you preview them in SharePoint On Premises? And is it already possible in the 2013 version or do you need to upgrade? If a upgrade will be made it will be 2019. Is it also important to have Enterprise or Standard if it works? Thanks in advance.5.6KViews1like3Comments