1

私は本当に単純だと知っている何かに行き詰まっていますが、私の人生では理解できません。

ホスト名のリストを含む .txt ファイルをインポートしようとしています。一度取得すると、スクリプトはインストールされている物理メモリの合計量を返します。

これまでのところ、私はこれを持っています:

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

何か案は?

ありがとう

4

3 に答える 3

8

現在のホスト名 ($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
于 2012-07-10T10:28:27.883 に答える
2

これはTotalPhysicalMemoryバイト単位であり、特別なコンピューター情報を取得するには、適切な変数名 (この場合は $box) を使用computernameしてコマンドに追加します。Get-WmiObject

Get-WmiObject -computername $box Win32_ComputerSystem

于 2012-07-10T10:32:07.583 に答える
1

試す

   function get
    {
    $boxes = Get-Content C:\Temp\hostnamesforRAM.txt
    foreach($box in $boxes)
    {
    "$box -> $((Get-WmiObject Win32_ComputerSystem -computername $box).TotalPhysicalMemory)"
    }
    }
于 2012-07-10T10:31:50.987 に答える