azure - 组合和匹配 Get-AzureADUser、Get-AzureADSubscribedSku 、 Get-AzureADUserManager 的输出

标签 azure powershell automation azure-active-directory office365

问题和我现在遇到的问题

<小时/>

脚本

顺便说一句,评论是挪威语的,如果它们看起来很奇怪哈哈

Connect-AzureAD

#variabel
$Users = Get-AzureADUser -All:$true | where-object { $null -ne $_.AssignedLicenses.SkuId } | Sort-Object CompanyName, UserPrincipalName| Select-Object -Property CompanyName, DisplayName, UserPrincipalName, Department, Mobile, TelephoneNumber

#formatting
$userlistTable = $Users | Format-Table 
$userlistHTML = $Users | ConvertTo-Html

#outputs
$userlistHTML > out.html # ut som HTML
$userlistTable > out.txt # ut som Tabell i .txt
$userlistTable           # ut som Tabell i terminal

我现在的输出:

CompanyName        DisplayName        UserPrincipalName          Department        Mobile          TelephoneNumber
-----------        -----------        -----------------          ----------        ------          ---------------
Company inc        Usser Name         usernam<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="caaf8abdafa8b9a3beafe4a9a5a7" rel="noreferrer noopener nofollow">[email protected]</a>        Callsenter        12345678        87654321

我想要什么。是一个表,其中包含 $Users 输出中的所有信息以包含用户“SkuPartNumber”。
通过运行命令 Get-AzureADSubscribedSku | 获取的字段选择-Property SkuPartNumber


我还想获得通过运行 Get-AzureADUserManager 获得的用户“经理”。

最后一个命令使用用户对象 ID 来查找他们的经理。 老实说,我非常不知道如何将这些命令组合到一张表中。

<小时/>

这并不是现在的世界末日。我可以只有多个表,但必须手动交叉引用这些表需要一些时间。

说实话,我真的不确定为什么这些东西被分成不同的命令。我知道许可证是通过 365 而不是 azure 的。但似乎有点倒退,我无法从显示所有用户信息的命令中看到许可证。当 powershell 中的用户类别实际上显示 sku ID 时。通过运行命令,它被隐藏在 AssignedLicenses 中:

Get-AzureADUser | where-object -property UserPrincipalName -eq "<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="b1d4dcd0d8ddd9d4c3d4f1d5dedcd0d8df9fd2dedc" rel="noreferrer noopener nofollow">[email protected]</a>" | FL

这将为您提供以下信息:

AssignedLicenses               : {class AssignedLicense {
                                   DisabledPlans: System.Collections.Generic.List`1[System.String]
                                   SkuId: 3b555118-da6a-4418-894f-7df1e2096870
                                 }

结论

我知道这是一篇很长的文章。如果你做到了这一步,我很抱歉。 对此的任何帮助都会很棒。这可能非常容易做到,但我距离 powershell 专家还很远。再次感谢您的阅读以及任何帮助。

最佳答案

您可以使用计算属性向选定对象添加其他属性,例如 Select @{label='name';expression={foo}}

$Users = Get-AzureADUser -All:$true

$Users | Where-Object { $_.AssignedLicenses.SkuId } | 
  Select-Object -Property UserPrincipalName,  ## other properties here...
    @{l='ManagerUPN';e={($_ | Get-AzureADUserManager).UserPrincipalName}},
    @{l='AssignedSKUs';e={$_.AssignedLicenses.SkuId -join ';'}}


UserPrincipalName ManagerUPN         AssignedSKUs                                                                                                  
----------------- ----------         ------------                                                                                                  
<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="bfcaccdacdffdbd0d2ded6d191dcd0d2" rel="noreferrer noopener nofollow">[email protected]</a>   <a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="58353936393f3d2a183c3735393136763b3735" rel="noreferrer noopener nofollow">[email protected]</a> 00000000-0000-0000-0000-000000000000;11111111-1111-1111-1111-111111111111

为每个用户运行 Get-AzureADUserManager 可能会很慢,但这就是 Azure 存储关系的方式。

当您有很多用户时,首先获取管理员用户可能会稍微快一些,然后使用 Get-AzureADUserDirectReport -all $true 展开所有在一次调用中directreportsMicrosoft.Graph.Users 模块也更加轻量级

关于azure - 组合和匹配 Get-AzureADUser、Get-AzureADSubscribedSku 、 Get-AzureADUserManager 的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74477562/

相关文章:

Python Selenium : Unable to locate the element (//input[@type ='file' ]')

excel - "Compile error: Automation error"VBE生成Worksheet_Change私有(private)子时

azure - Azure 事件中心是否有任何方法可以计算出在指定时间使用了多少吞吐量单位?

azure - Azure 信号中的 serverExceptions 和异常之间有什么区别?

testing - Powershell 用于 web-ui 测试的优势?

powershell - 如果我关闭正在运行的 PS 窗口,FileSystemWatcher 将停止工作

selenium - 什么是自动化单页应用程序测试用例的最佳工具

azure - 使用 SQL 生成自定义 JSON

ios - 如何使用 Swift 将图像上传到 Azure

powershell - 在变量名称中使用变量字符串值