Показать полную графическую версию : [решено] Проверить какая УЗ подходит к компьютеру вне домена
Добрый день!
Есть много компьютеров вне домена и так же есть много административных УЗ и много паролей к ним.
Можно ли как нибудь проверить на соответствие, к какому компьютеру какая УЗ подходит?
Вот начал делать , не знаю что дальше, не могу найти какую-либо функцию для проверки авторизации:
#include <Array.au3>
Local $avArrayAccaunt[6] = ["Администратор", "Admin", "Admin1", "User", "Adm", "TEMP"]
Local $avArrayPassword[4] = ["12345", "54321", "qwerty", "12345678"]
Local $ASum = UBound($avArrayAccaunt)
Local $PSum = UBound($avArrayPassword)
For $i=0 To $ASum-1
For $j=0 To $PSum-1
ConsoleWrite($avArrayAccaunt[$i] & $avArrayPassword[$j] & @CRLF)
...
Next
Next
Затем, чтобы на всех компьютерах создать одну административную УЗ и далее работать с ними под ней
HFShak, Вы меня не поняли. Каким образом могло произойти такое, как потеря паролей от учётной записи администратора, на куче машин?
В компании нет домена, около 100 ПК, какой специалисты придумали пароль такой и ставили, нет какой-то централизации. Оставили много паролей и УЗ.
Хочу завести одну УЗ, массово переименовать, кое-что разлить на них, собрать информацию и т.п. Работать с перебором паролей очень сложно.
Работать с перебором паролей очень сложно. »
Именно. Посему берёте болванку/флэшку с каким-нибудь приличным загрузочным образом сбрасывания пароля Администратора и проходите по всем машинам, задавая следом единый пароль. Затем начинаете со своей машины «рулить» удалённо, решая все прочие проблемы вида:
много паролей и УЗ. »
Совсем было бы хорошо завести себе домен.
А почему нельзя сменить или добавить УЗ с помощью net user , тем более, что все пароли известны?
А ходить по всем компам и их перезагружать займет уйму времени.
Проще даже проверить УЗ через psexec -u ..., но хотелось бы сделать в autoit
Совсем было бы хорошо завести себе домен. »
А потом вгонять по одной машине в домен, можно сделать и скриптовыми методами...
Есть ли в autoit функция в которую можно вписать конкретного пользователя? Что то типо RegRead для удаленной машины
тем более, что все пароли известны? »
Это точно? Вы же сами написали — перебирать надо, нет? Поясните ещё раз.
Это точно? Вы же сами написали — перебирать надо, нет? Поясните ещё раз. »
Скажем так, есть коло 6 разных УЗ (admin, админстратор, adminstrator, и т.п.) и есть пароли их тоже около 6 (они все известны), но какой пароль был установлен на какую УЗ неизвестно.
HFShak, теперь примерно ясно. То есть, нам надо перебрать весь массив машин, последовательно подставляя для соединения к ним каждую пару логин/пароль комбинированного множества, составленного из набора учётных записей и набора возможных паролей — так?
HFShak, теперь примерно ясно. То есть, нам надо перебрать весь массив машин, последовательно подставляя для соединения к ним каждую пару логин/пароль комбинированного множества, составленного из набора учётных записей и набора возможных паролей — так? »
Да, надо к каждой машине перебрать пару логин/пароль (получился около 30 пар) и понять, какая пара является правильной.
HFShak, на WSH:
Option Explicit
Dim arrResources
Dim arrLogins
Dim arrPasswords
Dim strResource
Dim strLogin
Dim strPassword
Dim objWshNetwork
arrResources = Array("\\machine01\c$", "\\machine02\c$", "\\machine03\d$")
arrLogins = Array("Админ", "Администратор", "Administrator")
arrPasswords = Array("123", "111", "qwerty")
Set objWshNetwork = WScript.CreateObject("WScript.Network")
For Each strResource In arrResources
WScript.Echo strResource
WScript.Echo "----------------------"
For Each strLogin In arrLogins
For Each strPassword In arrPasswords
On Error Resume Next
objWshNetwork.MapNetworkDrive "", strResource, False, strLogin, strPassword
If Err.Number = 0 Then
Err.Clear
On Error Goto 0
WScript.Echo "+", strLogin, vbTab, strPassword
objWshNetwork.RemoveNetworkDrive strResource, True, False
Else
If Err.Number = &H8007052E Then
WScript.Echo "-", strLogin, vbTab, strPassword
Else
WScript.Echo "Unknown error: ", Hex(Err.Number), Err.Description
End If
On Error Goto 0
End If
Next
Next
WScript.Echo "----------------------"
WScript.Echo
Next
Set objWshNetwork = Nothing
WScript.Quit 0
Если очень принципиально надо на AutoIt — перепишу. Обратите внимание: если у Вас установлена политика блокировки учётных записей при вводе нескольких неправильных паролей — скрипт наверняка не отработает до конца корректно.
На autoit очень желательно, если это не сложно, т.к. мне не понятен синтаксис WSH.
Надо, чтобы в нормальном виде записывал, я потом сам доделаю, просто как на autoit сделать переход на \\pc\C$ ?
Ну вроде работает работает:
C:\Users\User\Desktop>cscript 1.vbs
Сервер сценариев Windows (Microsoft ®) версия 5.8
© Корпорация Майкрософт (Microsoft Corp.), 1996-2001. Все права защищены.
\\192.168.1.60\c$
----------------------
Unknown error: 80070035 Не найден сетевой путь.
Unknown error: 80070035 Не найден сетевой путь.
Unknown error: 80070035 Не найден сетевой путь.
Unknown error: 80070035 Не найден сетевой путь.
Unknown error: 80070035 Не найден сетевой путь.
Unknown error: 80070035 Не найден сетевой путь.
Unknown error: 80070035 Не найден сетевой путь.
Unknown error: 80070035 Не найден сетевой путь.
Unknown error: 80070035 Не найден сетевой путь.
----------------------
\\192.168.1.68\c$
----------------------
Unknown error: 80070005 Отказано в доступе.
Unknown error: 80070005 Отказано в доступе.
Unknown error: 80070005 Отказано в доступе.
Unknown error: 80070056 Сетевой пароль указан неверно.
+ Администратор Adm1n123!
Unknown error: 80070056 Сетевой пароль указан неверно.
Unknown error: 80070005 Отказано в доступе.
Unknown error: 80070005 Отказано в доступе.
Unknown error: 80070005 Отказано в доступе.
----------------------
C:\Users\User\Desktop>
На autoit очень желательно, если это не сложно, т.к. мне не понятен синтаксис WSH. »
Очень неохота делать ;(. Может, будет достаточно и WSH?
Ну вроде работает работает:
« скрыть
C:\Users\User\Desktop>cscript 1.vbs
…
\\192.168.1.60\c$
----------------------
Unknown error: 80070035 Не найден сетевой путь. »
«192.168.1.60» был отключён/недоступен/не настроен для доступа?
«192.168.1.60» был отключён/недоступен/не настроен для доступа? »
Да, он просто выключен. Спасибо!
А можно вывести запись в файл, а не в консоль?
Так, а как на автоите сделать переход на \\pc\C$ ? Какой функцией? DriveMapAdd?
А можно вывести запись в файл, а не в консоль? »
cscript.exe //nologo "1.vbs" >"c:\Мой путь\file.txt"
Так, а как на автоите сделать переход на \\pc\C$ ? Какой функцией? »
Либо той же — если использовать «ObjCreate("WScript.Network")», либо родной «DriveMapAdd()», а затем анализировать ошибку, если функция вернула «0».
Добрый день!
На autoit получается выглядит вот так?:
#include <Array.au3>
_CheckAdministration()
Func _CheckAdministration()
Local $avArrayAccaunt[3] = ["Администратор", "Administrator", "Admin"]
Local $avArrayPassword[5] = ["1234", "4321", "qwerty", "Admin123!"]
Local $sAccauntSum = UBound($avArrayAccaunt)
Local $sPasswordSum = UBound($avArrayPassword)
Local $sFilePC = FileOpen(@ScriptDir & "\pc.txt")
While 1
$sLine = FileReadLine($sFilePC)
If @error = -1 Then ExitLoop
For $i=0 To $sAccauntSum-1
For $j=0 To $sPasswordSum-1
$objNet = DriveMapAdd("", "\\" & $sLine & "\C$", 0, $sLine & "\" & $avArrayAccaunt[$i], $avArrayPassword[$j])
If $objNet = 1 Then
ConsoleWrite($sLine & @TAB & $avArrayAccaunt[$i] & @TAB & $avArrayPassword[$j] & @CRLF)
Else
ConsoleWrite("Error = " & $objNet & @CRLF)
EndIf
DriveMapDel("\\" & $sLine & "\C$")
Next
Next
WEnd
FileClose($sFilePC)
EndFunc
На autoit получается выглядит вот так?: »
Если код работает (и работает корректно) — то так ;).
Если код работает (и работает корректно) — то так . »
Да, работает вроде корректно.
Скажите, а если в пароле русские буквы, drivemapadd отработает?
Скажите, а если в пароле русские буквы, drivemapadd отработает? »
Не проверял, но, полагаю, должно отработать. Впрочем, Вы ведь сами вполне можете проверить на какой-нибудь тестовой машине, а затем отписаться сюда по результатам.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.