How to get operating system info in .NET

原创 2004年10月05日 19:46:00
How to get operating system info in .NET
 B'mark-It! 
http://www.vbcity.com/forums/faq.asp?fid=30&cat=System&#TID4878


 - posted by jspano - last updated on 7/28/2003 4:11:03 AM 
1 comment(s) [ read comments ]
  - url -  http://www.vbcity.com/forums/faq.asp?tid=4878
In VS.Net it is easy to get operating system info

For C#

Code:
// Get the Operating System From Environment Class
OperatingSystem os = Environment.OSVersion;

// Get the version information
Version ver = os.Version;

Console.WriteLine(ver.Major);
Console.WriteLine(ver.Minor);
Console.WriteLine(ver.Revision);
Console.WriteLine(ver.Build);

// Get Platform Info
Console.WriteLine(os.Platform);


For VB.NET

Code:
Dim os As OperatingSystem
os = Environment.OSVersion
Dim ver As Version
ver = os.Version

'Get the version info
Console.WriteLine(ver.Major)
Console.WriteLine(ver.Minor)
Console.WriteLine(ver.Revision)
Console.WriteLine(ver.Build)

'Get the platform
Console.WriteLine(os.Platform.ToString)


The output for a Windows 2000 pro computer:
5
0
0
2195
Win32NT



得到操作系统版本信息

http://dotnet.aspx.cc/ShowDetail.aspx?id=6977HLMY-ELPN-4KIR-BI89-7YS2LNENT5HR
MsgBox(Environment.OSVersion.ToString)

NET Framework类库的System.Net名称空间提供了一个简单的网络编程接口。Dns类提供了简单的域名解析功能,它是一个静态的类,可以通过Internet Domain Name System(DNS)得到指定主机的信息,DNS查询得到的主机信息是一个IPHostEntry类的实例。如果指定的主机在DNS数据库中有多于一个的Entry,IPHostEntry将包含多个地址及其别名。下面的代码实现了得到机器所有IP的功能。

http://dotnet.aspx.cc/ShowDetail.aspx?id=D5E84294-21AC-4815-579F-7F8786A31B3D



WMI 脚本入门:第三部分

http://www.microsoft.com/china/MSDN/library/enterprisedevelopment/softwaredev/WDdnclinicscripting3.mspx


什么是 WMI?

WMI最初于 1998 年作为一个附加组件与 Windows NT 4.0 Service Pack 4 一起发行,是内置在 Windows 2000、Windows XP 和 Windows Server 2003 系列操作系统中核心的管理支持技术。基于由 Distributed Management Task Force (DMTF) 所监督的业界标准,WMI 是一种规范和基础结构,通过它可以访问、配置、管理和监视所有的 — 几乎所有的 Windows 资源。

要掌握 WMI 的强大功能和范围,需要考虑以前(或者现在)如何管理并监视 Windows 工作站和服务器。您可能用过或仍在使用众多的图形化管理工具来管理 Windows 资源 — 例如磁盘、事件日志、文件、文件夹、文件系统、网络组件、操作系统设置、性能数据、打印机、进程、注册表设置、安全性、服务、共享、用户、组等等。

尽管图形化工具提供了一种功能管理解决方案,它们所共有的东西是什么呢?一种答案是,在 WMI 之前,所有的 Windows 图形化管理工具都依赖于 Win32 应用程序编程接口(Application Programming Interfaces,APIs)来访问和管理 Windows 资源。为什么?因为在 WMI 之前,能够以编程方式访问 Windows 资源的惟一方法就是通过 Win32 API。这种情况使 Windows 系统管理员无法通过一种简便的方法利用常见的脚本语言来自动化常用的系统管理任务,因为大多数脚本语言都不能直接调用 Win32 API。通过提供一致的模型和框架,WMI 改变了这种情况 — 通过模型和框架,所有的 Windows 资源均被描述并公开给外界。最好的一点是,系统管理员可以使用 WMI 脚本库创建系统管理脚本,从而管理任何通过 WMI 公开的 Windows 资源!

使用 Windows Script Host 和 Microsoft Visual Basic Scripting Edition (VBScript),或任何支持 COM 自动化的脚本语言(例如,ActiveState Corporation 的 ActivePerl),可以编写脚本来管理和自动化企业系统、应用程序和网络的下列方面:

Windows Server 2003Windows XP 专业版和 Windows 2000 系统管理。您可以编写脚本来检索性能数据,管理事件日志、文件系统、打印机、进程、注册表设置、计划程序、安全性、服务、共享以及很多其他的操作系统组件和配置设置。

网络管理。您可以创建基于 WMI 的脚本来管理网络服务,例如 DNS、DHCP 和启用 SNMP 的设备。

实时健全监视。使用 WMI 事件订阅,您可以编写代码以在事件发生时监视并响应事件日志项,监视并响应文件系统、注册表修改及其他实时的操作系统更改。基本上对 WMI来说,WMI 事件订阅和通知是在 SNMP 环境中 SNMP 陷阱是什么。

Windows .NET 企业服务器管理。您可以编写脚本来管理 Microsoft Application Center、Operations Manager、Systems Management Server、Internet Information Server、Exchange Server 和 SQL Server。

http://www.microsoft.com/china/MSDN/library/enterprisedevelopment/softwaredev/WDdnclinicscripting.mspx

Imports System Imports System.Net Module Module1 Sub Main() Dim strMachineName As String '得到主机名 strMachineName = Dns.GetHostName() Console.WriteLine("Host Name: " + strMachineName) '通过名字得到主机 Dim ipHost As IPHostEntry ipHost = Dns.GetHostByName(strMachineName) '你可以得到网络上任何站点的DNS数据信息。 '语法如下: 'ipHost = Dns.GetHostByName("xml.sz.luohuedu.net") Console.WriteLine("Host Aliases: " + ipHost.Aliases.Length.ToString()) '以数组的形式返回相关主机的地址信息 Dim ipAddr() As IPAddress = ipHost.AddressList Dim count As Integer 'Enumerate the IP Addresses For count = 0 To ipAddr.GetUpperBound(0) Console.Write("IP 地址 {0}:{1} ", count, _ ipAddr(count).ToString) Next End Sub End Module



NET Framework Class Library  

PlatformID Enumeration

Describes the platforms supported by an assembly.

[Visual Basic]
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemplatformidclasstopic.asp
<Serializable> Public Enum PlatformID [C#] [Serializable] public enum PlatformID [C++] [Serializable] __value public enum PlatformID [JScript] public Serializable enum PlatformID

Remarks

These flags are used to bind to an assembly.

Members

Member name Description
Win32NT

Supported by the .NET Compact Framework.

The operating system is Windows NT or later.
Win32S

Supported by the .NET Compact Framework.

The operating system is Win32s. Win32s is a layer that runs on 16-bit versions of Windows to provide access to 32-bit applications.
Win32Windows

Supported by the .NET Compact Framework.

The operating system is Windows 95 or later.
WinCE

Supported by the .NET Compact Framework.

The operating system is Windows CE .NET.

Requirements

Namespace: System

Platforms: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 family, .NET Compact Framework

Assembly: Mscorlib (in Mscorlib.dll)

See Also

System Namespace | PlatformID Enumeration (Visual J# Syntax) | Managed Extensions for C++ Programming 






Get OS Name and Version
http://weblogs.asp.net/mhawley/archive/2004/08/23/219117.aspx

Awhile ago, I had come across an article describing on how to get the current operating system version and name through .NET. While this article was great for Windows XP and prior OSes, it didn't really pan out too much for Windows 2003 Server and Longhorn. So after a bit of digging to determine the version numbers (thanks to Adam for getting me the current Longhorn version #) I was able to successfully map the correct versions/names. Here's my code:

  GetOSName()
{
System.OperatingSystem os = System.Environment.OSVersion;
osName = "Unknown";


(os.Platform)
{
System.PlatformID.Win32Windows:
(os.Version.Minor)
{
0:
osName = "Windows 95";
;
10:
osName = "Windows 98";
;
90:
osName = "Windows ME";
;
}
;
System.PlatformID.Win32NT:
(os.Version.Major)
{
3:
osName = "Windws NT 3.51";
;
4:
osName = "Windows NT 4";
;
5:
(os.Version.Minor == 0)
osName = "Windows 2000";
(os.Version.Minor == 1)
osName = "Windows XP";
(os.Version.Minor == 2)
osName = "Windows Server 2003";
;
6:
osName = "Longhorn";
;
}
;
}

osName + ", " + os.Version.ToString();
}

Adam has also informed me that in Longhorn, or rather .NET 2.0, there is a new property that will return this for you, VersionString.

posted on Monday, August 23, 2004 4:26 PM

How to Make a Computer Operating System -- Chapter1, 2

本来打算按照《30天自制操作系统》完成一个自己的操作系统,但是由于作者是在Windows进行开发的,而我使用的是linux系统,很多地方会有差别,因此,从现在起,开始转向参考github上SamyPe...
  • hsapyzx
  • hsapyzx
  • 2017年01月29日 19:26
  • 124

How To Get System Info In Linux

http://www.computerbob.com/guests/how_to_get_system_info_in_linux.php
  • davil_dev
  • davil_dev
  • 2011年07月30日 10:31
  • 3337

[PHP]How to get the system info?

it is much easier to get the same result through PHP because the PHP language offers some global con...
  • wonderfan
  • wonderfan
  • 2014年07月06日 12:43
  • 655

npm WARN notsup Not compatible with your operating system or architecture: fsevents@1.1.2

fsevent是mac osx系统的,你是在win或者Linux下使用了 所以会有警告,忽略即可 npm WARN notsup Not compatible with your operating ...
  • feicongcong
  • feicongcong
  • 2017年08月15日 10:25
  • 1515

How To Get Hardware Information (CPU ID, MainBoard Info, Hard Disk Serial, System Information , ...)

http://www.codeproject.com/KB/system/GetHardwareInformation.aspx Download source code - 15.9 KBDownl...
  • yacper
  • yacper
  • 2009年11月02日 19:41
  • 1983

Implement a Shell by yourself -- MIT xv6 shell

Implement a Shell by yourself -- MIT xv6 shell 这个其实是作为6.828的一个小课堂作业 ... 着重分析构建思想和过程,具体代码实现去gith...
  • u011368821
  • u011368821
  • 2015年04月19日 02:45
  • 3719

Operating System not found for VMware解决方案

 今天在群里聊天遇到一个朋友安装虚拟系统的过程中出了点小问题。他用VMware做为虚拟机软件。宿主操作系统是Vista ,虚拟系统想安装个XP。在创建虚拟机的过程中都很顺利,当把XP盘放进光驱后,安装...
  • eudemon_cn
  • eudemon_cn
  • 2009年10月10日 13:40
  • 96981

关于服务器operating system not found的一些问题

开机显示operating system not found的问题原因及解答。 这段英文用中文直译过来就是电脑找不到操作系统,既然找不到操作系统那肯定是跟硬盘有关系。 1.进入BIOS,查看一下启...
  • JasonChiang1
  • JasonChiang1
  • 2016年12月28日 14:50
  • 542

linux cpufreq framework(5)_ARM big Little driver

1. 前言 也许大家会觉得奇怪:为什么Linux kernel把对ARM big·Lttile的支持放到了cpufreq的框架中? 众所周知,ARM的big·Little架构,也称作HMP...
  • G_linuxer_
  • G_linuxer_
  • 2016年05月05日 11:52
  • 554

VMware安装win7提示 operating system not found

在虚拟机上安装win7时,进度条读完,重启后提示operating system not found,可能原因是在使用分区工具格式化时没有把C盘设置为主分区并激活。 解决办法: 进入PE或者使用分区工...
  • SHENNONGZHAIZHU
  • SHENNONGZHAIZHU
  • 2016年07月16日 02:30
  • 11828
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:How to get operating system info in .NET
举报原因:
原因补充:

(最多只允许输入30个字)