PowerShell kullanarak tek bir role sahip bir uygulama için yetkilendirme yönetiminde erişim paketi oluşturma
Microsoft Entra yetkilendirme yönetiminde erişim paketi, kullanıcıların bir veya daha fazla kaynak rolü için atamaları nasıl edinebileceğine ilişkin ilkeleri kapsar. Kaynaklar grupları, uygulamaları ve SharePoint Online sitelerini içerebilir.
Bu makalede, Microsoft Graph PowerShell kullanılarak tek bir role sahip tek bir uygulama için nasıl erişim paketi oluşturulacağı açıklanır. Bu senaryo öncelikli olarak belirli bir iş veya ara yazılım uygulaması için sürekli erişimi otomatikleştirmek için yetkilendirme yönetimi kullanan ortamlar için geçerlidir. Birden çok kaynağı veya birden çok rolü olan kaynakları olan bir kuruluş, erişim ilkelerini erişim paketleriyle de modelleyebilir:
- Kuruluşun iş rolleri için zaten mevcut bir kuruluş rol modeli varsa, bu modeli Microsoft Entra Kimlik Yönetimi geçirip erişimi bir kuruluş rol modeliyle yönetebilir.
- Kuruluşun birden çok rolü olan uygulamaları varsa, Microsoft Entra Id ile tümleştirilmiş uygulamalara erişimi idare etmek için kuruluş ilkeleri dağıtabilir
- Diğer senaryolar için erişim paketleri oluşturma hakkında daha fazla bilgi için bkz. öğretici: Yetkilendirme yönetiminde kaynaklara erişimi yönetme ve yetkilendirme yönetiminde erişim paketi oluşturma.
Önkoşullar
Bu özelliği kullanmak için Microsoft Entra Kimlik Yönetimi veya Microsoft Entra Suite lisansları gerekir. Gereksinimleriniz için doğru lisansı bulmak için bkz. lisanslamayla ilgili temel bilgileri Microsoft Entra Kimlik Yönetimi.
Erişim paketini oluşturmaya başlamadan önce uygulamayı Microsoft Entra Id ile tümleştirmeniz gerekir. Uygulamanız Microsoft Entra Id kiracınızda zaten yoksa, nesne için bir uygulama ve hizmet sorumlusu oluşturmak için bu makaledeki yönergeleri izleyin. Ayrıca, Kimlik yönetimi için Microsoft Entra Id'yi yapılandırmadan önce Microsoft Entra ID kiracınızın önkoşulları karşıladığından emin olun.
Erişim paketini ve ilişkili ilkeleriyle atamalarını oluşturmak için aşağıdaki bilgilerin hazır olması gerekir:
Kullanım örneği | Yapılandırma ayarı | PowerShell değişkeni |
---|---|---|
Tümü | Microsoft Entra Id kiracınızdaki uygulamanın adı | $servicePrincipalName |
Tümü | Uygulama rolünün adı | $servicePrincipalRoleName |
Tümü | Erişim paketini içeren kataloğun adı | $catalogName |
Tümü | Erişim paketini vermek için ad | $accessPackageName |
Tümü | Erişim paketine vermek için açıklama | $accessPackageDescription |
Uyumsuz erişim paketiyle görev ayrımı gereksinimi | uyumsuz erişim paketinin kimliği | $incompatibleAccessPackageId (gerekirse) |
Henüz atamaları olmayan ve otomatik olarak atanmayan kullanıcılar | kullanıcı listesi | $inputpath (gerekirse) |
Belirli özniteliklere sahip kullanıcıların atamaları otomatik olarak vardır | kapsamdaki kullanıcılar için sorgu ifadesi | $autoAssignmentPolicyFilter (gerekirse) |
Ödevi olmayan kullanıcıların ödev istemesine izin ver | talepte bulunabilecek kullanıcıların kapsamı, onaylayanlar ve erişim gözden geçirme dönemi | gereksinimlere bağlıdır |
Yaşam döngüsü iş akışlarında iş akışlarını birleştirme veya bırakma temelinde atamaların oluşturulmasını veya kaldırılmasını otomatikleştirme | erişim veren ve kaldıran iş akışlarının adları | gereksinimlere bağlıdır |
Microsoft Entra Id kimlik doğrulaması
Bu bölümde, Microsoft Graph PowerShell cmdlet'lerini kullanarak Microsoft Entra Kimlik Yönetimi ile nasıl etkileşim kuracakları gösterilmektedir.
Kuruluşunuz bu senaryo için bu cmdlet'leri ilk kez kullandığında, Microsoft Graph PowerShell'in kiracınızda kullanılmasına izin vermek için Genel Yönetici rolünde olmanız gerekir. Sonraki etkileşimler aşağıdakiler gibi daha düşük ayrıcalıklı bir rol kullanabilir:
PowerShell’i açın.
Microsoft Graph PowerShell modülleri henüz yüklü değilse, şu komutu kullanarak modülü ve diğerlerini yükleyin
Microsoft.Graph.Identity.Governance
:Install-Module Microsoft.Graph
Modülleri zaten yüklediyseniz son sürümü kullandığınızdan emin olun:
Update-Module microsoft.graph.users,microsoft.graph.identity.governance,microsoft.graph.applications
Microsoft Entra Id'ye bağlanın:
$msg = Connect-MgGraph -ContextScope Process -Scopes "User.ReadWrite.All,Application.ReadWrite.All,AppRoleAssignment.ReadWrite.All,EntitlementManagement.ReadWrite.All"
Bu komutu ilk kez kullanıyorsanız, Microsoft Graph Komut Satırı araçlarının bu izinlere sahip olmasını onaylamanız gerekebilir.
Microsoft Entra yetkilendirme yönetiminde katalog oluşturma
Varsayılan olarak, bir yönetici yetkilendirme yönetimiyle ilk etkileşim kurduğunda, varsayılan katalog otomatik olarak oluşturulur. Ancak, yönetilen uygulamalar için erişim paketleri belirlenmiş bir katalogda olmalıdır.
Kataloğun adını belirtin.
$catalogName = "Business applications"
Uygulama idare senaryonuz için zaten bir kataloğunuz varsa, bu bölümün 4. adımında devam edin.
Uygulama idare senaryonuz için henüz bir kataloğunuz yoksa bir katalog oluşturun.
$catalog = New-MgEntitlementManagementCatalog -DisplayName $catalogName
Kataloğun kimliğini arayın.
$catalogFilter = "displayName eq '" + $catalogName + "'" $catalog = Get-MgEntitlementManagementCatalog -Filter $catalogFilter -All -expandProperty resources,accessPackages if ($catalog -eq $null) { throw "catalog $catalogName not found" } $catalogId = $catalog.Id
Uygulamayı kataloğa kaynak olarak ekleme
Katalog oluşturulduktan sonra, uygulamayı bu kataloğa kaynak olarak ekleyin.
Uygulamanın adını ve uygulama rolünün adını belirtin. değerini
servicePrincipalName
olarak uygulamanızın adını kullanın.$servicePrincipalName = "SAP Cloud Identity Services" $servicePrincipalRoleName = "User"
Uygulama hizmet sorumlusunun kimliğini arayın.
$servicePrincipalFilter = "displayName eq '" + $applicationName + "'" $servicePrincipal = Get-MgServicePrincipal -Filter $servicePrincipalFilter -all if ($servicePrincipal -eq $null) { throw "service principal $servicePrincipalName not found" } $servicePrincipalId = $servicePrincipal.Id
Uygulamanın katalogda kaynak olarak zaten mevcut olup olmadığını denetleyin. Zaten varsa, bu bölümün 6. adımında devam edin.
$resourceId = $null foreach ($r in $catalog.Resources) { if ($r.OriginId -eq $servicePrincipalId) { $resourceId = $r.id; break } } if ($resourceId -ne $null) { write-output "resource already in catalog" } else {write-output "resource not yet in catalog"}
Uygulamanın hizmet sorumlusunu kataloğa kaynak olarak ekleyin.
$resourceAddParams = @{ requestType = "adminAdd" resource = @{ originId = $servicePrincipalId originSystem = "AadApplication" } catalog = @{ id = $catalogId } } $resourceAdd = New-MgEntitlementManagementResourceRequest -BodyParameter $resourceAddParams if ($resourceAdd -eq $null) { throw "resource could not be added" } sleep 5
Bu katalogdaki kaynağın kimliğini ve kapsamını alın.
$resource = $null $resourceId = $null $resourceScope = $null $catalogResources = Get-MgEntitlementManagementCatalogResource -AccessPackageCatalogId $CatalogId -ExpandProperty "scopes" -all foreach ($r in $catalogResources) { if ($r.OriginId -eq $servicePrincipalId) { $resource = $r; $resourceId = $r.id; $resourceScope = $r.Scopes[0]; break } } if ($resourceId -eq $null) { throw "resource was not added" }
Uygulamanın rollerini alın.
$resourceRoleFilter = "(originSystem eq 'AadApplication' and resource/id eq '" + $resourceId + "')" $resourceRoles = @(get-mgentitlementmanagementcatalogresourcerole -AccessPackageCatalogId $catalogId -Filter $resourceRoleFilter -All -ExpandProperty "resource") if ($resourceRoles -eq $null -or $resourceRoles.count -eq 0) { throw "no roles available" }
Erişim paketine eklenecek rolü seçin.
$resourceRole = $null foreach ($r in $resourceRoles) { if ($r.DisplayName -eq $servicePrincipalRoleName) { $resourceRole = $r; break; } } if ($resourceRole -eq $null) { throw "role $servicePrincipalRoleName not located" }
Uygulama için erişim paketini oluşturma
Ardından PowerShell'i kullanarak uygulamanın rolünü içeren bir katalogda erişim paketi oluşturacaksınız.
Erişim paketinin adını ve açıklamasını belirtin.
$accessPackageName = "SAP Cloud Identity Services" $accessPackageDescription = "A user of SAP Cloud Identity Services" $accessPackageHidden = $true
Erişim paketinin mevcut olup olmadığını denetleyin.
foreach ($a in $catalog.AccessPackages) { if ($a.DisplayName -eq $accessPackageName) { throw "access package $accessPackageName already exists" } }
Erişim paketini oluşturun.
$accessPackageParams = @{ displayName = $accessPackageName description = $accessPackageDescription isHidden = $accessPackageHidden catalog = @{ id = $catalog.id } } $accessPackage = New-MgEntitlementManagementAccessPackage -BodyParameter $accessPackageParams $accessPackageId = $accessPackage.Id
Uygulama rolünü erişim paketine ekleme
Bir erişim paketi oluşturduktan sonra, katalogdaki kaynağın rolünü erişim paketine bağlarsınız.
$rrsParams = @{
role = @{
id = $resourceRole.Id
displayName = $resourceRole.DisplayName
description = $resourceRole.Description
originSystem = $resourceRole.OriginSystem
originId = $resourceRole.OriginId
resource = @{
id = $resource.Id
originId = $resource.OriginId
originSystem = $resource.OriginSystem
}
}
scope = @{
id = $resourceScope.Id
originId = $resourceScope.OriginId
originSystem = $resourceScope.OriginSystem
}
}
$roleAddRes = New-MgEntitlementManagementAccessPackageResourceRoleScope -AccessPackageId $accessPackageId -BodyParameter $rrsParams
Doğrudan atama için erişim paketi atama ilkeleri oluşturma
Bu bölümde, erişim paketinde, uygulamaya zaten erişimi olan kullanıcıları izlemek için kullanılabilecek, doğrudan atama için bir erişim paketi atama ilkesi olan ilk erişim paketi atama ilkesini oluşturacaksınız. Bu bölümde oluşturulan örnek ilkede, yalnızca yöneticiler veya erişim paketi atama yöneticileri erişim atayabilir, kullanıcılar erişimi süresiz olarak korur ve onay veya erişim gözden geçirmesi yoktur.
İlke oluşturun.
$policy1Name = "Direct assignment policy" $policy1Description = "policy for administrative assignment" $policy1params = @{ displayName = $policy1Name description = $policy1Description allowedTargetScope = "notSpecified" specificAllowedTargets = @( ) expiration = @{ endDateTime = $null duration = $null type = "noExpiration" } requestorSettings = @{ enableTargetsToSelfAddAccess = $true enableTargetsToSelfUpdateAccess = $false enableTargetsToSelfRemoveAccess = $true allowCustomAssignmentSchedule = $true enableOnBehalfRequestorsToAddAccess = $false enableOnBehalfRequestorsToUpdateAccess = $false enableOnBehalfRequestorsToRemoveAccess = $false onBehalfRequestors = @( ) } requestApprovalSettings = @{ isApprovalRequiredForAdd = $false isApprovalRequiredForUpdate = $false stages = @( ) } accessPackage = @{ id = $accessPackageId } } $policy1Res = New-MgEntitlementManagementAssignmentPolicy -BodyParameter $policy1params $directAssignmentPolicyId = $policy1Res.Id
Görev ayrımı kısıtlamalarını yapılandırma
Microsoft Entra yetkilendirme yönetimi, zaten başka bir atanmış erişim paketine veya atanmış bir grubun üyeliğine zaten atanmış olan bir kullanıcının erişim paketi istemesini önlemek için görev ayrımı denetimlerini zorunlu kılabilir.
Bu uygulama için görev ayrımı gereksinimleriniz yoksa sonraki bölümde devam edin.
Görev ayrımı gereksinimleriniz varsa, erişim paketiniz için uyumsuz erişim paketlerini veya mevcut grupları yapılandırın.
Başka bir kullanıcıyla uyumsuz olarak işaretlenecek her erişim paketi için, PowerShell erişim paketlerini uyumsuz olarak yapılandırabilirsiniz.
Bu paketle uyumlu olmayan diğer erişim paketini belirtin. değerini
incompatibleAccessPackageId
Microsoft Entra yetkilendirme yönetimindeki başka bir erişim paketinin kimliğiyle değiştirin.$incompatibleAccessPackageId = "67cc7175-7a3d-4cb2-860f-4d9217ba96ca"
Bu erişim paketinde uyumsuz başvuru oluşturun.
$incompatible1params = @{ "@odata.id" = "https://graph.microsoft.com/v1.0/identityGovernance/entitlementManagement/accessPackages/" + $incompatibleAccessPackageId } New-MgEntitlementManagementAccessPackageIncompatibleAccessPackageByRef -AccessPackageId $accessPackageId -BodyParameter $incompatible1params
Diğer erişim paketinde uyumsuz başvuru oluşturun.
$incompatible2params = @{ "@odata.id" = "https://graph.microsoft.com/v1.0/identityGovernance/entitlementManagement/accessPackages/" + $accessPackageId } New-MgEntitlementManagementAccessPackageIncompatibleAccessPackageByRef -AccessPackageId $incompatibleAccessPackageId -BodyParameter $incompatible2params
Diğer tüm erişim paketleri için yineleyin.
Senaryonuz bir görev ayrımı denetimini geçersiz kılma özelliğini gerektiriyorsa, bu geçersiz kılma senaryoları için ek erişim paketleri de ayarlayabilirsiniz.
Uygulamaya zaten erişimi olan mevcut kullanıcıların atamalarını ekleme
Uygulamaya zaten erişimi olan mevcut kullanıcıların atamalarını erişim paketine ve doğrudan atama ilkesine ekleyin. Her kullanıcıyı doğrudan bir erişim paketine atayabilirsiniz.
Mevcut uygulama rolü atamalarını alın.
$existingAppRoleAssignments = @(Get-MgServicePrincipalAppRoleAssignedTo -ServicePrincipalId $servicePrincipalId -All)
Yinelenen atamalar oluşturmamak için erişim paketine var olan atamaları alın.
$existingAssignments1filter = "accessPackage/id eq '" + $accessPackageId + "' and state eq 'Delivered'" $existingassignments1 = @(Get-MgEntitlementManagementAssignment -Filter $existingAssignments1filter -ExpandProperty target -All -ErrorAction Stop) $existingusers1 = @() foreach ($a in $existingassignments1) { $existingusers1 += $a.Target.ObjectId}
Yeni atamalar oluşturun.
foreach ($ar in $existingAppRoleAssignments) { if ($ar.principalType -ne "User") { write-warning "non-user assigned to application role" } $arpid = $ar.principalId if ($existingusers1.contains($arpId)) { continue } $params = @{ requestType = "adminAdd" assignment = @{ targetId = $arpId assignmentPolicyId = $directAssignmentPolicyId accessPackageId = $accessPackageId } } try { New-MgEntitlementManagementAssignmentRequest -BodyParameter $params } catch { write-error "cannot create request for user $upn" } }
Uygulamaya erişimi olması gereken ek kullanıcılar için atama ekleme
Bu betik, uygulamaya erişebilmeleri için ek kullanıcılara atama eklemek üzere Microsoft Graph PowerShell cmdlet'lerinin kullanılmasını gösterir. Erişime ihtiyacı olan ve otomatik olarak almayacak kullanıcılarınız yoksa sonraki bölümde devam edin.
Bu betik, UserPrincipalName
bu kullanıcıları doğrudan atama ilkesi aracılığıyla erişim paketine atamak için bir sütun içeren bir giriş CSV dosyanız olduğunu varsayar.
Giriş dosyasının adını belirtin.
$inputpath = "users.csv"
Yinelenen atamalar oluşturmamak için erişim paketine var olan atamaları alın.
$existingAssignments2filter = "accessPackage/id eq '" + $accessPackageId + "' and state eq 'Delivered'" $existingassignments2 = @(Get-MgEntitlementManagementAssignment -Filter $existingAssignments2filter -ExpandProperty target -All -ErrorAction Stop) $existingusers2 = @() foreach ($a in $existingassignments2) { $existingusers2 += $a.Target.ObjectId}
Yeni atamalar oluşturun.
$users = import-csv -Path $inputpath foreach ($userrecord in $users) { $upn = $userrecord.UserPrincipalName if ($null -eq $upn) {throw "no UserPrincipalName" } $u = $null try { $u = Get-MgUser -UserId $upn } catch { write-error "no user $upn" } if ($u -eq $null) { continue } if ($existingusers2.contains($u.Id)) { continue } $params = @{ requestType = "adminAdd" assignment = @{ targetId = $u.Id assignmentPolicyId = $directAssignmentPolicyId accessPackageId = $accessPackageId } } try { New-MgEntitlementManagementAssignmentRequest -BodyParameter $params } catch { write-error "cannot create request for user $upn" } }
Otomatik atama için erişim paketlerine ilke ekleme
Kuruluşunuzun uygulamaya kimlere erişim atanabileceğine ilişkin ilkesi, bu özniteliklere göre erişimi otomatik olarak atamak ve kaldırmak için kullanıcının özniteliklerine dayalı bir kural içeriyorsa, bunu otomatik atama ilkesi kullanarak temsil edebilirsiniz. Erişim paketinde en fazla bir otomatik atama ilkesi olabilir. Otomatik atama gereksiniminiz yoksa sonraki bölümde devam edin.
Kullanıcıların atama alması için otomatik atama filtresi ifadesini belirtin. değerini
autoAssignmentPolicyFilter
, Microsoft Entra Id'nizdeki kapsam dahilindeki kullanıcılar için bir filtre olacak şekilde değiştirin. Söz dizimi ve izin verilen öznitelikler, Microsoft Entra Id'deki dinamik üyelik gruplarına yönelik kurallarda sağlanır.$autoAssignmentPolicyFilter = '(user.city -eq "Redmond")'
Erişim paketinde otomatik atama ilkesi oluşturmak için PowerShell'i kullanın.
$policy2Name = "Automatic assignment policy" $policy2Description = "policy for automatic assignment" $policy2Params = @{ DisplayName = $policy2Name Description = $policy2Description AllowedTargetScope = "specificDirectoryUsers" SpecificAllowedTargets = @( @{ "@odata.type" = "#microsoft.graph.attributeRuleMembers" description = $policy2Description membershipRule = $autoAssignmentPolicyFilter } ) AutomaticRequestSettings = @{ RequestAccessForAllowedTargets = $true } AccessPackage = @{ Id = $accessPackageId } } New-MgEntitlementManagementAssignmentPolicy -BodyParameter $policy2Params
Kullanıcıların erişim istemesine izin vermek için ek ilkeler oluşturma
Henüz erişimi olmayan kullanıcıların uygulamaya atanma isteğinde bulunmalarına izin veriliyorsa, kullanıcıların erişim paketi istemesine izin vermek için bir erişim paketi atama ilkesi de yapılandırabilirsiniz. Erişim paketine ek ilkeler ekleyebilir ve her ilkede hangi kullanıcıların istekte bulunabileceğini ve kimlerin onaylaması gerektiğini belirtebilirsiniz. Yalnızca kullanıcıların otomatik olarak veya yönetici tarafından erişim atamasını istiyorsanız, sonraki bölümde devam edin.
Daha fazla örnek için bkz. PowerShell aracılığıyla atama ilkesi oluşturma, accessPackageAssignmentPolicy ve Create an assignmentPolicy.
İlkenin adını, açıklamasını ve onaylayan bir Microsoft Entra kullanıcısının kimliğini belirtin.
$policy3Name = "example policy" $policy3Description = "example of a policy for users to request assignment" $policy3ApproverSingleUserId = "1aaaaaa1-2bb2-3cc3-4dd4-5eeeeeeeeee5"
İlkeyi oluşturun.
$policy3Params = @{ displayName = $policy3Name description = $policy3Description allowedTargetScope = "allMemberUsers" expiration = @{ type = "noExpiration" } requestorSettings = @{ enableTargetsToSelfAddAccess = "true" enableTargetsToSelfUpdateAccess = "true" enableTargetsToSelfRemoveAccess = "true" } requestApprovalSettings = @{ isApprovalRequiredForAdd = "true" isApprovalRequiredForUpdate = "true" stages = @( @{ durationBeforeAutomaticDenial = "P7D" isApproverJustificationRequired = "false" isEscalationEnabled = "false" fallbackPrimaryApprovers = @( ) escalationApprovers = @( ) fallbackEscalationApprovers = @( ) primaryApprovers = @( @{ "@odata.type" = "#microsoft.graph.singleUser" userId = $policy3ApproverSingleUserId } ) } ) } accessPackage = @{ id = $accessPackageId } } New-MgEntitlementManagementAssignmentPolicy -BodyParameter $policy3Params
Yaşam döngüsü iş akışları görevlerini yapılandırma
Çalışan katılımı için Microsoft Entra yaşam döngüsü iş akışlarını kullanıyorsanız, izin olaylarını taşıyın; bu erişim paketine atama eklemek veya kaldırmak için bu iş akışlarına görevler de ekleyebilirsiniz. Yaşam döngüsü iş akışlarını kullanmıyorsanız sonraki bölümde devam edin.
Bu örnekte, olay iş akışlarına katılma ve bırakma işlemlerinde nasıl değişiklik yapabileceğiniz gösterilmektedir.
joiner
Get-MgIdentityGovernanceLifecycleWorkflow komutunu kullanarak kategori iş akışını ve onun görevlerini alın.Bu iş akışındaki görevlerin listesine bir görev ekleyin.
Görev görünen adı taskDefinitionId Bağımsız değişken Kullanıcı erişim paketi ataması isteme c1ec1e76-f374-4375-aaa6-0bb6bd4c60be
ad: assignmentPolicyId
value: Kullanıcıya atamak istediğiniz erişim paketi için, onay gerekmiyorsa değerinin değeri gibi$directAssignmentPolicyId
atama ilkesi kimliği.
ad:accessPackageId
değer: Kullanıcıya atamak istediğiniz erişim paketi için erişim paketi kimliği$accessPackageId
.New-MgIdentityGovernanceLifecycleWorkflowNewVersion komutunu kullanarak yeni görev dahil olmak üzere iş akışının yeni bir sürümünü oluşturun.
leaver
Get-MgIdentityGovernanceLifecycleWorkflow komutunu kullanarak kategori iş akışını ve onun görevlerini alın.Bu iş akışındaki görevlerin listesine bir görev ekleyin.
Görev görünen adı taskDefinitionId Bağımsız değişken Kullanıcı için erişim paketi atamasını kaldırma 4a0b64f2-c7ec-46ba-b117-18f262946c50
ad: accessPackageId
değer: Kullanıcıdan atamasını kaldırmak istediğiniz erişim paketi için geçerli bir erişim paketi kimliğiaccessPackageId
.New-MgIdentityGovernanceLifecycleWorkflowNewVersion komutunu kullanarak yeni görev dahil olmak üzere iş akışının yeni bir sürümünü oluşturun.
Atamaları yönetme
Erişim paketleri, ilkeler ve ilk atamalar oluşturulduktan sonra kullanıcılara uygulamanın rolüne erişim atanır.
Daha sonra, atamalarda yapılan değişiklikleri izleyebilir veya program aracılığıyla atama ekleyebilir veya kaldırabilirsiniz.
Mevcut atamaları alma
Bu betik, durumundaki Delivered
erişim paketine atamaları almak için filtre kullanmayı gösterir. Betik, atamaları olan kullanıcıların listesini içeren ve atama başına bir satır içeren bir CSV dosyası assignments.csv
oluşturur.
$assignmentFilter = "accessPackage/id eq '" + $accessPackageId + "' and state eq 'Delivered'"
$assignments = @(Get-MgEntitlementManagementAssignment -Filter $assignmentFilter -ExpandProperty target -All -ErrorAction Stop)
$sp = $assignments | select-object -Property Id,{$_.Target.id},{$_.Target.ObjectId},{$_.Target.DisplayName},{$_.Target.PrincipalName}
$sp | Export-Csv -Encoding UTF8 -NoTypeInformation -Path ".\assignments.csv"
Atamayı kaldırma
Cmdlet'iyle kullanıcının atamasını New-MgEntitlementManagementAssignmentRequest
kaldırabilirsiniz.
$userId = "00aa00aa-bb11-cc22-dd33-44ee44ee44ee"
$filter = "accessPackage/Id eq '" + $accessPackageId + "' and state eq 'Delivered' and target/objectId eq '" + $userId + "'"
$assignment = Get-MgEntitlementManagementAssignment -Filter $filter -ExpandProperty target -all -ErrorAction stop
if ($assignment -ne $null) {
$params = @{
requestType = "adminRemove"
assignment = @{ id = $assignment.id }
}
New-MgEntitlementManagementAssignmentRequest -BodyParameter $params
}