Office 365 Powershell – 将用户,许可证types和公司字段导出到csv文件

我需要能够导出用户名或电子邮件地址(无所谓哪个),公司(从交换pipe理控制台的用户帐户中的组织选项卡下的公司字段)和许可证types(例如在线交换e1,在线交stream亭等…)

我能够将两个语句中的两个值导出到两个单独的文件中,但是这对我没有太大帮助。

我可以导出用户名和许可证types如下:

Get-MSOLUser | % { $user=$_; $_.Licenses | Select {$user.displayname},AccountSKuid } | Export-CSV "sample.csv" -NoTypeInformation 

而且,我可以通过以下方式获得公司的价值观:

 Get-User | select company | Export-CSV sample.csv 

有人在另一个论坛上提出这个 –

 $index = @{} Get-User | foreach-object {$index.Add($_.userprincipalname,$_.company)} Get-MsolUser | ForEach-Object { write-host $_.userprincipalname, $index[$_.userprincipalname], $_.licenses.AccountSku.Skupartnumber} 

这似乎应该工作,但它不显示任何许可证信息在我的PowerShell,它只是空白。 此外,我不知道如何将其导出到CSV文件。

任何帮助,将不胜感激。 谢谢。

轻微支持最新的命令让:

第4行更新为“$ UserInfo = Get-MSOLUser -UserPrincipalName $ msolUser.UserPrincipalName”

 $lines = @() foreach($msolUser in (Get-MSOLUser)) { $UserInfo = Get-MSOLUser -UserPrincipalName $msolUser.UserPrincipalName foreach($license in $msolUser.Licenses) { $lines += New-Object PsObject -Property @{ "Username"="$($UserInfo.DisplayName)"; "Company"="$($UserInfo.Company)"; "AccountSKUID"="$($license.AccountSKUid)" } } } $lines | Export-CSV C:\output.csv -NoTypeInformation 

它对我来说是完美的。

这将导出许可证用户的许可证types

 Get-MsolUser -All | Where {$_.IsLicensed -eq $true } | Select DisplayName,UsageLocation,@{n="Licenses Type";e={$_.Licenses.AccountSKUid}},SignInName,UserPrincipalName,@{n="ProxyAddresses";e={$_.ProxyAddresses}} | Export-Csv -Path C:\_Cory\Test.csv -NoTypeInformation 

在第一个例子中,你selectAccountSkuId属性,在第二个你去AccountSKU.SkuPartNumber (我很肯定不存在)。

你是脚本/单行也不是太容易阅读,这个如何:

 $lines = @() foreach($msolUser in (Get-MSOLUser)) { $UserInfo = Get-User -Identity $msolUser.UserPrincipalName foreach($license in $msolUser.Licenses) { $lines += @{ "Username"="$($UserInfo.DisplayName)"; "Company"="$($UserInfo.Company)"; "AccountSKUID"="$($license.AccountSKUid)" } } } $lines | Export-CSV C:\output.csv -NoTypeInformation 

更容易得到一个概述和维护。

这个脚本对我很好,但是我不能直接导出到CSV,所以我使用复制/粘贴到Excel中。

 Get-MsolUser -all | Where-Object {$_.isLicensed -eq "True"} | Select UserPrincipalName,DisplayName,Licenses | Out-GridView 

那么,因为你不知道的PowerShell或脚本,你应该自动化整个PowerShell导出日志过程与标准的Windows文书。 有许多第三方工具可以提供帮助。 尝试search它们。 这将使你的工作更轻松

我只是testing了这一点,非常感谢您的帮助!

 $lines = @() foreach($msolUser in (Get-MSOLUser -ALL | where {$_.isLicensed -eq $true})) { $UserInfo = Get-User -identity $msolUser.UserPrincipalName foreach($license in $msolUser.Licenses) { $lines += New-Object PsObject -Property @{ "Nom/Prenom"="$($UserInfo.DisplayName)"; "Societe"="$($UserInfo.Company)"; "AdressePrincipale"="$($UserInfo.UserPrincipalName)"; "Licences"="$($license.AccountSKUid)" } } } $lines | Export-CSV C:\out1.csv -Delimiter ";" -Encoding Unicode