エラー・ログの出力時や、アプリケーションの設定をマシンごと、あるいはユーザーごとに個別に保存するような場合、プログラムを実行しているマシン名や、システムにログオンしている人のユーザー名が必要となることがある。これらはEnvironmentクラス(System名前空間)に用意されたstaticなプロパティから、次のようにして簡単に取得することができる。
string machine = Environment.MachineName;
string user = Environment.UserName;
次のサンプル・プログラムはこうして得られた値を画面に表示する。
// machinename.cs
using System;
public class MachineUserName {
static void Main() {
string machine = Environment.MachineName;
string user = Environment.UserName;
Console.WriteLine(machine); // 出力例:TAKAMAIN
Console.WriteLine(user); // 出力例:taka-e
}
}
// コンパイル方法:csc machinename.cs
machinename.csのダウンロード
なお、MachineNameプロパティにより得られるマシン名は、正確には「NetBIOS名」(あるいは「NetBIOSコンピュータ名」)と呼ばれるものだ。これとは別に、Windows OSではDNSなどから取得できるホスト名(DNSホスト名)もコンピュータの名前として用いられることがある。両者はたいていの場合同一となるが(どちらも大文字、小文字は区別されない)、NetBIOS名は最大15文字であるため、コンピュータに設定した名前が切りつめられてNetBIOS名が設定される場合などもある。
NetBIOS名ではなくDNSホスト名を取得する方法については、「TIPS:プログラムを実行しているマシンのホスト名を得るには?」で解説している。
カテゴリ:クラス・ライブラリ 処理対象:Windows環境
使用ライブラリ:Environmentクラス(System名前空間)
関連TIPS:プログラムを実行しているマシンのホスト名を得るには?
Copyright© Digital Advantage Corp. All Rights Reserved.