Пример создания скрипта на WSH (VBS) для определения имени пользователя залогиненного на целевой компьютер в домене Windows.
Скриншот:
Пример vbs файла:
(Скачать файл можно будет
здесь. ЗЫ Не тыкать! Жать правой кнопкой: сохранить ссылку как...)
Текст на WSH (VBS):
Set objArgs = WScript.Arguments
On Error Resume Next
strComputer = objArgs(0)
'Аргументы - если не заданы в строке запуска, будет выдан GUI запрос.
If Err.Number <> 0 Then
strComputer = InputBox("Введите IP адрес или имя!", "Адресс", "10.1.0.x")
Err.Clear
End If
If strComputer = "" Then
Wscript.Echo "Действие отменено."
WScript.Quit(0)
End If
'DOMAIN - имя домена, в котором работает пользователь. Указано явно.
DOMAIN = "MYDOMAIN"
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" _
& strComputer & "\root\cimv2")
If Err.Number = 0 Then
Set colComputer = objWMIService.ExecQuery _
("Select * from Win32_ComputerSystem")
For Each objComputer in colComputer
'Определение имени пользователя
Wscript.Echo "DUN=" & objComputer.UserName & vbNewline & "CN=" & objComputer.Name
If RegExpTest("\w+\\", objComputer.UserName) Then
UN = ReplaceTest("\w+\\", "", objComputer.UserName)
Else
UN = objComputer.UserName
End If
'Определение SIDа
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set objAccount = objWMIService.Get("Win32_UserAccount.Name='" & UN & "',Domain='" & DOMAIN & "'")
USID = objAccount.SID
Wscript.Echo "UN=" & UN & vbNewline & "SID=" & USID
Next
End If
If Err.Number <> 0 Then
Wscript.Echo "Error: " & Err.Number & " " & Err.Description
WScript.Quit(1)
Else
WScript.Quit(0)
End If
Function ReplaceTest(patrn, replStr, str1)
Dim regEx ' Create variables.
Set regEx = New RegExp ' Create regular expression.
regEx.Pattern = patrn ' Set pattern.
regEx.IgnoreCase = True ' Make case insensitive.
ReplaceTest = regEx.Replace(str1, replStr) ' Make replacement.
End Function
Function RegExpTest(patrn, strng)
Dim regEx, retVal ' Create variable.
Set regEx = New RegExp ' Create regular expression.
regEx.Pattern = patrn ' Set pattern.
regEx.IgnoreCase = False ' Set case sensitivity.
retVal = regEx.Test(strng) ' Execute the search test.
If retVal Then
RegExpTest = 1
Else
RegExpTest = 0
End If
End Function