If you just want to profile a local or remote system and get back the most commonly used pieces of information, then do not waste time for your own solutions. Simply reuse systeminfo.exe, and feed the data into PowerShell:- function Get-SystemInfo
- {
- param($ComputerName = $env:COMPUTERNAME)
-
- $header = 'Hostname','OSName','OSVersion','OSManufacturer','OSConfiguration','OS Build Type','RegisteredOwner','RegisteredOrganization','Product ID','Original Install Date','System Boot 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)','Network Card(s)'
-
- systeminfo.exe /FO CSV /S $ComputerName |
- Select-Object -Skip 1 |
- ConvertFrom-CSV -Header $header
- }
复制代码 When you store the result in a variable, you can easily access individual pieces of information:
PS> $info = Get-SystemInfo
PS> $info.Hostname
BatHome
PS> $info.'Logon Server'
\\BatHome
PS> $info.'System Boot Time'
03/26/2014 11:25:10
|
If you like the information to be called differently, simply change the list of property names to your liking. So if you do not like "System Boot Time", simply rename this label in the script to "BootTime", for example.
http://powershell.com/cs/blogs/tips/archive/2014/03/20/profiling-systems.aspx |