"Enter"a basıp içeriğe geçin

Office 365 Kullanıcı ve Atanmış Lisansların Raporlanması

İhtiyaç doğrultusunda office 365 panel üzerinde bulunan kullanıcı sayısı ve atanmış olan lisansların raporlanması gerekti.

Sürekli bu işlemi gui de yapmak yerine ufak bir script hazırlayarak task schedulera scripti bağlayıp işlemin belirtilen aralıklar ile mail atmasını ele alalım.

#ExchangeOnline ve türevi Microsoft ürün ailelerine bağlantı kimlik bilgileri
$AdminName = "xx@xx.onmicrosoft.com"
$Pass = Get-Content "C:\Scripts\Pass.txt" | ConvertTo-SecureString
$Cred = new-object -typename System.Management.Automation.PSCredential -argumentlist $AdminName, $Pass

#session sorgulama/session var ise bu adımı atla yok ise connect ol
$getsessions = Get-PSSession | Select-Object -Property State, Name
$isconnected = (@($getsessions) -like '@{State=Opened; Name=ExchangeOnlineInternalSession*').Count -gt 0
If ($isconnected -ne "True") {
Connect-MsolService -Credential $cred
}

#kullanıcıları ve atanmış lisansları çek ve belirtilen alana export et
Get-MSOLUser -All | Where-Object { $_.isLicensed -eq $true } |
Select-Object UserPrincipalName, DisplayName, {$_.Licenses.AccountSkuId} |
Export-CSV "C:\temp\office365usersandlicenses.csv" -NoTypeInformation -Encoding UTF8
#kullanıcı sayısını al
$adet=(Get-MSOLUser -All | Where-Object { $_.isLicensed -eq $true } | Select-Object UserPrincipalName, DisplayName, {$_.Licenses.AccountSkuId}).count

$o365users = "C:\temp\office365usersandlicenses.csv"

if($adet -ne 0) {

#toplanan verileri mail at
    Send-MailMessage -To "<onur.babur@xxx.com>" -Cc "<onur.babur@xx.com>" -From "Office 365 <o365@xx.com>" -Subject "Office 365 Kullanıcı Sayısı" -Body "Ekte Office 365 kullanıcıları ve atanmış lisans bilgileri paylaşılmıştır. $adet kullanıcı mevcuttur." -Attachments $o365users  -SmtpServer "smtphostnameoripadd" -Encoding utf8

}
Bir cevap yazın

E-posta hesabınız yayımlanmayacak.