人気ブログランキング | 話題のタグを見る
(WSH)ユーザ名のSIDを取得
WSH(VBScript)を使って、WindowsユーザアカウントのSIDを取得する方法です。
WMIを使ってやる方法のサンプルがあってので、それを使ったらすんなりできました。
(なお、WMIクエリはWMI Code Creator を使うとわりと簡単に作成できます。)

↓はコマンドライン引数に、ユーザ名を付けてスクリプトを実行すると、そのユーザのSIDを表示するというコードです。
Dim UsrSet 
Dim Usr
Dim Locator
Dim Service
Dim MesStr
Dim args
Dim query
 
'WMIサービスへの接続
Set Locator = CreateObject("WbemScripting.SWbemLocator")
Set Service = Locator.ConnectServer
 
'コマンドライン引数取得
Set args = WScript.Arguments
'WMIクエリ生成(引数1番目にユーザ名が入っていることとする)
query = "Select * From Win32_UserAccount WHERE Name = '" _
& args(0) & "'"
'WMIクエリを実行
Set UsrSet = Service.ExecQuery( query )
'クエリから結果取得し文字列生成(Usr.SIDにSIDが入ってる)
For Each Usr In UsrSet
MesStr = MesStr + "名前:" + Usr.Name + vbTab + "SID:" _
+ Usr.SID + vbCrLf
Next
 
'出力
WScript.Echo MesStr
 
'MsgBox "登録されているユーザーアカウントは、" + _
'vbCrLf + vbCrLf + MesStr + vbCrLf + "ですよ。"

実行すると下記のようになります。

D:\>cscript sid.vbs hoge100

Microsoft (R) Windows Script Host Version 5.7
Copyright (C) Microsoft Corporation 1996-2001. All rights reserved.

名前:hoge100 SID:S-1-5-21-xxxxxxxx-xxxxxxxx-xxxxxxxx-7292


参考:
VBSでのコマンドライン引数の取得
vbsによるユーザ情報の取得について | OKWave
by jehoshaphat | 2010-09-03 00:17 | 豆知識


<< 今日はESET NOD32の猛... (C++)ファイルパスからフォ... >>