PowerShell-Select-Object 表达式不接受变量

PowerShell-Select-Object 表达式不接受变量

我是 powershell 的新手,我正在尝试编写一个小脚本来检查公司计算机中的端口号。

foreach ($line in [System.IO.File]::ReadLines("C:\servers.txt")) {
Invoke-Command -HideComputername $line -ErrorAction SilentlyContinue { Get-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\Control\Termin*Server\WinStations\RDP*CP\ | Select-Object @{n='Hostname';e={$line}}, PortNumber}}

输出

Hostname   : 
PortNumber : 3389
RunspaceId : a6739f5a-c9ea-46a4-b9c0-ced6a49bd4f8

我想知道为什么主机名没有显示以及为什么输出显示“RunspaceID”值。

答案1

您正在使用 调用命令 使用以下参数:

-隐藏计算机名称

表示此 cmdlet 从输出显示中省略每个对象的计算机名称。默认情况下,生成对象的计算机的名称显示在显示中。

这可能是输出中缺少计算机名称的原因。

相关内容