Aujourd’hui je vous propose de passer en revue les commandes PowerShell vous permettant d’auditer la configuration de serveurs SharePoint. Vous pourrez vous servir de ces commandes pour ensuite construire des rapports HTML, dans le but de monitorer votre ferme SharePoint.
Cet ensemble de commande PowerShell peut également vous aider à avoir une image fidèle de la configuration que vous avez mise en place pendant votre mission, permettant d’attester de vos changements lors de vos interventions en clientèle.
Voici plusieures solutions / Tutos pour construire des rapports HTML depuis PowerShell :
- Windows PowerShell: HTML Reports in PowerShell
- PowerShell: Creating HTML reports
- Tuto Creating Styling HTML Reports with PowerShell (By Jeffery Hicks)
Voyons maintenant qu’est ce qu’il est intéressant d’auditer sur un serveur SharePoint.
1.1 Informations Serveur
1.2 Informations OS
1.3 Disques sur le serveur
1.4 Configuration IP
1.5 Rôles déployés
1.6 Fonctionnalités déployées
1.7 Configuration PageFile
1.8 Emplacement MiniDump
1.9 Emplacement DumpFile
1.10 Configuration BackHostNameConnections
1.11 Configuration DisableLoopBackCheck
1.12 Configuration AliasSQL
1.13 Logiciels installés
1.14 Sites IIS
1.15 Pool d’applications
1.16 Etat des services Windows
2.1 Etat des services SharePoint
2.2 Version des produits SharePoint
2.3 Serveurs de la ferme
2.4 Alternate Access Mapping
2.5 Administrateurs de la ferme
2.6 Compte Managés
2.7 Antivirus Settings
Informations Système
1.1 Informations Serveur
Get-WmiObject -ComputerName . -class Win32_ComputerSystem | Select Name, Domain, Model, @{Expression={$_.TotalPhysicalMemory / 1GB};Label="TotalPhysicalMemory (Go)"}
Sortie :
- Nom du serveur
- Domaine dans lequel se trouve le serveur
- Modèle
- RAM en Go
1.2 Informations OS
Get-WmiObject -ComputerName. -class Win32_OperatingSystem | Select Caption, OSArchitecture, @{Expression={$_.MUILanguages};Label="MUILanguages"}, OSLanguage
Sortie :
- Nom de l’OS
- Architecture 64/32 bits
- Language Culture Name de l’OS
- Language Culture Code de l’OS
1.3 Disques sur le serveur
Get-WmiObject -class Win32_LogicalDisk -Filter "DriveType=3" -ComputerName . | Select DeviceID, @{Expression={$_.FreeSpace / 1GB};Label="FreeSpace (Go)"}, @{Expression={$_.Size / 1GB};Label="Total Size (Go)"}
Sortie :
- Lettre du disque
- Espace libre en Go
- Taille totale en Go
1.4 Configuration IP
Get-NetAdapter
Sortie :
- Ensemble des paramètres des cartes réseaux présentes
1.5 Rôles déployés
Import-module servermanager | Get-WindowsFeature | Where {$_.Installed -eq $true -and $_.FeatureType -ne "Feature"} |Select Name, Description, Parent | Sort-Object Parent
Sortie :
- Nom du rôle
- Description
- Parent
1.6 Fonctionnalités déployées
Import-module servermanager | Get-WindowsFeature | Where {$_.Installed -eq $true -and $_.FeatureType -eq "Feature"} |Select Name, Description, Parent | Sort-Object Parent
Sortie :
- Nom de la fonctionnalité
- Description
- Parent
1.7 Configuration PageFile
Get-WmiObject Win32_PageFileUsage | Select Name, @{Expression={$_.AllocatedBaseSize / 1GB};Label="AllocatedBaseSize (Go)"}
Sortie :
- Emplacement du pagefile.sys
- Taille allouée au fichier
1.8 Emplacement MiniDump
Get-ItemProperty -Path "hklm:system\currentcontrolset\control\crashcontrol" -Name MinidumpDir | Select MinidumpDir, PSPath
Sortie :
- Emplacement du Minidump
- Chemin de la clé de paramétrage dans la base de registre
1.9 Emplacement DumpFile
Get-ItemProperty -Path "hklm:system\currentcontrolset\control\crashcontrol" -Name DumpFile | Select DumpFile, PSPath
Sortie :
- Emplacement du fichier Memory.DMP
- Chemin de la clé de paramétrage dans la base de registre
1.10 Configuration BackHostNameConnections
Get-ItemProperty -Path "HKLM:\system\currentcontrolset\control\lsa\MSV1_0" -Name BackConnectionHostNames | Select @{Expression={$_.BackConnectionHostNames};Label="BackConnectionHostNames"}, PSPath
Sortie :
- Liste de hostname
1.11 Configuration DisableLoopBackCheck
Get-ItemProperty -Path "HKLM:\system\currentcontrolset\control\lsa\MSV1_0" -Name BackConnectionHostNames | Select @{Expression={$_.BackConnectionHostNames};Label="BackConnectionHostNames"}, PSPath
Sortie :
- Valeur de la clé de registre (0 ou 1)
- Chemin de la clé de paramétrage dans la base de registre
1.12 Configuration AliasSQL
Get-ItemProperty "HKLM:\software\Microsoft\MSSQLServer\Client\ConnectTo" | Select *
Sortie :
- Liste des Alias SQL mis en place sur le serveur
1.13 Logiciels installés
Get-ItemProperty -Path "hklm:software\Microsoft\Windows\CurrentVersion\Uninstall\*" | Where-Object{$_.DisplayName -like "*SharePoint*" -or $_.DisplayName -like "*AppFabric*" -or $_.DisplayName -like "*SQL*"} | Select-Object DisplayName, DisplayVersion, InstallDate
Sortie :
- Nom du Logiciel
- Version
- Date d’installation
1.14 Sites IIS
Get-Website | Select Name, Id, State, @{n="Bindings"; e={ ($_.Bindings | Select -expa collection) -join ';'}}, @{n="logFile"; e={ ($_.logFile | Select -expa directory)}}, ApplicationPool, enabledprotocols, PhysicalPath
Sortie :
- Nom
- Status des sites IIS
- Bindings
- Emplacement du fichier de logs
1.15 Pool d’applications
Get-CimInstance -Namespace root/MicrosoftIISv2 -ClassName IisApplicationPoolSetting -Property Name, AppPoolState, WAMUserName | Select Name, @{Expression={Convert-ApplicationPoolState $_.AppPoolState};Label="State"}, WAMUserName
Sortie :
- Nom du pool d’application
- Status du pool
- Compte de service
1.16 Etat des services Windows
Get-WmiObject -Class Win32_Service -ComputerName . | Select-Object -Property DisplayName, State, Status, StartName | Where {$_.DisplayName -like '*Share*' -or $_.DisplayName -like '*SQL*'}
Sortie :
- Nom du service windows
- Status du service
Informations Sharepoint
2.1 Etat des services SharePoint
Get-SPServiceInstance | Select @{Expression={$_.TypeName};Label="Name"}, @{Expression={$_.Status};Label="State"}
Sortie :
- Nom du service SharePoint
- Status du service
2.2 Version des produits SharePoint
Get-WmiObject -Class Win32_Product | Where {$_.IdentifyingNumber -Like "*90150000-*"} | Sort -Property Name | Select Name, Version
Sortie :
- Nom du produit
- Version du produit
2.3 Serveurs de la ferme
$farm = Get-SPFarm $farm.Servers | Select Address
Sortie :
- Liste de nom des serveurs de la ferme SharePoint
2.4 Alternate Access Mapping
Get-SPAlternateURL | Select IncomingUrl, Zone, PublicUrl
Sortie :
- Nom du service SharePoint
- Status du service
2.5 Administrateurs de la ferme
function get-spadministrators() { $ca = [Microsoft.SharePoint.Administration.SPWebService]::AdministrationService.WebApplications | Select -First 1 $root = $ca.Sites["/"].RootWeb $grp = $root.SiteGroups["Farm Administrators"] return $grp.Users } get-spadministrators | Select UserLogin, Email
Sortie :
- Login du user
- Email du user
2.6 Compte Managés
Get-SPManagedAccount | Select Username, AutomaticChange, EnableEmailBeforePasswordChange, CanChangePassword, PasswordLastChanged, PasswordExpiration, MinPasswordLen, ChangeSchedule
Sortie :
- Nom du user
- L’utilisateur peut-il changer son mot de passe ?
- Date de dernier de changement du mot de passe
- Date d’expiration du mot de passe
2.7 Antivirus Settings
function get-antivirusSettings() { # Get a reference to the Administration $adminService = [Microsoft.SharePoint.Administration.SPWebService]::ContentService # Set antivirus settings $allowdownload = $adminService.AntivirusSettings.AllowDownload # Enable Download Scan $DownloadScan = $adminService.AntivirusSettings.DownloadScanEnabled # Enable upload scan $uploadScan = $adminService.AntivirusSettings.UploadScanEnabled # Enable Cleaning $CleaningEnabled = $adminService.AntivirusSettings.CleaningEnabled $obj = new-object psobject -Property @{'AllowDownload' = $allowdownload;'DownloadScanEnabled' = $DownloadScan; 'UploadScanEnabled' = $uploadScan;'CleaningEnabled' = $CleaningEnabled} return $obj } get-antivirusSettings | Select *
Sortie :
- Activation du scan à l’upload
- Activation du scan au download
- Autorisation du download
- Activation du nettoyage
2.8 Liste des solutions de ferme déployées
$farm = Get-SPFarm $farm.Solutions | Select Name, DeploymentState, Status, LastOperationDetails
Sortie :
- Nom des solutions
- Scope de déploiement
- Status de la solution
- Date de dernière opération