在一个命令中使用两个Gets

时间:2019-08-21 17:50:44

标签: powershell

我们正在尝试创建一个登录脚本,该脚本将导出脚本的结果,该结果将吐出当前已登录的用户以及他们所拥有的映射驱动器。问题在于运行两个“ Get”。

我尝试了不同的变体,所有变体什么都不输出或仅输出一个命令。这段代码是我所需要的,但不会输出我所需要的。

Get-CimInstance -class Win32_ComputerSystem | select "UserName" | Export-Csv -NoTypeInformation -Append \\sn01\installs\test\test.csv ; Get-WmiObject -Class Win32_MappedLogicalDisk | select "Name" , "ProviderName" | Export-Csv -NoTypeInformation -append \\sn01\installs\test\test.csv -Force

上半部分是我要输出的用户名,然后下半部分是我希望输出驱动器的盘符以及该驱动器的路径的东西。

理想情况下,我需要三列标题为“用户名”,“名称”,“ ProviderName”,其中包含用户名,驱动器号和驱动器路径。

1 个答案:

答案 0 :(得分:3)

您可以执行以下操作:

$user = Get-CimInstance -Class Win32_ComputerSystem | Select-Object Username
Get-WmiObject -Class Win32_MappedLogicalDisk |
    Select-Object @{n='UserName';e={$user.Username}},Name ,ProviderName |
        Export-Csv -NoTypeInformation -Path \\sn01\installs\test\test.csv -Force

说明:

您可以将具有Get-CimInstance属性的Username对象的输出存储到变量$user中。执行第二条Select-Object语句时,可以使用计算的属性Username,并从$user.Username属性中检索值。