#include <Array.au3>
#include <File.au3>
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=c:\documents and settings\user_01\?aai?ee noie\form1.kxf
$Form1 = GUICreate("Form1", 524, 228, 192, 114)
$Edit1 = GUICtrlCreateEdit("", 8, 8, 505, 169)
GUICtrlSetData(-1, "Edit1")
$Button1 = GUICtrlCreateButton("Старт", 8, 192, 113, 25)
$Button2 = GUICtrlCreateButton("Выход", 400, 192, 113, 25)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Edit1
Case $Button1
$all_comp = ReturnComp()
;_ArrayDisplay($all_comp)
For $k=1 To UBound($all_comp)-1
$cat_c="\\" & $all_comp[$k] & "\C$\Program Files\"
If Not FileExists($cat_c) Then
;ConsoleWrite("***ОШИБКА!!! - Не удалось открыть каталог " & $cat_c & @CRLF)
GUICtrlSetData ($Edit1, "***ОШИБКА!!! - Не удалось открыть каталог " & $cat_c & @CRLF, "Input")
Else
;ConsoleWrite("каталог " & $cat_c & @CRLF)
GUICtrlSetData ($Edit1, "Каталог " & $cat_c & @CRLF, "Input")
EndIf
Next
Case $Button2
Exit
EndSwitch
WEnd
Func ReturnComp()
Local $Code = ""
$Code &= 'Function AllComp()' & @LF
$Code &= ' Set WinNT = GetObject("WinNT:")' & @LF
$Code &= ' Set FSO = CreateObject("Scripting.FileSystemObject")' & @LF
$Code &= ' WinNT.Filter = Array("domain")' & @LF
$Code &= ' Counter = 0' & @LF
$Code &= ' StrCompFullName=""' & @LF
$Code &= ' For Each Domain In WinNT' & @LF
$Code &= ' Set CurrDomain = GetObject("WinNT://" & Domain.Name)' & @LF
$Code &= ' CurrDomain.Filter = Array("computer")' & @LF
$Code &= ' For Each Comp In CurrDomain' & @LF
$Code &= ' Counter = Counter + 1' & @LF
$Code &= ' If Counter=1 Then' & @LF
$Code &= ' StrCompFullName= Comp.Name' & @LF
$Code &= ' Else' & @LF
$Code &= ' StrCompFullName= StrCompFullName & "," & Comp.Name' & @LF
$Code &= ' End If' & @LF
$Code &= ' Next' & @LF
$Code &= ' Next' & @LF
$Code &= ' AllComp=StrCompFullName' & @LF
$Code &= 'End Function'
Local $VbsObj = ObjCreate("ScriptControl")
If @error Then Return SetError(1, 0, -1)
$VbsObj.Language = "vbscript"
$VbsObj.AddCode($Code)
$strComp = $VbsObj.Run("AllComp")
$arrComp=StringSplit(StringReplace($strComp, ",", @LF), @LF)
; _ArrayDisplay($arrComp)
Return $arrComp
EndFunc