Home > 2010年10月
2010年10月 Archive
Windowsのログインユーザ名とネットワーク設定を取得する
- 2010-10-27 Wed 23:04:28
- メモ
後で見返すためにメモ。
OS標準の機能でけで、というリクエストだったので、WSHでごにょごにょできるかなーという線で調査。
ログインユーザ名の方はGoogle先生に聞いたらすぐに出てきた。
http://jehupc.exblog.jp/13355043/
で、ネットワーク関係でIPアドレス、サブネットマスク、デフォルトゲートウェイは
以下のサイトを参考にした。
http://slashdot.jp/~patagon/journal/443008
ただ、ここのサンプルはIPアドレスだけだったので、MSDNでAPI(って呼んでいいのかな)の情報を漁る。
http://msdn.microsoft.com/en-us/library/aa394217.aspx
これによると、
IPアドレス:IPAddress
サブネットマスク:IPSubnet
デフォルトゲートウェイ:DefaultIPGateway
で、それぞれ配列で返ってくるとのこと。
なんで、
strComputer = "."
Set objWMIService = GetObject _
("winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery _
("Select * From Win32_NetworkAdapterConfiguration " & _
"Where IPEnabled = True")
とした後で、それぞれ
Wscript.Echo "IPAddress: " & objItem.IPAddress(0)
とだそうとしたら、うちの環境だと複数のローカルエリアネットワークがあって
その中でデフォルトゲートウェイが空欄のものがあるために、配列の要素の参照でこけてしまった。
じゃぁ例外処理で逃げようってことで、結局以下のように。
strComputer = "."
Set objWMIService = GetObject _
("winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery _
("Select * From Win32_NetworkAdapterConfiguration " & _
"Where IPEnabled = True")
' ネットワーク関連
For Each objItem in colItems
'IPアドレス
On Error Resume Next
Wscript.Echo "IPAddress: " & objItem.IPAddress(0)
If Err.Number = 13 Then
Wscript.Echo "IPAddress: none"
End If
Err.Clear
On Error Goto 0
'サブネットマスク
On Error Resume Next
Wscript.Echo "SubnetMask: " & objItem.IPSubnet(0)
If Err.Number = 13 Then
Wscript.Echo "SubnetMasks: none"
End If
Err.Clear
On Error Goto 0
'ゲートウェイ
On Error Resume Next
Wscript.Echo "Gateway: " & objItem.DefaultIPGateway(0)
' Wscript.Echo Err.Number
If Err.Number = 13 Then
Wscript.Echo "Gateway: none"
End If
Err.Clear
On Error Goto 0
Next
' ログインユーザ名
Dim strUserName,objNet
Set objNet = CreateObject("WScript.Network")
strUserName = objNet.UserName
'結果表示
WScript.Echo "UserName: " & strUserName
ゲートウェイのとこにエラーコードを調べたときの残骸が残ってるけど。
一応これで動いたっぽい。
後は、XPだとEchoがいちいちポップアップでうざいので、それがいやなときは
cscript <スクリプト名>
で実行すればstdoutに出てちょっとだけ幸せになれる感じで。
Home > 2010年10月
- タグクラウド
-
- Categories
- Monthly
- Recent Entries
- Recent Comments
- Recent Trackbacks
- Appendix
- Author:Nakunaru
データベース(ORACLEとかSQL ServerとかDB2とかMySQLとか)とか技術者教育とかプログラムとか。
気になる技術を少しずつ勉強していきます。