【发布时间】:2021-09-27 12:44:59
【问题描述】:
对于较重的 powershell 来说非常新,我整天都在研究这个问题,无法弄清楚。
我需要从 Office 365 帐户获取 UPN 列表。我在 CSV 文件中有名称。它有一列,有一长串名字。标题是“名称”
我想使用管道格式列表名称、universalprincipalname 对每个名称运行 get-user 命令,然后将其输出到新文件。
我试过这个:
get-content "m:\filename.csv" |
foreach {get-user '$_.user' -identity -resultsize unlimited} |
format-list name, userprincipalname |
out-file -FilePath m:\newfilename.csv
但它不起作用(我也用 import-csv 试过)。它似乎不是从我的列表中提取,而是直接从 office365 交换服务器中提取,当它最终完成时,其中的名称比我列表中的名称要多。
我的总体目标是生成所有没有移动设备的人的 upns 列表,以便我可以使用 powershell 命令禁用移动设备的主动同步和 OWA。不幸的是,我用来生成用户列表的命令以名字、姓氏格式生成了列表……而且我们有这么多用户,我不能只在 excel 中连接这些东西,因为会有很多错误.
CSV 的布局如下:
Column1
name
first last
first last
first last
first last
【问题讨论】:
-
如果标题名为“name”,则必须使用
$_.name作为管道变量。 -
... AND ... 如果您想创建正确的 CSV 文件,您应该使用
Export-Csv而不是Out-File;-) -
你不是说用
Import-Csv代替Get-Content吗? -
@Bill_Stewart ...哎呀...我什至错过了...
-
你的意思是
Get-ADUser?
标签: powershell csv scripting