Как я могу отключить и включить приложения Office 365 для всех пользователей одновременно с помощью powershell?
Я нашел сценарии в документации Microsoft, которые показывают, как (для этого примера) отключить Yammer для отдельного пользователя:
$UPN = "someone@domain.com"
$LicenseDetails = (Get-MsolUser -UserPrincipalName $UPN).Licenses
ForEach ($License in $LicenseDetails) {
$DisabledOptions = @()
$License.ServiceStatus | ForEach {
If ($_.ProvisioningStatus -eq "Disabled" -or $_.ServicePlan.ServiceName -like "*YAMMER*") {
$DisabledOptions += "$($_.ServicePlan.ServiceName)"
}
}
$LicenseOptions = New-MsolLicenseOptions -AccountSkuId $License.AccountSkuId -DisabledPlans $DisabledOptions
Set-MsolUserLicense -UserPrincipalName $UPN -LicenseOptions $LicenseOptions
}
Как мне трубу что-то вроде {Get-MsolUser}
(для всех в моей организации) или группа Outlook для этого, а не только один UPN?
2 ответа
У меня была аналогичная проблема с включением intune для определенных пользователей. Странно, что Microsoft предлагает только опцию «отключить планы».
Я точно настроил ваш сценарий выше, и вот сценарий, который я должен работать только в ИТ-команде, например. Обратите внимание, что он проверяет текущую лицензию и изменяет что-либо только в том случае, если intune отключен.
$us = Get-ADGroupMember "IT Team"
foreach($u in $us){
$username = $u.SamAccountName
$userinfo = Get-ADUser $username
$upn = $userinfo.UserPrincipalName
write-host $upn -BackgroundColor black -foregroundcolor white
$LicenseDetails = (Get-MsolUser -UserPrincipalName $UPN).Licenses
ForEach ($License in $LicenseDetails) {
$DisabledOptions = @()
$License.ServiceStatus | ForEach {
# $_.ServicePlan.ServiceName
# $_.ProvisioningStatus
If ($_.ProvisioningStatus -eq "Disabled") {
$DisabledOptions += "$($_.ServicePlan.ServiceName)"
}
}
}
if($DisabledOptions -like "*INTUNE_A*"){
write-host "Intune disabled - enabling intune" -foregroundcolor red
$enableintune = $DisabledOptions | Where-Object { $_ –ne "INTUNE_A" }
#$enableintune
$LicenseOptions = New-MsolLicenseOptions -AccountSkuId $License.AccountSkuId -DisabledPlans $enableintune
Set-MsolUserLicense -UserPrincipalName $UPN -LicenseOptions $LicenseOptions
}else{
write-host "Intune enabled - no changes" -foregroundcolor green
}
}
Если вы позвоните Get-MsolUser
без указания -UserPrincipalName $UPN
, он вернет всех пользователей в арендаторе. Затем вы можете перебрать этот список, извлечь их UPN
и затем выполните этот фрагмент против него.