堆栈溢出社区您好,
过去一周,我一直忙于为我的公司找到一种从 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 文件?
在 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 让我走上正确的道路!