Hello,
I am trying to run the below script but it fails with the error mentioned below.
Start-Transcript -Path "C:\Script\trans.txt"
[array]$wpausers = @(Import-Csv -Path "C:\Script\userswpa.csv")
foreach ($wapuser in $wpausers) {
try {
$msuser = Get-MsolUser -UserPrincipalName $wpauser.email -ErrorAction stop
}
catch {
Write-Host "User lookup failed for $($wpauser.email)"
}
if ($msuser) {
try {
Set-MsolUserLicense -UserPrincipalName $msuser.Userprincipalname -RemoveLicenses “tenant2:DYN365_ENTERPRISE_P1_IW” -ErrorAction stop
write-host "successfully removed the license for user" $msuser.Userprincipalname
}
catch {
Write-Host "Failed to remove license for $($msuser.Userprincipalname)"
}
}
}
stop-transcript
Would appreciate any help
$error shows
Set-MsolUserLicense : Cannot bind argument to parameter 'UserPrincipalName' because it is null.
At line:3 char:48
- Set-MsolUserLicense -UserPrincipalName $wpauser.email -Remove ...
- ~~~~~~~~~~~~~~
- CategoryInfo : InvalidData: (:) [Set-MsolUserLicense], ParameterBindingValidationException
- FullyQualifiedErrorId : ParameterArgumentValidationErrorNullNotAllowed,Microsoft.Online.Administration.Automatio
n.SetUserLicense
This works:-
[array]$rusers = @(Import-Csv -Path "C:\Script\userswpa.csv")
foreach ($user in $rusers) {
Set-MsolUserLicense -UserPrincipalName $user.email -RemoveLicenses “tenant2:DYN365_ENTERPRISE_P1_IW”
}