Environment 類別常用屬性與方法
| 需求 | 程式碼 | 說明 |
| 作業系統平台 | Environment.OSVersion.Platform | Win32NT, Unix 等 |
| 作業系統版本 | Environment.OSVersion | 含 Version、ServicePack |
| 機器名稱 | Environment.MachineName | |
| 目前登入使用者 | Environment.UserName | |
| 網域名稱 | Environment.UserDomainName | |
| 邏輯磁碟機 | Environment.GetLogicalDrives() | 回傳 string[] (如 C:\, D:\) |
| 工作集記憶體 (MB) | (Environment.WorkingSet / 1024 / 1024).ToString("F2") | 目前進程實體記憶體用量 |
| .NET CLR 版本 | Environment.Version | 如 4.0.30319.42000 |
封裝為工具類
public static class SystemInfoHelper
{
public static string OSPlatform => Environment.OSVersion.Platform.ToString();
public static string OSVersion => Environment.OSVersion.ToString();
public static string MachineName => Environment.MachineName;
public static string UserName => Environment.UserName;
public static string DomainName => Environment.UserDomainName;
public static string LogicalDrives => string.Join("; ", Environment.GetLogicalDrives());
public static string WorkingSetMB => (Environment.WorkingSet / 1024.0 / 1024.0).ToString("F2") + " MB";
public static string ClrVersion => Environment.Version.ToString();
}
ASP.NET 頁面顯示範例
<%@ Page Language="C#" %>
<%@ Import Namespace="System" %>
<html>
<body>
<h3>伺服器環境資訊</h3>
<table border="1" cellpadding="5">
<tr><td>OS Platform</td><td><%= SystemInfoHelper.OSPlatform %></td></tr>
<tr><td>OS Version</td><td><%= SystemInfoHelper.OSVersion %></td></tr>
<tr><td>Machine Name</td><td><%= SystemInfoHelper.MachineName %></td></tr>
<tr><td>User Name</td><td><%= SystemInfoHelper.UserName %></td></tr>
<tr><td>Domain</td><td><%= SystemInfoHelper.DomainName %></td></tr>
<tr><td>Logical Drives</td><td><%= SystemInfoHelper.LogicalDrives %></td></tr>
<tr><td>Working Set</td><td><%= SystemInfoHelper.WorkingSetMB %></td></tr>
<tr><td>CLR Version</td><td><%= SystemInfoHelper.ClrVersion %></td></tr>
</table>
</body>
</html>
注意事項
Environment.UserName 在 ASP.NET 中通常回傳應用程式池身分 (如 IIS APPPOOL\DefaultAppPool),而非瀏覽器使用者。
WorkingSet 僅反映目前進程記憶體,非伺服器總可用記憶體。
- 跨平台 (.NET Core) 相同 API 可用,但
OSVersion 解讀方式不同。