HOME >> Tips >> Microsoft.NET >> コードサンプル

コンピューター名、ログインユーザー名を取得する方法

 
文書番号:20560




ログインユーザー名、コンピューター名を取得する方法です。

これらの情報は「System.Environment」を参照する方法と、「My」を参照する方法があります。

それぞれの値を参照してメッセージボックスに表示するサンプルです。


【ログインユーザー名を取得する】

    「System.Environment」を参照してログインユーザー名を取得する
    
    
    MessageBox.Show(System.Environment.UserName)
    
    ----------
    user01
    
    「My.User」を参照してログインユーザー名を取得する
    
    
    MessageBox.Show(My.User.Name)
    
    ----------
    domain\user01
    
    「My.User」で参照した場合は ドメイン名\ユーザー名 の形式で取得します。
    ワークグループの場合は コンピューター名\ユーザー名 になります。


【コンピューター名を取得する】

    「System.Environment」を参照してコンピューター名を取得する
    
    
    MessageBox.Show(System.Environment.MachineName)
    
    ----------
    pc01
    
    「My.Computer」を参照してコンピューター名を取得する
    
    
    MessageBox.Show(My.Computer.Name)
    
    ----------
    pc01
    
    コンピューター名はどちらで参照してもコンピューター名のみが取得できます。


    リモートデスクトップ接続やXenAppなどの環境では上記の方法でコンピューター名を参照すると接続先のコンピュータ名が返ります。
    接続しているクライアントのコンピューター名を参照する場合は環境変数を参照する方法があります。
    
    リモートデスクトップ接続などでサーバーへ接続して実行した例
    
    MessageBox.Show(My.Computer.Name)
    ----------
    Server01
    
    
    クライアントのコンピューター名を取得する
    MessageBox.Show(Environ("CLIENTNAME"))
    ----------
    pc01
    
    現在のセッションがリモート環境かどうかを判断するには「SESSIONNAME」環境変数を参照する方法があります。
    
    セッション名を取得する
    
    
    ローカルコンピューターで実行した例
    MessageBox.Show(Environ("SESSIONNAME"))
    ----------
    Console
    
    リモートデスクトップ接続などでサーバーへ接続して実行した例
    MessageBox.Show(Environ("SESSIONNAME"))
    ----------
    RDP-Tcp#119
    
    リモート接続環境で実行した場合はそのセッションのプロトコル名とセッションIDからなる名前を取得することができます。

    リモートデスクトップ環境で値を確認するとプロトコルによって名前が変わったり、セッション番号が付加されるので判断しづらいので、 「Console」かそうでないかで判断するといいかもしれません。