【发布时间】:2020-01-03 19:42:16
【问题描述】:
也许这比我想象的要简单,但我无法根据我的搜索在网络上找到答案。
我创建了一个函数,它从文件中获取计算机名称列表并将它们存储在变量中以用于创建新的 pssession 并连接到所有计算机,然后使用 invoke-command 在用户目录上运行 get-childitem 和获取每台机器上的所有用户目录。然后我在脚本块上使用 select 来选择目录名、lastwritetime 和计算机名。这将输出到具有 3 列的表并且工作正常。我将结果存储在一个变量中,然后将其输出到一个文件中。我的问题是,有没有一种方法可以轻松地根据机器名称对结果进行分组?我希望输出恢复为每台计算机的换行空间。我现在得到的是所有机器的结果。我知道如果我对每台计算机使用 foreach 循环和调用命令,输出将被分开,但对于许多机器来说,枚举每台计算机需要一些时间。这是我作为输出的示例:
UserDirectory LastWriteTime ComputerName
USer1 1/2/2020 13:50 Computer14
User6 1/2/2020 13:15 Computer14
User8 9/25/2019 17:14 Computer14
User3 8/29/2019 11:17 Computer14
User1 1/2/2020 13:50 Computer02
User6 1/2/2020 13:15 Computer02
User8 9/25/2019 17:14 Computer02
User1 1/2/2020 13:50 Computer05
User6 1/2/2020 13:15 Computer05
User2 12/21/2019 3:23 Computer05
User7 10/24/2019 10:13Computer05
User8 9/25/2019 17:14 Computer05
User6 1/2/2020 13:55 Computer15
User1 1/2/2020 13:50 Computer15
User4 11/9/2019 11:36 Computer15
User8 10/5/2019 21:10 Computer15
这是我想要的输出。
UserDirectory LastWriteTime ComputerName
USer1 1/2/2020 13:50 Computer14
User6 1/2/2020 13:15 Computer14
User8 9/25/2019 17:14 Computer14
User3 8/29/2019 11:17 Computer14
User1 1/2/2020 13:50 Computer02
User6 1/2/2020 13:15 Computer02
User8 9/25/2019 17:14 Computer02
User1 1/2/2020 13:50 Computer05
User6 1/2/2020 13:15 Computer05
User2 12/21/2019 3:23 Computer05
User7 10/24/2019 10:13Computer05
User8 9/25/2019 17:14 Computer05
User6 1/2/2020 13:55 Computer15
User1 1/2/2020 13:50 Computer15
User4 11/9/2019 11:36 Computer15
User8 10/5/2019 21:10 Computer15
【问题讨论】:
-
AFAIK 没有内置方法可以实现您的要求。您必须自己创建它。您可以尝试使用
Group-Object将结果拆分为逻辑块并以一种单独的块的形式输出
标签: powershell formatting output invoke-command