【问题标题】:Powershell Script to Gather PC hardware details from existing Computers用于从现有计算机收集 PC 硬件详细信息的 Powershell 脚本
【发布时间】:2020-05-29 01:19:36
【问题描述】:

大家好

我希望以前有人做过这种情况。我正在寻找一个 PowerShell 脚本来收集本地网络中的 PC 硬件详细信息。它是 Windows 7,10 而不是 DC。

我想从每台 PC 获得的详细信息是

  1. RAM(名称和大小)

  2. CPU(名称和大小)

  3. HDD(名称和大小)

  4. 本地用户配置文件

由于 PC 不在域中,这是否可能(逻辑上我看不出它是如何可能的)。

任何建议都会有所帮助

爱与和平 我的人类同胞

【问题讨论】:

  • 如果设备不在域中,那么您希望如何识别它们?除非您将物理上在机器上,此时您也可以加入该设备的域,否则无法远程从中提取数据。

标签: powershell networking local powershell-remoting


【解决方案1】:

这应该可以解决问题:

Add-Type -AssemblyName System.Collections

[System.Collections.Generic.List[string]]$hdd = @()

$system = Get-CimInstance CIM_ComputerSystem
$cpu    = Get-CimInstance CIM_Processor
$users  = Get-WmiObject -ComputerName "localhost" -Class Win32_UserAccount -Filter "LocalAccount='True'" |Select PSComputername, Name, Status, Disabled, AccountType, Lockout, PasswordRequired, PasswordChangeable, SID

$driveLetter = 'C'
$currentHdd  = Get-CimInstance Win32_LogicalDisk -Filter "DeviceID = '$($driveletter):'"

while( $currentHdd.DeviceID ) {

    switch( $currentHdd.DriveType ) {
        3 {
            $driveType = "HDD"
            break;
        }
        5 {
            $driveType = "Optical"
            break;
        }
        default {
            $driveType = "Other"
        }
    }

    $drive = $driveletter + ':   ' + $driveType + ("   {0:N2}" -f ($currentHdd.Size/1GB) + " GB  ") + ("{0:N2}" -f ($currentHdd.FreeSpace/1GB) + " GB  ")
    $hdd.Add( $drive )

    $driveLetter = ([char](++([byte]([char]$driveLetter)))).ToString()
    $currentHdd = Get-CimInstance Win32_LogicalDisk -Filter "DeviceID = '$($driveletter):'"
}

$ram = "{0:N2}" -f ($system.TotalPhysicalMemory/1GB) + " GB"
$cpuName = $cpu.Name

"CPU:   $cpuName"
"RAM:   $ram"
"Disks:"
$hdd
"Users:"
$users

【讨论】:

  • 这个目标机器怎么不在域上?
【解决方案2】:

这将对不在域中的机器起到作用。
您将需要:

  • IP 地址
  • 远程计算机的管理员登录凭据


以下语法将查询 Windows7-Windows10 机器的 RAM、CPU、HDD 和用户配置文件:

wmic /NODE:"127.0.0.1" memorychip get capacity & wmic /NODE:"127.0.0.1" cpu list brief & wmic /NODE:"127.0.0.1" diskdrive get Name, Manufacturer, Model & wmic /NODE:"127.0.0.1" useraccount get name

对于上面的示例,我只是使用环回 IP(查询您所在的本地 PC),但您可以替换任何 IP 地址。

如果需要,您还可以指定 wmic 工具的凭据。在此处了解有关 wmic 的更多信息:
https://docs.microsoft.com/en-us/windows/win32/wmisdk/wmic

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多