【问题标题】:Add Azure group member from on perm AD powershell script从 perm AD powershell 脚本添加 Azure 组成员
【发布时间】:2021-04-12 06:32:13
【问题描述】:

我有一个 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 $_.UserPrincipalName 将是更简单的语法而不是过滤。您还应该使用select -expand ObjectId 来仅检索ObjectId 值。就个人而言,我会将Connect-AzureAD 命令移到循环之外,这样您就不会每次都尝试为每个查询的用户重新连接。

标签: powershell active-directory azure-active-directory


【解决方案1】:

由于Get-AzureADUser 参数ObjectId 接受UPN 值,您可以简化语法并删除过滤。您还只需连接到 AzureAD 一次,而不是为每个用户连接一次。在Select-Object 上使用-Expand-ExpandProperty 只会检索该属性的值,而不是包含该属性的对象。 Add-AzureAdGroupMember 参数 -RefObjId 需要一个仅包含 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"

# 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
} 

【讨论】:

  • 非常感谢,这真的很有帮助,现在一切正常。关于循环中的命令,在我这边是一个可怕的错误:-)。谢谢!!
猜你喜欢
  • 2019-08-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多