ブログを作る※無料・簡単アフィリ    ブログトップ | 楽天市場
435135 ランダム
ログオン中のユーザー名が知りたい… (パソコン・家電)楽天ブログ 【ケータイで見る】 【ログイン】
Fuzyのプログラミング(?)メモ
ホーム 日記 プロフィール オークション 掲示板 ブックマーク お買い物一覧
Fuzyの日記

<< 前へ次へ >>一覧

December 12, 2005 楽天プロフィール Add to Google XML

ログオン中のユーザー名が知りたい
[ VBScriptサンプル ]    

じーちゃんクリスマスバージョンログオン中のユーザー名を取得するVBScriptサンプルです。

プログラムで、ログオン中のユーザー名を取得する必要のあるケースというのは、どんなケースが考えられるでしょうか?

個人利用のパソコンでは、ユーザー名が重要になるケースというのは少ないかも知れません。例えば、普段は自動ログオンしているため、ユーザー名を気にしないが、ちょっと調べたいとき…でしょうか。いえ、違いますね。そんなときは CTRL+ALT+DEL を押すだけで、現在ログオン中のユーザー名を調べることができます。

私の経験で言えば、プログラムからユーザー名を取得したいケースというのは、主に企業内LAN(イントラネット)で使われている端末で発生することが多いです。企業のポリシーによって異なりますが、ユーザー名=メールアドレスだったり、社内文書の署名にユーザー名を使っているところもあります。そこで、こんな例を考えてみます。

ケーススタディ
○×商事では、各部署で業務上必要な機器を購入する際に、申請管理システム(Windowsアプリケーション)で機器購入申請書の入力をする決まりになっています。しかし、申請者欄が手動入力のためか、入力ミスが多く、部署/申請者ごとの機器購入状況を集計する際に問題が生じています。そこで、申請者欄の入力ミスをなくすため、各クライアントPCでログオンする際のユーザー名を自動的に申請者欄へセットし、入力者が変更できないようにしたいと考えています。


いかがでしょうか? 色々とツッコミどころがあるかも知れませんが、とりあえず、雰囲気を掴んで頂ければ結構です。こういったケースであれば、プログラムから、ユーザー名を取得する必要性が生じますよね。

では、長い前置きはこのくらいにして、VBScriptによるサンプルです。

'*************************************************************
'* ログオン中のユーザー名を取得するサンプル
'*
'*************************************************************
Option Explicit

Dim strComputerName, strSQL, strMsg
Dim objCSs, objCS

strComputerName = "\\." '//ローカルコンピュータを選択
strSQL = "select * from Win32_ComputerSystem"
Set objCSs = GetObject("winmgmts:{impersonationLevel=impersonate}!" & strComputerName & "\root\cimv2").ExecQuery(strSQL)

strMsg = ""
For Each objCS In objCSs
    strMsg = strMsg & "コンピュータ名:" & objCS.Name & vbCrLf
    strMsg = strMsg & "ユーザー名:" & objCS.UserName & vbCrLf
Next
Set objCSs = Nothing

WScript.Echo strMsg

Visual C/C++, Visual Basic 等で作成されるWindowsアプリケーションであれば、Windows APIを呼び出して、ユーザー名を取得することも可能ですが、今回は、より汎用的にするために、VBScriptから WMI (Windows Management Instrumentation) サービスを利用する仕組みにしてみました。このサンプルであれば、OfficeのVBAでも利用可能な点がポイントです。

WMIサービスとは、システム管理情報を提供するサービスであり、Windows 2000以降であれば、デフォルトで組み込まれています(一応、Windows NT 4.0でもWMIを組み込むことは可能です)。WMIサービスの面白い点は、SQL文によって、様々なシステム管理情報を引き出すことができる点です。今回の例では、"select * from Win32_ComputerSystem"の部分ですが、Win32_ComputerSystemというテーブル(?)を読み、コンピュータ名とログオン中のユーザー名を表示しています。この Win32_ComputerSystem には、他にも様々なプロパティがあるので、興味のある方は、関連リンクから、MSDNを参照してみると良いでしょう。

関連リンク
Win32_ComputerSystem
MSDN(英語)



記事がお役にたちましたら、ポチっとお願いします m(_ _)m → BlogRanking



Last updated  December 12, 2005 20:29:17

[VBScriptサンプル]カテゴリの最新記事

 
mdbファイルを作成
February 25, 2006
 
WMIでレジストリを取得する
February 18, 2006
 
文書の整形処理
February 13, 2006




<< 前へ次へ >>一覧一番上に戻る


PR

Calendar

March 2012
SMTWTFS
    123
45678910
11121314151617
18192021222324
25262728293031
<一覧へthis monthnext>

Keyword Search

Favorite Blog

テルマエ・ロマエ… New!Tarotaroさん

イチロー選手は4… New!か ず さ かさん

スタジオ・ピクチ… spo統括 さん
システムエンジニ… hirocom6618 さん
猫っぽい人の気まぐれ ねこみみさくら さん

Category

Archives

Mobile

>>ケータイに
このブログの
URLを送信!

 

Powered By 楽天ブログは国内最大級の無料ブログサービスです。楽天・Infoseekと連動した豊富なコンテンツや簡単アフィリエイト機能、フォトアルバムも使えます。デザインも豊富・簡単カスタマイズが可能!

Copyright (c) 1997-2012 Rakuten, Inc. All Rights Reserved.