Powershell:Foreach输入

Powershell:Foreach输入,powershell,foreach,ram,Powershell,Foreach,Ram,我被困在一些我知道很简单的事情上,但我一生都搞不懂 我正在尝试导入一个包含主机名列表的.txt文件,一旦检索该文件,脚本将返回安装的totalphysicalmemory的数量 到目前为止,我有: function get { $boxes = Get-Content C:\Temp\hostnamesforRAM.txt foreach($box in $boxes) { Get-WmiObject Win32_ComputerSystem | select TotalPhysicalMemo

我被困在一些我知道很简单的事情上,但我一生都搞不懂

我正在尝试导入一个包含主机名列表的.txt文件,一旦检索该文件,脚本将返回安装的totalphysicalmemory的数量

到目前为止,我有:

function get
{
$boxes = Get-Content C:\Temp\hostnamesforRAM.txt
foreach($box in $boxes)
{
Get-WmiObject Win32_ComputerSystem | select TotalPhysicalMemory
}
}
get
但是,它只返回以下内容:

4151570432
4151570432
4151570432
4151570432
4151570432
有什么想法吗


谢谢

您需要将当前主机名($box)传递给computerName参数,如果没有它,您将从自己的计算机获取值

function get
{
$boxes = Get-Content C:\Temp\hostnamesforRAM.txt
foreach($box in $boxes)
{
Get-WmiObject Win32_ComputerSystem -ComputerName $box | select TotalPhysicalMemory
}
}

get
另一种更简短的方法是将文件内容传递给ComputerName参数。ComputerName参数接受一组名称:

Get-WmiObject Win32_ComputerSystem -ComputerName (Get-Content C:\Temp\hostnamesforRAM.txt) | 
Select-Object Name,TotalPhysicalMemory

您需要将当前主机名($box)传递给computerName参数,没有它,您将从自己的计算机获取值

function get
{
$boxes = Get-Content C:\Temp\hostnamesforRAM.txt
foreach($box in $boxes)
{
Get-WmiObject Win32_ComputerSystem -ComputerName $box | select TotalPhysicalMemory
}
}

get
另一种更简短的方法是将文件内容传递给ComputerName参数。ComputerName参数接受一组名称:

Get-WmiObject Win32_ComputerSystem -ComputerName (Get-Content C:\Temp\hostnamesforRAM.txt) | 
Select-Object Name,TotalPhysicalMemory
试一试

试一试


这是
TotalPhysicalMemory
以字节为单位,要获取特殊的计算机信息,请将
computername
添加到命令
get WmiObject
,并使用正确的变量名($box):


Get WmiObject-computername$box Win32\u ComputerSystem
这是
TotalPhysicalMemory
以字节为单位,要获取特殊的计算机信息,请将
computername
添加到命令
Get WmiObject
,并使用正确的变量名($box):


获取WmiObject-computername$box Win32\u ComputerSystem

谢谢您的回复。我尝试了您的建议,但它返回错误“无法验证参数“ComputerName”上的参数。该参数为null或空”迭代器变量名称错误,请使用
-ComputerName$box
,而不是
-ComputerName$谢谢@akim,我正在使用管道示例@如果我更新了我的答案,现在试试看。用$box代替$\我尝试了你的简短答案,效果非常好!谢谢谢伊和所有人的建议!谢谢你的回复,谢伊。我尝试了您的建议,但它返回错误“无法验证参数“ComputerName”上的参数。该参数为null或空”迭代器变量名称错误,请使用
-ComputerName$box
,而不是
-ComputerName$谢谢@akim,我正在使用管道示例@如果我更新了我的答案,现在试试看。用$box代替$\我尝试了你的简短答案,效果非常好!谢谢谢伊和所有人的建议!