Что мне нужно сделать, это сравнить атрибут лицензии, связанный с каждым именем пользователя, из $ O365Users с атрибутом Enabled, используя соответствующий идентификатор сотрудника в $ userID (если он существует). Со стандартным вложенным ForEach (выше) Мы используем этот скрипт для управления локальными объектами Active Directory и MSOL (Microsoft Online - Office 365). Мой вопрос: У меня есть вопрос, связанный с контуром Еогеасп так же объект возвращает несколько (навсегда) Я хочу сделать это строка за строкой для каждого пользователяПроблема с вложенными циклами в powershell
Import-Module ActiveDirectory
Import-Module MSOnline
$password = ConvertTo-SecureString 'PASSWORD' -AsPlainText -Force
$LiveCred = New-Object System.Management.Automation.PSCredential ("[email protected]", $password)
New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://ps.outlook.com/powershell/ -Credential $LiveCred -Authentication Basic -AllowRedirection
Connect-MsolService -Credential $Livecred
$O365Users = Get-MsolUser -All
ForEach ($O365User in $O365Users)
{
$userID = Import-CSV "c:\Export\list.csv"
$ADuser = Get-ADUser -Filter "EmployeeID -eq $($userID.EmployeeID)" -Properties whenCreated, Enabled, SAMAccountName
If (($ADUser.Enabled -eq $True) -and ($O365User.isLicensed = $true))
{
Get-MsolUSer -UserPrincipalName $ADuser.UserPrincipalName
Set-MsolUserLicense -UserPrincipalName $ADuser.UserPrincipalName -RemoveLicenses "company:ENTERPRISEPACK"
}
}
CSV файл:
EmployeeID
52576
1234
8599
импортировать тот же CSV каждый раз, и вы ВСЕГДА читать такое же значение , который вы используете для получения пользователя ... либо у вас должен быть идентификатор в вашем csv, чтобы он соответствовал внутри цикла, либо вы просто прокручивали csv вместо своих пользователей. – Paul
@Paul благодарит так много, я попробовал разные сочетания нет удачи, пожалуйста, уточните – Arbelac
@Arbelac - как вы получаете list.csv – Kiran