如何直接获取systeminfo 里面的OS信息
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何直接获取systeminfo 里面的OS信息相关的知识,希望对你有一定的参考价值。
想直接通过命令CMD,获取当前系统的信息,systeminfo 虽然可以获取,但是里面的信息太多,能否直接只获取单个OS的信息呢,我可以直接指定获取是OS 是版本和版本号信息
systeminfo | find "system model" /iwmic 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 的详细信息