Script per generar un informe de les llicències de l’Office 365
Aquest script genera un informe amb el nom d’usuari, el nom per mostrar, la companyia, el departament, les llicències d’Office 365 assignades, la mida de la bústia de correu, la mida de la bústia d’arxivat, la data en que es va crear la bústia i la mida que ocupen les dades al OneDrive. És molt fàcil afegir qualsevol altra dada que ens interessi tenir i afegir també altres tipus de llicències. Abans d’executar-lo cal connectar-se al Microsoft Online, a l’Azure AD, a l’Exchange Online i al Sharepoint Online per tenir accés a totes aquestes dades. L’informe es genera a la ruta i amb el nom que indiquem, i afegeix al nom de l’arxiu la data i l’hora en que es crea.
###########################Informe de llicències####################### $comptador=0 If (-Not (Get-Module -Name MsOnline, SPOService, AzureAD,ExchangeOnline)) { Write-Host "Cal estar connectat a MsOnline, Azure AD, Exchange Online i Sharepoint Online abans d'executar aquest script"; break } $Report = [System.Collections.Generic.List[Object]]::new() $Usuaris = Get-MsolUser -All | where {$_.isLicensed -eq $true} Write-Host "Processant Usuaris" ForEach ($Usuari in $Usuaris) { $connectionstatus = Get-PSSession | Where-Object {$_.ConfigurationName -like "Microsoft.Exchange"} if ($connectionstatus.State -ne "Opened") { Connect-ExchangeOnline -UserPrincipalName nomusuari@domini } $upn=$Usuari.UserPrincipalName $comptador=$comptador + 1 Write-Host $upn Write-Host $comptador $SKUs = @(Get-MsolUser -UserPrincipalName $Usuari.UserPrincipalName | Select -ExpandProperty Licenses) ForEach ($Sku in $Skus) { $Sku = $Sku.AccountSkuId.Split(":")[1] Switch ($Sku) { "TEAMS_EXPLORATORY" { $Llicencia = "Teams Exploratory" } "VISIOCLIENT" { $Llicencia = "MS Visio" } "ENTERPRISEPACK" { $Llicencia = "Office 365 E3" } "STANDARDPACK" { $Llicencia = "Office 365 E1" } "DESKLESSPACK" { $Llicencia = "Office 365 F3" } "ENTERPRISEPREMIUM" { $Llicencia = "Office 365 E5" } "FLOW_FREE" { $Llicencia = "Prova de Power Automate" } "POWER_BI_STANDARD" { $Llicencia = "Power BI" } "POWER_BI_PRO" { $Llicencia = "PowerBI Pro" } "PROJECT_P1" { $Llicencia = "MS Project Plan 1" } "STREAM" { $Llicencia = "Prova de Microsoft Stream"} "PROJECTPROFESSIONAL" { $Llicencia = "MS Project Plan 3" } "MICROSOFTBOOKINGS_TEST" { $Llicencia = "Prova de MS Bookings" } default { $Llicencia = "Llicencia desconeguda" } } $Correu = Get-MailboxStatistics -Identity $upn $Data = Get-Mailbox -Identity $upn $Arxiu = Get-MailboxStatistics -Archive -Identity $upn $Companyia = Get-AzureADUser -ObjectId $upn $Nomusuari=($Usuari.UserPrincipalName -Split "@")[0] $Lloc= "https://nomdeltenant-my.sharepoint.com/personal/"+$Nomusuari+"_nomdeldomini_domini1ernivell" $OneDrive=Get-SPOSite $Lloc $ReportLine = [PSCustomObject][Ordered]@{ Usuari = $Usuari.UserPrincipalName SKU = $Sku Llicencia = $Llicencia Correu = $Correu.TotalItemSize Companyia = $Companyia.CompanyName Name = $Usuari.DisplayName Arxivat = $Arxiu.TotalItemSize OneDrive = $OneDrive.StorageUsageCurrent Departament = $Usuari.Department Data = $Data.WhenMailboxCreated $Report.Add($ReportLine) } } Write-Host "Resum de llicencies" Write-Host "-------------------" $Groupdata = $Report | Group-Object -Property License | Sort Count -Descending | Select Name, Count $GroupData $Sort1 = @{Expression='SKU'; Ascending=$true } $Sort2 = @{Expression='Name'; Ascending=$true } $Report | Select Name, Usuari, Companyia, Departament, Llicencia, Correu, Arxivat, Data, OneDrive | Sort-Object $Sort1, $Sort2 | Export-CSV Rutainomdelfitxer_$((Get-Date -format yyyy-MMM-dd-ddd` hh-mm` tt).ToString()).CSV -NoTypeInformation -Encoding UTF8