如何直接获取systeminfo 里面的OS信息

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何直接获取systeminfo 里面的OS信息相关的知识,希望对你有一定的参考价值。

想直接通过命令CMD,获取当前系统的信息,systeminfo 虽然可以获取,但是里面的信息太多,能否直接只获取单个OS的信息呢,我可以直接指定获取是OS 是版本和版本号信息

systeminfo | find "system model" /i
wmic bios get serialnumber 获取硬件序列号
"wmic csproduct get name" 获取型号
远程: systeminfo /s computername
wmic /node:"IPorCOMPUTERNAME" bios get serialnumber
WMIC /NODE:"computer1" /USER:"domainname\\username" /PASSWORD:"userpassword" OS GET Caption,CSDVersion,CSName
如何获取电脑序列号的两种方法: 第二种可以获取域中远程的电脑http://support.microsoft.com/kb/558124
测试在中:win7可以被远程wmic xp不行,似乎不同品牌机器也不能被远程wmic

以下是systeminfo参数
Host Name:
OS Name:
OS Version:
OS Manufacturer:
OS Configuration:
OS Build Type:
Registered Owner:
Registered Organization:
Product ID:
Original Install Date:
System Up Time:
System Manufacturer:
System Model:
System type:
Processor(s):
BIOS Version:
Windows Directory:
System Directory:
Boot Device:
System Locale:
Input Locale:
Time Zone:
Total Physical Memory:
Available Physical Memory
Virtual Memory: Max Size:
Virtual Memory: Available
Virtual Memory: In Use:
Page File Location(s):
Domain:
Logon Server:
Hotfix(s):
#############################
今天加一个dmidecode ,这个是linux下的查看硬件工具,也有windows 版本
装了之后必须去安装目录下才能用命令
#############################

【例】将当前系统BIOS,CPU,主板等信息输出到一个html网页文件,命令如下:
::得到系统信息.bat,运行bat文件即可
::系统信息输出到HTML文件,查看帮助: wmic /?
::wmic [系统参数名] list [brief|full] /format:hform >|>> [文件名]

wmic bios list brief /format:hform > PCinfo.html
wmic baseboard list brief /format:hform >>PCinfo.html
wmic cpu list full /format:hform >>PCinfo.html
wmic os list full /format:hform >>PCinfo.html
wmic computersystem list brief /format:hform >>PCinfo.html
wmic diskdrive list full /format:hform >>PCinfo.html
wmic memlogical list full /format:hform >>PCinfo.html
PCinfo.html
#####################################################

for /F %%i in (serverlist.txt) do (
echo Processing %%i...
wmic /Failfast:ON /node:"%%i" >"%%i_OS.txt" OS Get csname,name
wmic /Failfast:ON /node:"%%i" >>"%%i_OS.txt" bios Get serialnumber
)
PAUSE
####################################################################
via:http://wangdehe88.blog.163.com/blog/static/12332866201261210521648/
强大的命令行工具wmic
.wmic=Microsoft Windows Management Instrumentation
2. C:\\WINDOWS\\system32\\wbem 下的东西,特别是.xsl格式化文件,实现wmic的格式化输出
如wmic /output:c:\\process.html process list /format:htable.xsl
/format:textvaluelist.xsl
/format:hform.xsl
/format:htable.xsl
/format:csv.xsl
/format:xml.xsl
3.wmic可以做什么?系统管理、远程主机信息获取。。。都可以
4.wmic /?
查看wmic对象有何可用属性: wmic 对象名称 get /? 例如
wmic process get /?

查看wmic对象某个属性的值: wmic 对象名称 get 对象某个属性 例如
wmic process get name

PROCESS - 进程管理
::列出进程的核心信息,类似任务管理器
wmic process list brief
::新建notepad进程
wmic process call create notepad
::列出进程的信息
wmic process get caption,handle,commandline,executablepath
::结束进程
wmic process [handle/PID] delete
wmic process [handle/PID] call terminate
::结束svchost.exe进程,路径为非C:\\WINDOWS\\system32\\svchost.exe的
wmic process where "name=\'svchost.exe\' and ExecutablePath<>\'C:\\\\WINDOWS\\\\system32\\\\svchost.exe\'" call Terminate
::结束svchost.exe进程,路径为C:\\WINDOWS\\svchost.exe的(关键点:路径中的\\一定要换成\\\\)
wmic process where "name=\'svchost.exe\' and
参考技术A cmd中输入ver就可以获取你要的信息

批处理 - 尝试获取 systeminfo.exe 的详细信息

【中文标题】批处理 - 尝试获取 systeminfo.exe 的详细信息【英文标题】:Batch - trying to obtain the detail of systeminfo.exe 【发布时间】:2014-03-27 22:05:16 【问题描述】:

喜欢这个结果..

SYSTEMINFO >> RESULTS.TXT

系统信息 |找到“网卡”

但是,这仅捕获第一行条目:

Network Card(s):           2 NIC(s) Installed.

我真正想看到的是:

Network Card(s):           2 NIC(s) Installed.
                           [01]: VMware Accelerated AMD PCNet Adapter
                                 Connection Name: Production
                                 DHCP Enabled:    No
                                 IP address(es)
                                 [01]: 1.1.1.1
                           [02]: VMware Accelerated AMD PCNet Adapter
                                 Connection Name: Backup
                                 DHCP Enabled:    No
                                 IP address(es)
                                 [01]: 2.2.2.2

无需运行整个系统信息 - 我可以捕获有关网卡的详细信息吗?

也曾尝试通过 PowerShell 来推动这一点..

& systeminfo.exe | & FIND.exe "Network Card"

而且也不工作.. :(

【问题讨论】:

【参考方案1】:

如果像我一样,Network Card(s): 总是在systeminfo 的输出中出现在最后,那么以下内容应该适合你。

@echo off
set s=
for /f "delims=" %%a in ('systeminfo') do (
    if defined s echo %%a
    for /f %%b in ("%%a") do if "%%b"=="Network" echo %%a & set s=1
)

s 到达Network Card(s) 时将其设置为开关并从那里输出所有内容。

IF Network Card(s) 部分没有出现在最后,您需要更明确的方法来获取网卡信息,并且您可以接受 CSV 格式的输出,那么这应该也可以工作(尽管可能过于复杂):

@echo off
setLocal enableDelayedExpansion
set c=0
for /f "delims=" %%a in ('systeminfo /FO CSV') do (
    set line=%%a
    set line=!line:,= !
    if "!c!"=="0" for %%b in (!line!) do (
        set /a c+=1
        if "%%~b"=="Network Card(s)" echo %%~b
    ) else for %%c in (!line!) do (
        set /a c-=1
        if "!c!"=="0" echo %%~c
    )
)

【讨论】:

这太棒了!!我喜欢它并且效果很好。我真的很想摆脱使用 PowerShell。【参考方案2】:

好吧,即使我刚刚阅读了您试图摆脱 PowerShell 的其中一个 cmets,因为我让它工作了,并且它转储了您的示例所拥有的所有信息,我想我还是会发布它.. . :)

function Get-NetworkCards 
[cmdletbinding()]
param(
    [parameter(Mandatory=$false)][string]$ComputerName = "LocalHost"
)
    $adapterCfg = ( gwmi -Class Win32_NetworkAdapterConfiguration -ComputerName $ComputerName | Sort-Object Index )

    $adapter = ( gwmi -Class Win32_NetworkAdapter -ComputerName $ComputerName | Sort-Object Index )

    foreach ( $nic in $adapterCfg ) 
        if( $nic.IPEnabled -eq $true ) 
            foreach ( $settings in $adapter ) 
                if( $settings.DeviceID -eq $nic.Index ) 
                    $curr = $settings
                
            
            $props = [ordered]@
                Description = $nic.Description;
                Connection = $curr.NetConnectionID;
                DHCPEnabled = $nic.DHCPEnabled;
                IPAddresses = $nic.IPAddress;
            

            $Obj = New-Object PSObject -Property $props

            $Obj
        
    


get-networkcards

【讨论】:

非常感谢您的帮助。我能够运行 PowerShell 和 Batch。我可以运行 VBS,但必须进行代码签名。只是想摆脱运行许多技术的困扰。再次感谢! 附带说明,您的实际上并没有返回 systeminfo 所做的一切。 SystemInfo 踢回物理适配器。如果你用这个替换你的整个 ForEach 循环,它会修复它:ForEach($NIC in $adapter)If($NIC.PhysicalAdapter)$Curr = $adapterCfg|?$_.Index -eq $NIC.DeviceID;[pscustomobject]@Description = $curr.Description;Connection = $NIC.NetConnectionID;DHCPEnabled = $Curr.DHCPEnabled;IPAddresses = $Curr.IPAddress @TheMadTechnician -- 好点,我错过了那个小细节...... :)【参考方案3】:

您想在 PowerShell 中执行的操作 - http://blogs.technet.com/b/heyscriptingguy/archive/2008/09/08/how-do-i-find-information-about-the-network-adapter-cards-on-my-computer.aspx

引用他们的脚本:

Param($computer = "localhost")
function funline ($strIN)

 $num = $strIN.length
 for($i=1 ; $i -le $num ; $i++)
   $funline = $funline + "=" 
    Write-Host -ForegroundColor yellow $strIN 
    Write-Host -ForegroundColor darkYellow $funline
 #end funline

Write-Host -ForegroundColor cyan "Network adapter settings on $computer"
Get-WmiObject -Class win32_NetworkAdapterSetting `
-computername $computer |
Foreach-object `
 
  If( ([wmi]$_.element).netconnectionstatus -eq 2)
    
     funline("Adapter: $($_.setting)")
     [wmi]$_.setting
     [wmi]$_.element
     #end if
  #end foreach

【讨论】:

【参考方案4】:

PowerShell 中带有文本提取的系统信息:

$sys = systeminfo
$start = ($sys | select-string "network card" -SimpleMatch).LineNumber
$sys[($start-1)..($sys.Length-1)] | Out-File RESULTS.TXT

就我个人而言,我会使用基于 WMI 的解决方案来获取网络信息。

【讨论】:

以上是关于如何直接获取systeminfo 里面的OS信息的主要内容,如果未能解决你的问题,请参考以下文章

批处理 - 尝试获取 systeminfo.exe 的详细信息

Windows下的systeminfo命令获取系统信息

Windows下的systeminfo命令获取系统信息

使用SYSTEMINFO类获取UNITY3D运行设备的各类信息

批量获取多远程 Windows 服务器的系统信息

使用SystemInfo类获取Unity3D运行设备的各类信息(CPU类型,显卡类型等)