Попытка получить скрипт для присвоения лицензии O365 списку пользователей. Что мне здесь не хватает? Я получаю список пользователей для работы, выполненных на основе длины SamAccountName и даты создания пользователя. Как я могу заставить его посмотреть на каждого из пользователей внутри этого списка и назначить ему лицензию O365, если она ложна? Является ли утверждение IF идеальным для использования здесь?Назначить лицензию 0365 на список пользователей
Import-Module ActiveDirectory
$date = (Get-Date).ToString()
$month = (Get-Date).AddDays(-4)
$NewUser = Get-ADuser -Filter * -Properties * | Where { ($_.samaccountname.length -eq 3 -and $_.whencreated -ge $month) } | Select-Object SamAccountName, UserPrincipalName, whencreated
Import-Module MSOnline
Connect-Module -Cred $User
foreach ($item in $NewUser) {Get-MsolUser -UserprincipalName $NewUser | where {$_.isLicensed -eq $false}
Set-MsolUserLicense -UserPrincipalName $NewUser.UserPrincipalName -AddLicenses $NewUser.licensetype
}
Спасибо, связка! это дало понять. Именно поэтому я понимаю, что в полной мере происходит с синтаксисом ..... что именно является синтаксисом, действующим в правой части знака = для $ CurrentAccountSku = $ AccountInfo.Licenses.AccountSkuId? Скажем, для каждого экземпляра в $ AccountInfo смотрите объект AccountSkuid для каждого из них? все это сохраняется в $ CurrentAccountSku, так что я получаю часть. –
** Еогеасп ($ пользователю в $ NewADUsers) { если ($ user.isLicensed -eq $ False) { Set-MsolUserLicense -UserPrincipalName $ user.UserPrincipalName -AddLicenses .... и др } } ** бы это быть действительным заявлением? –
извините за ответ поздно. $ User в $ NewADUsers - это пользовательский объект AD, который не должен иметь атрибута о лицензии. Вы можете изменить мой скрипт следующим образом: foreach ($ user в $ NewADUsers) {$ user = Get-MsolUser -UserPrincipalName $ user.UserPrincipalName -ErrorAction Stop; if ($ user.isLicensed -eq $ false) {Set-MsolUserLicense -UserPrincipalName $ user.UserPrincipalName -ddLicenses 'contoso: ENTERPRISEPACK'}}. Значение для $ user.License.AccountSkuId равно 'contoso: ENTERPRISEPACK' здесь. –