プロが教える店舗&オフィスのセキュリティ対策術

windows2003のマシンで全ユーザ情報を取得したいです。

具体的にはnet user "ユーザ名" コマンドを実行したいのですが
対象マシンが複数あり、ユーザもたくさんいるのであまり手間をかけることなくbatかvbsで実行したいのですが
構文を教えていただけないでしょうか


c:\net user

\\xxxx のユーザー アカウント

-------------------------------------------------------------------------------
Administrator ASPNET HelpAssistant
SUPPORT_388945a0 Guest
コマンドは正常に終了しました。

A 回答 (2件)

こんなんとか。


引数でホスト名。
引数なしなら自分。

例: hoge.vbs hostA

If Wscript.Arguments.Count = 0 Then
netObject = CreateObject("WScript.Network")
hostName = netObject.ComputerName
Else
hostName = Wscript.Arguments(0)
End If

Set userAccounts = GetObject("WinNT://" & hostName)
userAccounts.Filter = Array("user")

Wscript.Echo hostName & " のユーザー アカウント"
Wscript.Echo String(80, "-")

For Each userObject In userAccounts
Wscript.Echo userObject.Name
Next
    • good
    • 0

WMI経由で取得すればよいと思います。


--------------------------------------------------------------------------------
Private Sub Command1_Click()

Dim UsrSet As SWbemObjectSet
Dim Usr As SWbemObject
Dim Locator As SWbemLocator
Dim Service As SWbemServices
Dim MesStr As String

Set Locator = New WbemScripting.SWbemLocator
Set Service = Locator.ConnectServer

Set UsrSet = Service.ExecQuery _
("Select * From Win32_UserAccount")

For Each Usr In UsrSet
MesStr = MesStr + "名前:" + Usr.Name + vbTab + "SID:" + Usr.SID + vbCrLf
Next

MsgBox "登録されているユーザーアカウントは、" + _
vbCrLf + vbCrLf + MesStr + vbCrLf + "ですよ。"

Set UsrSet = Nothing
Set Usr = Nothing
Set Locator = Nothing
Set Service = Nothing

End Sub
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!