HFShak
22-09-2014, 16:42
Да, я уже проверил, все работает. Спасибо.
Вот код, если кому понадобится:
#include <Array.au3>
#include <File.au3>
_CheckAdministration()
Func _CheckAdministration() ; Функция проверяет какая административная УЗ заведена на компьютере
Local $avArrayAccaunt[4] = ["Администратор", "Administrator", "Admin", "User"] ; Задаем массив с аккаунтами
Local $avArrayPassword[3] = ["P@ssw0rd", "Admin!#", "Админ123"] ; Задаем массив с паролями
Local $sAccauntSum = UBound($avArrayAccaunt)
Local $sPasswordSum = UBound($avArrayPassword)
Local $arrDevices
Local $arrPC
FileDelete(@ScriptDir & "\reportPassword.txt")
$sReportFile = FileOpen(@ScriptDir & "\reportPassword.txt", 2)
_FileReadToArray(@ScriptDir & "\pc.txt", $arrPC)
_FileReadToArray(@ScriptDir & "\devices.txt", $arrDevices)
$arrDevices = _ExcludeDevices($arrDevices) ; Исключаем принтеры и т.п.
$arrPC = _ExcludeDevices($arrPC)
For $k = 0 To Ubound($arrPC)-1
If Ping($arrPC[$k], 250) Then
For $i=0 To $sAccauntSum-1
For $j=0 To $sPasswordSum-1
$objNet = DriveMapAdd("", "\\" & $arrPC[$k] & "\C$", 0, $avArrayAccaunt[$i], $avArrayPassword[$j])
If $objNet = 1 Then
ConsoleWrite($arrPC[$k] & @TAB & $avArrayAccaunt[$i] & @TAB & $avArrayPassword[$j] & @CRLF)
FileWriteLine($sReportFile, $arrPC[$k] & @TAB & $avArrayAccaunt[$i] & @TAB & $avArrayPassword[$j])
Else
ConsoleWrite($arrPC[$k] & " error" & @CRLF)
EndIf
DriveMapDel("\\" & $arrPC[$k] & "\C$")
Next
Next
Else
ConsoleWrite($arrPC[$k] & " offline"& @CRLF)
EndIf
Next
FileClose($sReportFile)
EndFunc
Func _ExcludeDevices($Array)
Local $k = 0
For $i = 1 To Ubound($Array)-1
Assign($Array[$i] & "_3j5d2f8k_", Eval($Array[$i] & "_3j5d2f8k_") + 1, 2) ; создаём глобальные переменные или увеличиваем значение для уже созданных
If Eval($Array[$i] & "_3j5d2f8k_") = 1 Then
$Array[$k] = $Array[$i]
$k+=1
EndIf
Next
ReDim $Array[$k]
Return $Array
EndFunc
Вот код, если кому понадобится:
#include <Array.au3>
#include <File.au3>
_CheckAdministration()
Func _CheckAdministration() ; Функция проверяет какая административная УЗ заведена на компьютере
Local $avArrayAccaunt[4] = ["Администратор", "Administrator", "Admin", "User"] ; Задаем массив с аккаунтами
Local $avArrayPassword[3] = ["P@ssw0rd", "Admin!#", "Админ123"] ; Задаем массив с паролями
Local $sAccauntSum = UBound($avArrayAccaunt)
Local $sPasswordSum = UBound($avArrayPassword)
Local $arrDevices
Local $arrPC
FileDelete(@ScriptDir & "\reportPassword.txt")
$sReportFile = FileOpen(@ScriptDir & "\reportPassword.txt", 2)
_FileReadToArray(@ScriptDir & "\pc.txt", $arrPC)
_FileReadToArray(@ScriptDir & "\devices.txt", $arrDevices)
$arrDevices = _ExcludeDevices($arrDevices) ; Исключаем принтеры и т.п.
$arrPC = _ExcludeDevices($arrPC)
For $k = 0 To Ubound($arrPC)-1
If Ping($arrPC[$k], 250) Then
For $i=0 To $sAccauntSum-1
For $j=0 To $sPasswordSum-1
$objNet = DriveMapAdd("", "\\" & $arrPC[$k] & "\C$", 0, $avArrayAccaunt[$i], $avArrayPassword[$j])
If $objNet = 1 Then
ConsoleWrite($arrPC[$k] & @TAB & $avArrayAccaunt[$i] & @TAB & $avArrayPassword[$j] & @CRLF)
FileWriteLine($sReportFile, $arrPC[$k] & @TAB & $avArrayAccaunt[$i] & @TAB & $avArrayPassword[$j])
Else
ConsoleWrite($arrPC[$k] & " error" & @CRLF)
EndIf
DriveMapDel("\\" & $arrPC[$k] & "\C$")
Next
Next
Else
ConsoleWrite($arrPC[$k] & " offline"& @CRLF)
EndIf
Next
FileClose($sReportFile)
EndFunc
Func _ExcludeDevices($Array)
Local $k = 0
For $i = 1 To Ubound($Array)-1
Assign($Array[$i] & "_3j5d2f8k_", Eval($Array[$i] & "_3j5d2f8k_") + 1, 2) ; создаём глобальные переменные или увеличиваем значение для уже созданных
If Eval($Array[$i] & "_3j5d2f8k_") = 1 Then
$Array[$k] = $Array[$i]
$k+=1
EndIf
Next
ReDim $Array[$k]
Return $Array
EndFunc