powershell - 从 perm AD powershell 脚本添加 Azure 组成员
问题描述
我有一个 Powershell 脚本,它每天都在我们的永久广告上运行,并且对新员工几乎没有执行任何操作。我也在尝试将这些用户添加到我们的 Azure AD 组之一(Add-AzureADGroupMember),但目前在尝试获取 ObjectId 时很幸运。
知道我做错了什么吗?
Import-Module ActiveDirectory
Import-module AzureAD
$tenantId = "1516515611561651651"
$azureUser = "my@mail.com"
$AzureCredential = Get-Content "Encrypted.txt" | ConvertTo-SecureString -Key (1..16)
$AzureCred = New-Object -TypeName "System.Management.Automation.PSCredential" -ArgumentList $AzureUser, $AzureCredential
$SearchBase = "OU=ou,DC=DC,DC=my"
Get-ADUser -SearchBase $SearchBase -Properties extensionAttribute1, mail, extensionAttribute12, userPrincipalName -Filter * | ForEach-Object {
# Connect to Azure AD
Connect-AzureAD -AccountId $azureUser -TenantId $TenantId -Credential $AzureCred
$objid= Get-AzureADUser -Filter "userPrincipalName eq '$_.userPrincipalName'" | select ObjectId
Add-AzureADGroupMember -ObjectId 6546fewf4s894f98sdfsd4f -RefObjectId $objid
}
解决方案
由于Get-AzureADUser
参数ObjectId
接受 UPN 值,因此您可以简化语法并删除过滤。您还只需连接到 AzureAD 一次,而不是为每个用户连接一次。在Select-Object上使用-Expand
or仅检索该属性的值,而不是包含该属性的对象。Add-AzureAdGroupMember参数需要一个仅包含 objectID 值的字符串。-ExpandProperty
-RefObjId
Import-Module ActiveDirectory
Import-module AzureAD
$tenantId = "1516515611561651651"
$azureUser = "my@mail.com"
$AzureCredential = Get-Content "Encrypted.txt" | ConvertTo-SecureString -Key (1..16)
$AzureCred = New-Object -TypeName "System.Management.Automation.PSCredential" -ArgumentList $AzureUser, $AzureCredential
$SearchBase = "OU=ou,DC=DC,DC=my"
# Connect to Azure AD
Connect-AzureAD -AccountId $azureUser -TenantId $TenantId -Credential $AzureCred
Get-ADUser -SearchBase $SearchBase -Properties extensionAttribute1, mail, extensionAttribute12, userPrincipalName -Filter * | ForEach-Object {
$objid = Get-AzureADUser -ObjectId $_.userPrincipalName | Select -Expand ObjectId
Add-AzureADGroupMember -ObjectId 6546fewf4s894f98sdfsd4f -RefObjectId $objid
}
推荐阅读
- react-native - 流程没有从我自己的文件中找到模块?
- javascript - Javascript Regex 将网站上的所有链接从 http 转换为 https
- sql - SQL从有条件的分组行中删除记录
- visual-studio - 忽略“SQL71501:未解析的对象引用”错误
- python-2.7 - 从 Apache Airflow 1.10.2 中的 BigQueryOperator 继承时,参数设置为 None
- android - Firebase库实现的Appcompat错误
- gradle - 如何从 build.gradle 为 Kotlin 应用程序加载配置文件?
- excel - VBA excel , Sumif 动态行
- reactjs - 如何在不同的非反应网页中呈现反应应用程序?
- node.js - 如何实现请求 - 使用套接字的响应逻辑