【发布时间】:2021-10-29 00:21:31
【问题描述】:
我是 Stack Over flow 的新手,不知道如何开始。 我的组织中有大约 1500 台 PC 我想要的是在 PowerShell 中编写一个简单的脚本,该脚本将从文本文件中获取计算机列表作为输入,获取我的函数信息并将信息保存到 CSV 文件作为输出。
我正在尝试查找 RAM 模块容量 例如,如果您键入
WMIC /NODE:MachineName Memorychip get capacity
它会给你远程PC的每个模块容量大小;例如,我有一个系统,其中安装了 4 个 RAM 模块,每个 8 GB,因此输出将是
Capacity 8589934592 8589934592 8589934592 8589934592
表示 4 个插槽,每个插槽为 8 GB
我想要的是使用这个简单的命令在命令行或 PowerShell 中编写脚本(首选 PowerShell)。
更具体地说,这是我现在正在尝试的内容
$Result = @()
$servers = Get-Content "L:\Data.txt"
Foreach ($s in $servers) {
$Disk = (WMIC /NODE:$s MemoryChip Get Capacity)
$Object = New-Object -TypeName PSCustomObject -Property $Disk
}
$Result += $Object
}
$Result | Export-CSV "L:\RAMReport.csv" -NoTypeInformation -Encoding UTF8
希望我的问题能切中要害
非常感谢您的帮助
【问题讨论】:
-
Get-WmiObject -Class Win32_PhysicalMemory -ComputerName $s -Property Capacity而不是WMIC.exe有什么问题?或者(从 PowerShell 3.0 开始)此 cmdlet 已被Get-CimInstance取代? -
感谢 cmets,但问题是它提供了总容量,我需要的是每个 RAM 插槽的单独容量,我也有 System Center,但它也提供了总容量,在我的情况下不需要
-
如果有更好的方法来获得理想的结果,那就太好了
标签: powershell-3.0