我需要能够导出用户名或电子邮件地址(无所谓哪个),公司(从交换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