Ir al contenido principal

Automatic farm documentation

Requirement

I needed an easy way to automatically document my farm and take snap shots of its configuration periodically for audit purposes.

A quick search landed me on this Codeplex project by Jayvijw

As you can see from the above screenshot, the report is quite detailed and contains most of the information you would need as an administrator to track configuration changes and restore a farm to its original configuration if you ever have to start from scratch.

So I thought, why not use PowerShell and Windows Task Scheduler to give me weekly snapshots of my farm’s configuration?

Solution

Summary of what the script does

  1. Generate the farm configuration report using the 2010SPSFR.exe stored in C:\SharePoint
  2. Rename the report html file to our naming convention.
  3. Upload the report to a document library in SharePoint.
  4. E-mail a copy of the report to the SharePoint administrator.

Modify the variables in the script below to suit your environment. You can easily schedule this script in Windows Task Scheduler so that it generates reports periodically.

 

   1:  Add-PSSnapin Microsoft.SharePoint.PowerShell
   2:  Write-Host "Script starting.."
   3:   
   4:  #Variables
   5:  $ReportName = "c:\SharePoint\2010SPSFR.html"
   6:  $ReportNewName = "SPFarm-Config-" + $(Get-Date -Format dd-MM-yy) + ".html"
   7:   
   8:  #Store a copy of the configuration file in a SharePoint library
   9:  $Web = "http://your-site"
  10:  $List = "FarmConfig"
  11:   
  12:  $AdminEmail = "your@email.com"
  13:  $MailServer = "your.smtp.server.com"
  14:  $FromAddress = "sharepoint.notifications@domain.com"
  15:   
  16:  #Run Automatic Documenting Program and rename the file
  17:  CD C:\SharePoint
  18:  Start-Process c:\SharePoint\2010spsfr.exe
  19:   
  20:  #Give the program 40 seconds to complete report generation.
  21:  Start-Sleep 40
  22:   
  23:  #Rename the report to a useful name
  24:  Rename-Item -Path $ReportName -NewName $ReportNewName
  25:   
  26:  #Upload the file to SharePoint
  27:  Function UploadToSPDocLib($LocalPath,$spDocLibPath) 
  28:  { 
  29:  $WebMethod = "PUT" 
  30:  $UploadFullPath = $spDocLibPath + $(split-path -leaf $LocalPath) 
  31:  $WebClient = new-object System.Net.WebClient 
  32:  $WebClient.Credentials = [System.Net.CredentialCache]::DefaultCredentials 
  33:  $WebClient.UploadFile($UploadFullPath, $WebMethod, $LocalPath) 
  34:  } 
  35:   
  36:  UploadToSPDocLib "c:\sharepoint\$($ReportNewName)" "$($Web)\$($List)\"
  37:   
  38:  $messageParameters = @{
  39:                  Subject = "SharePoint Farm: Test - Configuration Documentation"
  40:                  Body = "Please see attached file for the SharePoint farm documentation generated on $(Get-Date -Format dd-MM-yy)"
  41:                  From = $FromAddress
  42:                  To = $AdminEmail
  43:                  SmtpServer = $MailServer
  44:                  Attachments = "c:\sharepoint\$($ReportNewName)"
  45:   
  46:              }
  47:   
  48:              Send-MailMessage @messageParameters
  49:   
  50:  Write-Host "Done."



Fuente: http://www.mysharepointadventures.com/2012/06/automatic-farm-documentation/

Comentarios

Entradas populares de este blog

Get SharePoint Online Site and SubSites permission using PowerShell

The below PowerShell script retrieves the following for the given SharePoint Online Site All the Sub-site's URL Security group attached with each Sub-site with their permission level Prerequisites: This PowerShell script uses the latest version of SharePoint Online PnP Module. Download the installer from https://github.com/SharePoint/PnP-PowerShell/releases  Install-Module SharePointPnPPowerShellOnline  Install-Module - Name ' SharePointPnP.PowerShell.Commands.Files.Recurse ' function  connect - site( $webs , $creds ){    Connect - PNPonline  - Url  $webs   - Credentials  $cred     }    function  get - sitepermission( $web , $cred ){    $rec =@()    connect - site  - webs  $web   - creds  $cred     if ( $web   - eq  $parentsitename )  {  #Write-Host "Parent site permission" $web   $Pgroups =Get - PNPGroup  foreach ( $Pgroup   in   $Pgroups )  {  $DLGP  =  ""   |   Select   "SiteUrl" , "GroupName" , "Permiss

Find and Delete Orphaned Users in SharePoint

Fuente: http://www.sharepointdiary.com/2012/09/find-and-delete-orphaned-users-in-sharepoint.html Orphaned User? Who are they? Orphaned users are those who have been disabled/removed from Active Directory, but still have permissions to sites, lists and items. Internally, SharePoint keeps them in " UserInfo " table of the content database for meta-data such as created/modified by fields. Its unavoidable in any organization where employees constantly on-boarding and off-boarding. Its really difficult to manage, when it comes to thousands of sub-sites, sites, libraries and lists with their own sets of permissions. Why we care about Orphaned users? It is a best practice to delete orphaned users to keep the farm clean & organized. Also this will solve the problem of deleted active directory users still appearing on the people picker which was discussed here  People Picker not showing users from Active Directory? . If you know the user base or criteria then you can use: Clea

Conexión desde casa a una VPN sin perder salida a internet

Solución, asumiendo que estas en Windows: Panel de Control, Conexiones de Red. Clic derecho en la VPN, dale a propiedades. Anda a la pestaña de "Funciones de Red" y selecciona Protocolo Internet TCP/IP y clic en el botón "Propiedades". Ahora hazle clic al botón "Opciones Avanzadas..."En la pestaña "General", desmarca la opción que dice "Usar la puerta de enlace predeterminada en la red remota". Dale a aceptar a todas las ventanitas de opción, y ahora conéctate a la VPN nuevamente. Con eso deberías entrar a la VPN sin perder la conexión local de tu red e internet.