2017-04-14 95 views
0

我有一個擁有多個許可證計劃的Office 365租戶,我試圖通過Powershell批量禁用E3計劃的某些功能。嘗試通過Powershell在Office 365中設置用戶許可證

下面是我有:

$ENTERPRISEPACK=New-MsolLicenseOptions -AccountSkuId companyname:ENTERPRISEPACK -DisabledPlans "FLOW_0365_P2", "POWERAPPS_0365_P2" 

Import-CSV c:\scripts\inputfiles\e3users.csv | foreach-object -process { Set-MsolUserLicense -UserPrincipalName $_.upn -LicenseOptions $ENTERPRISEPACK -Verbose} 

,我快到的問題是,我可以確認用戶的存在,並導入CSV是有效的,但我得到一個錯誤,每用戶在我的CSV:

Set-MsolUserLicense : User Not Found. User: . 

這是非常令人沮喪,因爲我只希望當你運行它作爲一種禁止所有E3的用戶特徵(這將是我的CSV)和該命令的工作:

$ENTERPRISEPACK=New-MsolLicenseOptions -AccountSkuId companyname:ENTERPRISEPACK -DisabledPlans "FLOW_0365_P2", "POWERAPPS_0365_P2" 

Set-MsolUserLicense -UserPrincipalName [email protected] -LicenseOptions $ENTERPRISEPACK -Verbose 

正如你所看到的,這裏的區別在於我用一個特定的用戶名輸入了它。

這對我來說只是有道理的,我可以管它輸入和運行一個循環,但我錯過了一些東西。

請幫助?

回答

0

我能夠自己解決這個問題。

令人沮喪的是,第一部分是「Set-MSOLUserLicense」只接受來自文本文件的UPN的流水線輸入,而不是CSV。

其次,出於某種奇怪的原因,我試圖禁用的ServicePlans在使用雙引號時似乎不被識別。

這是我結束了:

$ENTERPRISEPACK=New-MsolLicenseOptions -AccountSkuId company:ENTERPRISEPACK -DisabledPlans 'FLOW_O365_P2','POWERAPPS_O365_P2','RMS_S_ENTERPRISE' 

Get-Content "C:\scripts\inputfiles\E3users.txt" | foreach {Set-MsolUserLicense -UserPrincipalName $_ -LicenseOptions $ENTERPRISEPACK 

而且,由於-Verbose開關不能正常工作,我添加了一個腳本塊踢了記錄。所以,命令和日誌塊如下所示:

Get-Content "C:\scripts\inputfiles\E3users.txt" | foreach {Set-MsolUserLicense -UserPrincipalName $_ -LicenseOptions $ENTERPRISEPACK -ea silentlycontinue -ev +action 


# if there were no errors, write to the screen and file what was done 
if($action.count -eq 0) 
{ 
Write-Host -ForegroundColor Green "Changed license for" $_ 
Write-output $_ | Out-File C:\scripts\OutputFiles\FeatureDisable\logs\LicenseSuccesslogEnterprise04072017.csv -Append 
} 
# if the initial command failed, then write to a failure logfile 
if($action.count -eq 1) 
{ 
Write-Host -foreground Yellow "Failed to change license for" $_ 
Write-Output $_ | out-file C:\scripts\OutputFiles\FeatureDisable\logs\LicenseFailurelogEnterprise04072017.csv -Append 
} 
Clear-Variable -Name action} 
相關問題