gpt4 book ai didi

powershell - foreach语句显示问题

转载 作者:行者123 更新时间:2023-12-03 00:50:05 25 4
gpt4 key购买 nike

我正在尝试通过提供文本文件中的服务器列表来从我的主机服务器中获取VM列表。它具有FOREACH循环来获取每一行并从中获取VM的列表。而是同时显示所有VM List togeter和主机名,而不是根据输入的每一行进行分隔。我尝试使用$ list之类的变量存储它,但是它不显示任何输出。

$name= get-content C:\monitor\Serverlist\Serverlist2.txt
foreach($name1 in $name)

{
Write-Host $name1
Get-VM -computername $name1

}

我得到的输出是:
HOSTNAME1
HOSTNAME2
HOSTNAME3
HOSTNAME4

Name State CPUUsage(%) MemoryAssigned(M) Uptime Status
---- ----- ----------- ----------------- ------ ------
VM_006 Running 0 4096 19.19:46:12 Operating normally
VM_007 Running 0 4096 9.01:10:34 Operating normally
VM_008 Running 0 4096 8.23:12:15 Operating normally
VM_009 Running 0 4096 9.00:34:46 Operating normally
VM_010 Running 0 4096 9.01:53:33 Operating normally
VM_011 Running 0 4096 8.23:33:38 Operating normally
VM_012 Running 1 4096 2.22:17:51 Operating normally
VM_013 Running 0 4096 8.07:37:06 Operating normally
VM_017 Running 0 4096 08:20:28 Operating normally
VM_018 Running 0 4096 9.01:47:24 Operating normally
VM_019 Running 0 4096 9.01:33:16 Operating normally
VM_020 Running 0 4096 6.23:33:04 Operating normally
VM_021 Running 0 4096 9.01:28:32 Operating normally
VM_022 Running 0 4096 7.09:05:32 Operating normally
VM_023 Running 0 4096 8.19:35:35 Operating normally
VM_024 Running 0 4096 8.19:31:40 Operating normally
VM_025 Running 0 4096 9.00:01:48 Operating normally

所有VMS和HOSTS都将一起显示,而不是一次搜索和显示一台服务器。但是无法做到这一点,我是新加入Powershell的人,知道我哪里出错了吗?

我期望如下结果:
HOSTNAME1

Name State CPUUsage(%) MemoryAssigned(M) Uptime Status
---- ----- ----------- ----------------- ------ ------
VM_006 Running 0 4096 19.19:46:12 Operating normally
VM_007 Running 0 4096 9.01:10:34 Operating normally
VM_008 Running 0 4096 8.23:12:15 Operating normally

HOSTNAME2

Name State CPUUsage(%) MemoryAssigned(M) Uptime Status
---- ----- ----------- ----------------- ------ ------
VM_009 Running 0 4096 9.00:34:46 Operating normally
VM_010 Running 0 4096 9.01:53:33 Operating normally
VM_011 Running 0 4096 8.23:33:38 Operating normally
VM_012 Running 1 4096 2.22:17:51 Operating normally
VM_013 Running 0 4096 8.07:37:06 Operating normally

最佳答案

显然,您是从交互式Powershell session 中运行脚本的。 Powershell的行为方式如下:将Write-Host的任何内容直接输出到控制台,而将未指示转发到控制台的任何内容(并且Get-VM返回VM对象数组,并且不指示Powershell将em写入控制台)累积为脚本结果将转发到管道(如果有)。但是,然后把戏变成了any output within Powershell is piped to Out-Default 。只有VM对象,并且Out-Default在您观察到的整个脚本输出中构成了一个表。为了达到所需的行为,请将Get-VM输出直接转发到Out-DefaultFormat-Table

foreach($name1 in $name)
{
Write-Host $name1
Get-VM -computername $name1 | out-default
}

关于powershell - foreach语句显示问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31458162/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com