首先,这是我的第一篇Stack Overflow帖子,所以我很抱歉,如果在其他地方已经回答了这个问题而且我找不到它,但这就是我想要弄清楚的事情。
我循环访问用户名的CSV列表,获取每个用户的Office 365许可证状态,并且我希望根据许可证状态将该字符串写回该用户的CSV。例如,CSV看起来像这样:
Username License1 License2
user1
user2
user3
以下是代码:
$users = Import-Csv .\users.csv
foreach ($user in $users) {
$licenses = (Get-MsolUser -UserPrincipalName $_.Username).Licenses.AccountSkuId
if ($licenses -match "XYZ") {
$_License1 = "XYZ" | Export-Csv .\users.csv -NoTypeInformation
}
}
因此,如果前两个用户拥有" XYZ"许可证然后CSV将更新为如下所示:
Username License1 License2
user1 XYZ
user2 XYZ
user3
它无效,我确定问题与我尝试将数据导出回原始CSV的方式有关,但我不知道如何以正确的方式做到这一点。我们非常感谢任何帮助,如果有更好的方法可以做到这一点,我全心全意。
提前致谢!
答案 0 :(得分:2)
尝试这样的事情:
$users = Import-Csv .\users.csv
foreach ($user in $users) {
$licenses = (Get-MsolUser -UserPrincipalName $_.Username).Licenses.AccountSkuId
if ($licenses -match "XYZ") {
$user.License1 = "XYZ"
}
}
$users | Export-Csv .\users.csv -NoTypeInformation