使用 powershell 在一个 Excel 文件中的用户和共享邮箱

问题描述 投票:0回答:1

堆栈溢出社区您好,

过去一周,我一直忙于为我的公司找到一种从 Azure AD 中提取数据并将其放入单个 .xslx 文件中的方法。但经过反复尝试,我找不到实现这一目标的共同点。

我想要提取的数据是拥有许可证和共享邮箱的用户,以便客户可以看到他们仍在为谁付费。

我主要使用Msol,因为它感觉是实现它的最简单的方法(或者我只是固执),但最大的问题是我不知道或找到任何可以用来改变的东西

foreach ($license in $licenses)

有了这段代码,我已经接近了,但还没有完全实现。在编写此代码之前,我也没有任何 Powershell 经验。

$groupOfUsers = Get-MsolUser -all | where { $_.IsLicensed -eq $True }

$o365Results = foreach ($user in $groupOfUsers) {

$licenses = $user.licenses.accountskuid
foreach ($license in $licenses) {
    [pscustomobject]@{
    Mailboxnaam = $user.Name
    Naam = $user.FirstName
    Achternaam = $user.LastName
    Alias = $user.Alias
    Database = $user.Database
    Provincie = $user.state         
    License = $license
 }
}
}
$groupOfUsers = Get-Mailbox -filter {recipienttypedetails -eq "SharedMailbox"}

$mailboxResults = foreach ($user in $groupOfUsers) 
{[pscustomobject]@{
    }
}

$combinedResults = $mailboxResults + $o365Results

$combinedResults | Export-Excel -Path C:\Temp\CombinedResults.xlsx -AutoSize -AutoFilter

我一直在互联网上寻找,但我找不到可以比较某些代码片段(例如 $license)的地方。 我们想要的最终结果是一个文件,我们可以在其中看到共享邮箱和每个活动用户。

我确实想提一下,两个输出的值彼此不同。这可能意味着它甚至不可能。

有没有办法制作一个包含两个输出信息的 .xlsx 文件?

excel powershell azure-active-directory
1个回答
0
投票

在 Doug Maurer 告诉我有关工作表的信息后,我将它们合并到我的代码中,这立即解决了我的问题。 这是我的代码,如果有人想看的话!

Connect-AzureAD Connect-MsolService Connect-ExchangeOnline


$groupOfUsers = Get-MsolUser -all | where { $_.IsLicensed -eq $True }

$results = foreach ($user in $groupOfUsers) {
    $licenses = $user.licenses.accountskuid
    foreach ($license in $licenses) {
        [pscustomobject]@{
            Voornaam = $user.FirstName
            Achternaam= $user.LastName
            License = $license
            Status = $user.state
        }
    } }

$results|Export-Excel -Path C:\Temp\CombinedResults.xlsx -AutoSize
-AutoFilter -WorksheetName 'Gebruikers'

$groupOfUsers = Get-Mailbox -filter {recipienttypedetails -eq "SharedMailbox"}

$results = foreach ($user in $groupOfUsers) {
    [pscustomobject]@{
        MailboxNaam = $user.Name
        Alias = $user.Alias
        Database = $user.Database
    } }

$results |Export-Excel -Path C:\Temp\CombinedResults.xlsx -AutoSize
-AutoFilter -WorksheetName 'Mailboxen'

再次感谢 Doug Maurer 让我走上正确的道路!

© www.soinside.com 2019 - 2024. All rights reserved.