#AutoIt3Wrapper_Change2CUI=y #NoTrayIcon Func _4_(ByRef $a29, $a2a) If Not IsArray($a29) Then Return SetError(1, 0, 0) Local $a2b = UBound($a29, 1) - 1 If Not $a2b Then $a29 = "" Return 0 EndIf If $a2a < 0 Then $a2a = 0 If $a2a > $a2b Then $a2a = $a2b Switch UBound($a29, 0) Case 1 For $a2c = $a2a To $a2b - 1 $a29[$a2c] = $a29[$a2c + 1] Next ReDim $a29[$a2b] Case 2 Local $a2d = UBound($a29, 2) - 1 For $a2c = $a2a To $a2b - 1 For $a2e = 0 To $a2d $a29[$a2c][$a2e] = $a29[$a2c + 1][$a2e] Next Next ReDim $a29[$a2b][$a2d + 1] Case Else Return SetError(3, 0, 0) EndSwitch Return $a2b EndFunc Func _5_(Const ByRef $a29, $a2f = "|", $a2g = 0, $a2h = 0) If Not IsArray($a29) Then Return SetError(1, 0, "") If UBound($a29, 0) <> 1 Then Return SetError(3, 0, "") Local $a2i, $a2b = UBound($a29) - 1 If $a2h < 1 Or $a2h > $a2b Then $a2h = $a2b If $a2g < 0 Then $a2g = 0 If $a2g > $a2h Then Return SetError(2, 0, "") For $a2c = $a2g To $a2h $a2i &= $a29[$a2c] & $a2f Next Return StringTrimRight($a2i, StringLen($a2f)) EndFunc Global Const $a2j = 0x1000 Global Const $a2k = 0x100 Global Const $a2l = 0x2000 Global Const $a2m = 0x8000 Global Const $a2n = BitShift($a2k, 8) Global Const $a2o = BitShift($a2l, 8) Global Const $a2p = BitShift($a2m, 8) Func _6_($a2q, $a2r, $a2s, $a2t = False) If $a2r Then If $a2t Then $a2s = _a_() _c_($a2q & ": " & $a2s) EndIf EndFunc Func _7_($a2u) Local $a2v $a2v = DllCall("Kernel32.dll", "int", "CloseHandle", "int", $a2u) _6_("_WinAPI_CloseHandle",($a2v[0] = 0), 0, True) Return $a2v[0] <> 0 EndFunc Func _8_($a2w, $a2x, $a2y, $a2z, $a2_, $a30, $a31) Local $a2v $a2v = DllCall("Kernel32.dll", "int", "FormatMessageA", "int", $a2w, "hwnd", $a2x, "int", $a2y, "int", $a2z, _ "ptr", $a2_, "int", $a30, "ptr", $a31) If @error Then Return SetError(@error, 0, 0) Return $a2v[0] EndFunc Func _9_() Local $a2v $a2v = DllCall("Kernel32.dll", "int", "GetLastError") If @error Then Return SetError(@error, 0, 0) Return $a2v[0] EndFunc Func _a_() Local $a32 $a32 = DllStructCreate("char Text[4096]") _8_($a2j, 0, _9_(), 0, DllStructGetPtr($a32), 4096, 0) Return DllStructGetData($a32, "Text") EndFunc Func _b_($a2w, $a33, $a34) BlockInput(0) MsgBox($a2w, $a33, $a34 & " ") EndFunc Func _c_($a34, $a35 = True) _b_(266256, "Error", $a34) If $a35 Then Exit EndFunc Func _d_($a36, $a37, $a38) Local $a39[4] Local $a3a[4] Local $a3b Local $a3c Local $a3d Local $a3e $a36 = StringLeft($a36, 1) If StringInStr("D,M,Y,w,h,n,s", $a36) = 0 Or $a36 = "" Then SetError(1) Return(0) EndIf If Not StringIsInt($a37) Then SetError(2) Return(0) EndIf If Not _g_($a38) Then SetError(3) Return(0) EndIf _h_($a38, $a3a, $a39) If $a36 = "d" Or $a36 = "w" Then If $a36 = "w" Then $a37 = $a37 * 7 $a3b = _i_($a3a[1], $a3a[2], $a3a[3]) + $a37 _j_($a3b, $a3a[1], $a3a[2], $a3a[3]) EndIf If $a36 = "m" Then $a3a[2] = $a3a[2] + $a37 While $a3a[2] > 12 $a3a[2] = $a3a[2] - 12 $a3a[1] = $a3a[1] + 1 WEnd While $a3a[2] < 1 $a3a[2] = $a3a[2] + 12 $a3a[1] = $a3a[1] - 1 WEnd EndIf If $a36 = "y" Then $a3a[1] = $a3a[1] + $a37 EndIf If $a36 = "h" Or $a36 = "n" Or $a36 = "s" Then $a3c = _m_($a39[1], $a39[2], $a39[3]) / 1000 If $a36 = "h" Then $a3c = $a3c + $a37 * 3600 If $a36 = "n" Then $a3c = $a3c + $a37 * 60 If $a36 = "s" Then $a3c = $a3c + $a37 $a3e = Int($a3c /(24 * 60 * 60)) $a3c = $a3c - $a3e * 24 * 60 * 60 If $a3c < 0 Then $a3e = $a3e - 1 $a3c = $a3c + 24 * 60 * 60 EndIf $a3b = _i_($a3a[1], $a3a[2], $a3a[3]) + $a3e _j_($a3b, $a3a[1], $a3a[2], $a3a[3]) _l_($a3c * 1000, $a39[1], $a39[2], $a39[3]) EndIf $a3d = StringSplit('31,28,31,30,31,30,31,31,30,31,30,31', ',') If _f_($a3a[1]) Then $a3d[2] = 29 If $a3d[$a3a[2]] < $a3a[3] Then $a3a[3] = $a3d[$a3a[2]] $a38 = $a3a[1] & '/' & StringRight("0" & $a3a[2], 2) & '/' & StringRight("0" & $a3a[3], 2) If $a39[0] > 0 Then If $a39[0] > 2 Then $a38 = $a38 & " " & StringRight("0" & $a39[1], 2) & ':' & StringRight("0" & $a39[2], 2) & ':' & StringRight("0" & $a39[3], 2) Else $a38 = $a38 & " " & StringRight("0" & $a39[1], 2) & ':' & StringRight("0" & $a39[2], 2) EndIf EndIf Return($a38) EndFunc Func _e_($a36, $a3f, $a3g) Local $a3h[4] Local $a3i[4] Local $a3j[4] Local $a3k[4] Local $a3l Local $a3m Local $a3n Local $a3o Local $a3p Local $a3q $a36 = StringLeft($a36, 1) If StringInStr("d,m,y,w,h,n,s", $a36) = 0 Or $a36 = "" Then SetError(1) Return(0) EndIf If Not _g_($a3f) Then SetError(2) Return(0) EndIf If Not _g_($a3g) Then SetError(3) Return(0) EndIf _h_($a3f, $a3h, $a3i) _h_($a3g, $a3j, $a3k) $a3q = _i_($a3j[1], $a3j[2], $a3j[3]) - _i_($a3h[1], $a3h[2], $a3h[3]) If $a3i[0] > 1 And $a3k[0] > 1 Then $a3o = $a3i[1] * 3600 + $a3i[2] * 60 + $a3i[3] $a3p = $a3k[1] * 3600 + $a3k[2] * 60 + $a3k[3] $a3l = $a3p - $a3o If $a3l < 0 Then $a3q = $a3q - 1 $a3l = $a3l + 24 * 60 * 60 EndIf Else $a3l = 0 EndIf Select Case $a36 = "d" Return($a3q) Case $a36 = "m" $a3m = $a3j[1] - $a3h[1] $a3n = $a3j[2] - $a3h[2] + $a3m * 12 If $a3j[3] < $a3h[3] Then $a3n = $a3n - 1 $a3o = $a3i[1] * 3600 + $a3i[2] * 60 + $a3i[3] $a3p = $a3k[1] * 3600 + $a3k[2] * 60 + $a3k[3] $a3l = $a3p - $a3o If $a3j[3] = $a3h[3] And $a3l < 0 Then $a3n = $a3n - 1 Return($a3n) Case $a36 = "y" $a3m = $a3j[1] - $a3h[1] If $a3j[2] < $a3h[2] Then $a3m = $a3m - 1 If $a3j[2] = $a3h[2] And $a3j[3] < $a3h[3] Then $a3m = $a3m - 1 $a3o = $a3i[1] * 3600 + $a3i[2] * 60 + $a3i[3] $a3p = $a3k[1] * 3600 + $a3k[2] * 60 + $a3k[3] $a3l = $a3p - $a3o If $a3j[2] = $a3h[2] And $a3j[3] = $a3h[3] And $a3l < 0 Then $a3m = $a3m - 1 Return($a3m) Case $a36 = "w" Return(Int($a3q / 7)) Case $a36 = "h" Return($a3q * 24 + Int($a3l / 3600)) Case $a36 = "n" Return($a3q * 24 * 60 + Int($a3l / 60)) Case $a36 = "s" Return($a3q * 24 * 60 * 60 + $a3l) EndSelect EndFunc Func _f_($a3r) If StringIsInt($a3r) Then Select Case Mod($a3r, 4) = 0 And Mod($a3r, 100) <> 0 Return 1 Case Mod($a3r, 400) = 0 Return 1 Case Else Return 0 EndSelect Else SetError(1) Return 0 EndIf EndFunc Func _g_($a38) Local $a3a[4] Local $a39[4] Local $a3d Local $a3s $a3d = "31,28,31,30,31,30,31,31,30,31,30,31" $a3d = StringSplit($a3d, ",") $a3s = StringSplit($a38, " T") If $a3s[0] > 0 Then $a3a = StringSplit($a3s[1], "/-.") If UBound($a3a) <> 4 Then Return(0) If $a3a[0] <> 3 Then Return(0) If Not StringIsInt($a3a[1]) Then Return(0) If Not StringIsInt($a3a[2]) Then Return(0) If Not StringIsInt($a3a[3]) Then Return(0) $a3a[1] = Number($a3a[1]) $a3a[2] = Number($a3a[2]) $a3a[3] = Number($a3a[3]) If _f_($a3a[1]) Then $a3d[2] = 29 If $a3a[1] < 1000 Or $a3a[1] > 2999 Then Return(0) If $a3a[2] < 1 Or $a3a[2] > 12 Then Return(0) If $a3a[3] < 1 Or $a3a[3] > $a3d[$a3a[2]] Then Return(0) If $a3s[0] > 1 Then $a39 = StringSplit($a3s[2], ":") If UBound($a39) < 4 Then ReDim $a39[4] Else Dim $a39[4] EndIf If $a39[0] < 1 Then Return(1) If $a39[0] < 2 Then Return(0) If $a39[0] = 2 Then $a39[3] = "00" If Not StringIsInt($a39[1]) Then Return(0) If Not StringIsInt($a39[2]) Then Return(0) If Not StringIsInt($a39[3]) Then Return(0) $a39[1] = Number($a39[1]) $a39[2] = Number($a39[2]) $a39[3] = Number($a39[3]) If $a39[1] < 0 Or $a39[1] > 23 Then Return(0) If $a39[2] < 0 Or $a39[2] > 59 Then Return(0) If $a39[3] < 0 Or $a39[3] > 59 Then Return(0) Return(1) EndFunc Func _h_($a38, ByRef $a3a, ByRef $a3t) Local $a3s Local $a3u $a3s = StringSplit($a38, " T") If $a3s[0] > 0 Then $a3a = StringSplit($a3s[1], "/-.") If $a3s[0] > 1 Then $a3t = StringSplit($a3s[2], ":") If UBound($a3t) < 4 Then ReDim $a3t[4] Else Dim $a3t[4] EndIf If UBound($a3a) < 4 Then ReDim $a3a[4] For $a3u = 1 To 3 If StringIsInt($a3a[$a3u]) Then $a3a[$a3u] = Number($a3a[$a3u]) Else $a3a[$a3u] = -1 EndIf If StringIsInt($a3t[$a3u]) Then $a3t[$a3u] = Number($a3t[$a3u]) Else $a3t[$a3u] = 0 EndIf Next Return(1) EndFunc Func _i_($a3r, $a3v, $a3w) Local $a3x Local $a3y Local $a3z Local $a3_ Local $a40 Local $a3b If Not _g_(StringFormat("%04d/%02d/%02d", $a3r, $a3v, $a3w)) Then SetError(1) Return("") EndIf If $a3v < 3 Then $a3v = $a3v + 12 $a3r = $a3r - 1 EndIf $a3x = Int($a3r / 100) $a3y = Int($a3x / 4) $a3z = 2 - $a3x + $a3y $a3_ = Int(1461 *($a3r + 4716) / 4) $a40 = Int(153 *($a3v + 1) / 5) $a3b = $a3z + $a3w + $a3_ + $a40 - 1524.5 Return($a3b) EndFunc Func _j_($a3b, ByRef $a3r, ByRef $a3v, ByRef $a3w) Local $a41 Local $a42 Local $a3x Local $a3y Local $a43 Local $a3z Local $a44 Local $a3_ Local $a40 If $a3b < 0 Or Not IsNumber($a3b) Then SetError(1) Return 0 EndIf $a41 = Int($a3b + 0.5) $a42 = Int(($a41 - 1867216.25) / 36524.25) $a43 = Int($a42 / 4) $a3x = $a41 + 1 + $a42 - $a43 $a3y = $a3x + 1524 $a3z = Int(($a3y - 122.1) / 365.25) $a44 = Int(365.25 * $a3z) $a3_ = Int(($a3y - $a44) / 30.6001) $a40 = Int(30.6001 * $a3_) $a3w = $a3y - $a44 - $a40 If $a3_ - 1 < 13 Then $a3v = $a3_ - 1 Else $a3v = $a3_ - 13 EndIf If $a3v < 3 Then $a3r = $a3z - 4715 Else $a3r = $a3z - 4716 EndIf $a3r = StringFormat("%04d", $a3r) $a3v = StringFormat("%02d", $a3v) $a3w = StringFormat("%02d", $a3w) Return $a3r & "/" & $a3v & "/" & $a3w EndFunc Func _k_() Return(@YEAR & "/" & @MON & "/" & @MDAY & " " & @HOUR & ":" & @MIN & ":" & @SEC) EndFunc Func _l_($a45, ByRef $a46, ByRef $a47, ByRef $a48) If Number($a45) > 0 Then $a45 = Round($a45 / 1000) $a46 = Int($a45 / 3600) $a45 = Mod($a45, 3600) $a47 = Int($a45 / 60) $a48 = Round(Mod($a45, 60)) Return 1 ElseIf Number($a45) = 0 Then $a46 = 0 $a45 = 0 $a47 = 0 $a48 = 0 Return 1 Else SetError(1) Return 0 EndIf EndFunc Func _m_($a46 = @HOUR, $a47 = @MIN, $a48 = @SEC) Local $a45 If StringIsInt($a46) And StringIsInt($a47) And StringIsInt($a48) Then $a45 = 1000 *((3600 * $a46) +(60 * $a47) + $a48) Return $a45 Else SetError(1) Return 0 EndIf EndFunc Func _n_($a49) Local $a4a, $a4b, $a4c $a4a = FileOpen($a49, 0) If $a4a = -1 Then Return SetError(1, 0, 0) $a4b = StringStripWS(FileRead($a4a), 2) FileClose($a4a) If StringInStr($a4b, @LF) Then $a4c = StringSplit(StringStripCR($a4b), @LF) ElseIf StringInStr($a4b, @CR) Then $a4c = StringSplit($a4b, @CR) Else If StringLen($a4b) Then Return 1 Else Return SetError(2, 0, 0) EndIf EndIf Return $a4c[0] EndFunc Func _o_($a4d, $a4e = "*", $a4f = 0) Local $a4g, $a4h, $a4i[1] If Not FileExists($a4d) Then Return SetError(1, 1, "") If(StringInStr($a4e, "\")) Or(StringInStr($a4e, "/")) Or(StringInStr($a4e, ":")) Or(StringInStr($a4e, ">")) Or(StringInStr($a4e, "<")) Or(StringInStr($a4e, "|")) Or(StringStripWS($a4e, 8) = "") Then Return SetError(2, 2, "") If Not($a4f = 0 Or $a4f = 1 Or $a4f = 2) Then Return SetError(3, 3, "") If(StringMid($a4d, StringLen($a4d), 1) = "\") Then $a4d = StringTrimRight($a4d, 1) $a4g = FileFindFirstFile($a4d & "\" & $a4e) If $a4g = -1 Then Return SetError(4, 4, "") While 1 $a4h = FileFindNextFile($a4g) If @error Then SetError(0) ExitLoop EndIf If $a4f = 1 And StringInStr(FileGetAttrib($a4d & "\" & $a4h), "D") <> 0 Then ContinueLoop If $a4f = 2 And StringInStr(FileGetAttrib($a4d & "\" & $a4h), "D") = 0 Then ContinueLoop $a4i[0] += 1 If UBound($a4i) <= $a4i[0] Then ReDim $a4i[UBound($a4i) * 2] $a4i[$a4i[0]] = $a4h WEnd FileClose($a4g) ReDim $a4i[$a4i[0] + 1] Return $a4i EndFunc Func _p_($a4j) If Not ProcessExists($a4j) Then SetError(1) Return '' EndIf Local $a4k = ProcessList() If Not @error Then For $a2c = 1 To $a4k[0][0] If $a4k[$a2c][1] = $a4j Then Return $a4k[$a2c][0] Next EndIf SetError(1) Return '' EndFunc Func _q_($a4l) Local $a4m Local $a4n If StringLen($a4l) >= 1 Then For $a4n = 1 To StringLen($a4l) $a4m = StringMid($a4l, $a4n, 1) & $a4m Next Return $a4m Else SetError(1) Return "" EndIf EndFunc Opt('MustDeclareVars', 1) Opt("TrayIconHide", 1) TraySetState(2) If Not @Compiled Then MsgBox(16, "ERROR!", "You must compile script before running it in cmd!") Exit EndIf Global Const $a4o = "v2.0" Global Const $a4p = "2009-11-13 beta" Global Const $a4q = "UEZ" Global Const $a4r = "SIC2" Global Const $a4s = "zorlu@gmx.net" Global Const $a4t = "License: Donationware. If you use it for a company, " & @CRLF & "please donate some bucks for my efforts! Free for personal use!" If @ScriptName <> $a4r & ".exe" Then FileMove(@ScriptName, @ScriptDir & "\" & $a4r & ".exe", 0) Exit EndIf If @OSVersion = "WIN_NT4" Or @OSVersion = "WIN_ME" Or @OSVersion = "WIN_98" Or @OSVersion = "WIN_95" Then MsgBox(16, "Wrong OS version", "OS version too low. " & @CRLF & @CRLF & $a4r & ".exe" & " is running on Win2000 or higher only!") Exit EndIf Dim $a4u[1], $a4v[1] Global $a4w, $a4x, $a4y, $a4z, $a4_, $a50, $a51 Global $a52, $a53, $a54, $a55, $a56, $a57, $a58, $a59, $a5a, $a5b, $a5c Global $a5d, $a4a, $a5e, $a5f, $a5g, $a5h, $a5i Global $a2c, $a5j, $a5k, $a5l, $a5m, $a5n, $a5o, $a5p, $a5q, $a5r, $a5s, $a5t, $a5u, $a5v, $a5w, $a5x, $a5y, $a5z, $a5_, $a60, $a61, $a62, $a63, $a64, $a65, $a66, $a67, $a68, $a69, $a6a, $a6b, $a6c, $a6d Global $a6e, $a6f, $a6g, $a6h, $a6i, $a6j, $a6k Global $a6l, $a6m, $a6n, $a6o, $a6p, $a6q, $a6r, $a6s, $a6t, $a6u, $a6v, $a6w, $a6x, $a6y, $a6z, $a6_, $a70, $a71, $a72, $a73, $a74, $a75, $a76 Global $a77 = @ScriptDir & "\Output\" Global Const $a78 = 0x00000004 Global Const $a79 = "dword dwSize;dword cntUsage;dword th32ThreadId;dword th32OwnerProcessID;long tpBasePri;long tpDeltaPri;dword dwFlags;" If StringInStr($a77, "\\") > 0 Then $a77 = StringReplace($a77, "\\", "\") $a4x = 100 $a4_ = 20 $a58 = False $a5i = 0 If $CmdLine[0] = 0 Then If StringLower(_p_(_1f_(@AutoItPID))) = "cmd.exe" Then _0__() Else MsgBox(16, "Wrong program call", "Program was not called from CMD!" & @CRLF & @CRLF & _ "Please start " & $a4r & ".exe" & " from cmd.exe!", 10) Exit EndIf EndIf _y_() If $a4w = 1 Then If $a4y = 0 Then ConsoleWrite(@CRLF & "Illegal parameter call! Aborting!" & @CRLF & @CRLF) Exit EndIf Dim $a7a[$a4y] $a52 = 0 For $a52 = 0 To UBound($a7a) - 1 $a7a[$a52] = 0 Next _13_() EndIf If $a4y > UBound($a4v) Then If $a6b = 0 Then ConsoleWrite(@CRLF & "Warning: more slaves (" & $a4y & ") selected then amount of system(s) is available!" & @CRLF & "Setting to max. possible!" & @CRLF & @CRLF) If UBound($a4v) = 1 Then $a4w = 0 $a4z = 0 ConsoleWrite("Found only 1 system. Continuing with...") $a5i = 1 Else $a4y = UBound($a4v) EndIf EndIf EndIf If $a4w = 1 And $a4y > 1 Then If $a6b = 0 Then ConsoleWrite(@CRLF & @CRLF & "Starting parallel runs with " & $a4y & " slaves for " & UBound($a4v) & " systems!" & @CRLF & @CRLF) EndIf _s_() ElseIf $a4w = 0 And $a4z = 1 Then _t_() Else If $a5i = 0 Then _13_() If $a6b = 0 Then ConsoleWrite(@CRLF & @CRLF & "Starting sequential run!" & @CRLF & @CRLF) EndIf _u_() EndIf Exit Func _r_($a7b) Local $a7c = Mod($a7b, 60) If $a7c < 10 Then $a7c = "0" & $a7c Local $a7d = Mod(Int($a7b / 60), 60) If $a7d < 10 Then $a7d = "0" & $a7d Local $a7e = Int($a7b / 60 ^ 2) If $a7e < 10 Then $a7e = "0" & $a7e Return $a7e & ":" & $a7d & ":" & $a7c EndFunc Func _s_() Local $a3u, $a7f, $a7g Local $a7h, $a7i, $a7e, $a7d, $a7c Local $a7j = _k_() Local $a7k = 1000 $a59 = 0 $a53 = UBound($a4v) - 1 $a69 = 5400 $a55 = 0 $a5b = 0 $a5a = 0 $a5f = ObjGet("winmgmts:{impersonationLevel = impersonate}!\\" & @ComputerName & "\root\cimv2") If @error Then ConsoleWrite("Error getting object on system: " & @ComputerName & "!" & "Terminating script!!!" & @CRLF) Exit EndIf Do If $a6b = 0 Then ConsoleWrite("System processed: " & $a55 & "/" & UBound($a4v) & " (" & Round($a55 / UBound($a4v) * 100, 2) & "% / " & _r_(_e_('s', $a7j, _k_())) & "). Mem. usage: " & $a5a & " kb " & @CR) EndIf _w_() Sleep($a7k) _x_() Until $a56 = 0 _14_() _15_(0) $a7h = _k_() $a7i = _e_('s', $a7j, $a7h) $a7e = Int($a7i / 60 ^ 2) $a7d = Int(($a7i -($a7e * 60 ^ 2)) / 60) $a7c = $a7i -($a7e * 60 ^ 2 + $a7d * 60) If $a7d < 10 Then $a7d = "0" & $a7d If $a6b = 0 Then ConsoleWrite(@CRLF & @CRLF & "Runtime: " & $a7i & " seconds (" & $a7e & "h " & $a7d & "m " & $a7c & "s) " & @CRLF & @CRLF) EndIf EndFunc Func _t_() Local $a7l = "WMI general connection", $a7m, $a7n Local $a7o = $a7l & "_" & $a67 & "_error.log" Ping($a67) If @error = 0 Then ProcessSetPriority(@AutoItPID, $a6a) $a7l = "WMI general connection" $a6i = ObjGet("winmgmts:{impersonationLevel=impersonate}!\\" & $a67 & "\root\cimv2") $a7n = @error If $a7n = 0 Then If $a5k = 1 Then _1j_($a67) If $a5l = 1 Or $a5m = 1 Then _1i_($a67) If $a5p = 1 Then _1m_($a67) If $a5q = 1 Then _1n_($a67) If $a5n = 1 Then _1k_($a67) If $a5o = 1 Then If $a50 = "" And $a51 = "" Then _1l_($a67) ElseIf $a50 <> "" And $a51 = "" Then _1l_($a67, $a50) ElseIf $a50 = "" And $a51 <> "" Then _1l_($a67, 7, $a51) Else _1l_($a67, $a50, $a51) EndIf EndIf If $a5r = 1 Then _1p_($a67) If $a5s = 1 Then _1r_($a67) If $a5t = 1 Then _1o_($a67) If $a5u = 1 Then _1s_($a67) If $a5w = 1 Then _1t_($a67) If $a5v = 1 Then _1w_($a67) If $a5x = 1 Then _1z_($a67) If $a5z = 1 Then _1__($a67) If $a5y = 1 Then _1y_($a67) If $a5_ = 1 Then _21_($a67) If $a60 = 1 Then _23_($a67) If $a61 = 1 Then _24_($a67) If $a62 = 1 Then _25_($a67) If $a63 = 1 Then _26_($a67) If $a64 = 1 Then _27_($a67) If $a65 = 1 Then _28_($a67) Else $a7m = @MDAY & "." & @MON & "." & @YEAR & ";" & @HOUR & ":" & @MIN & ":" & @SEC FileWriteLine($a77 & $a7o, $a67 & ";" & $a7m & ";" & $a4r & ".exe" & ";WMI;Error;WMI error " & $a7n & " on server " & $a67 & ";0;") EndIf Else $a7m = @MDAY & "." & @MON & "." & @YEAR & ";" & @HOUR & ":" & @MIN & ":" & @SEC FileWriteLine($a77 & $a7o, $a67 & ";" & $a7m & ";" & $a4r & ".exe" & ";Unreachable;Error;No ping reply from system " & $a67 & ";0;") EndIf EndFunc Func _u_() Local $a7l = "WMI general connection", $a7m Local $a7o Local $a2c, $a7n Local $a7h, $a7i, $a7e, $a7d, $a7c Local $a7j = _k_() Local $a53 = UBound($a4v) - 1 Local $a7p $a5a = 0 If $a6b = 1 Then $a7p = Run($a4r & ".exe" & " -chk_seq_run -pid " & @AutoItPID & " -silent", "", @SW_HIDE) Else $a7p = Run($a4r & ".exe" & " -chk_seq_run -pid " & @AutoItPID, "", @SW_HIDE) EndIf ProcessSetPriority(@AutoItPID, $a6a) $a4z = 0 For $a2c = 0 To $a53 $a67 = $a4v[$a2c] If $a6b = 0 Then $a5a = _1h_(Int((_1g_(@AutoItPID) + _1g_($a7p)) / 1024)) ConsoleWrite("System processed: " & $a2c + 1 & "/" &($a53 + 1) & " (" & Round(($a2c + 1) /($a53 + 1) * 100, 2) & "% / " & _e_('s', $a7j, _k_()) & "s). Mem usage: " & $a5a & "kb " & @CR) EndIf Ping($a67) If @error = 0 Then $a7o = $a7l & "_" & $a67 & "_error.log" $a7l = "WMI general connection" $a6i = ObjGet("winmgmts:{impersonationLevel=impersonate}!\\" & $a67 & "\root\cimv2") $a7n = @error If $a7n = 0 Then If $a5k = 1 Then _1j_($a67) If $a5l = 1 Or $a5m = 1 Then _1i_($a67) If $a5n = 1 Then _1k_($a67) If $a5o = 1 Then If $a50 = "" And $a51 = "" Then _1l_($a67) ElseIf $a50 <> "" And $a51 = "" Then _1l_($a67, $a50) ElseIf $a50 = "" And $a51 <> "" Then _1l_($a67, 14, $a51) Else _1l_($a67, $a50, $a51) EndIf EndIf If $a5p = 1 Then _1m_($a67) If $a5q = 1 Then _1n_($a67) If $a5r = 1 Then _1p_($a67) If $a5s = 1 Then _1r_($a67) If $a5t = 1 Then _1o_($a67) If $a5u = 1 Then _1s_($a67) If $a5w = 1 Then _1t_($a67) If $a5v = 1 Then _1w_($a67) If $a5x = 1 Then _1z_($a67) If $a5y = 1 Then _1y_($a67) If $a5z = 1 Then _1__($a67) If $a5_ = 1 Then _21_($a67) If $a60 = 1 Then _23_($a67) If $a61 = 1 Then _24_($a67) If $a62 = 1 Then _25_($a67) If $a63 = 1 Then _26_($a67) If $a64 = 1 Then _27_($a67) If $a65 = 1 Then _28_($a67) Else $a7m = @MDAY & "." & @MON & "." & @YEAR & ";" & @HOUR & ":" & @MIN & ":" & @SEC FileWriteLine($a76, $a67 & ";" & $a7m & ";" & $a4r & ".exe" & ";WMI;Error;WMI error " & $a7n & " on server " & $a67 & ";0;") EndIf Else $a7m = @MDAY & "." & @MON & "." & @YEAR & ";" & @HOUR & ":" & @MIN & ":" & @SEC FileWriteLine($a76, $a67 & ";" & $a7m & ";" & $a4r & ".exe" & ";Unreachable;Error;No ping reply from system " & $a67 & ";0;") EndIf Next If ProcessExists($a7p) Then ProcessClose($a7p) ConsoleWrite(@CRLF & @CRLF) _15_(0) $a7h = _k_() $a7i = _e_('s', $a7j, $a7h) $a7e = Int($a7i / 60 ^ 2) $a7d = Int(($a7i -($a7e * 60 ^ 2)) / 60) $a7c = $a7i -($a7e * 60 ^ 2 + $a7d * 60) If $a7d < 10 Then $a7d = "0" & $a7d If $a6b = 0 Then ConsoleWrite(@CRLF & @CRLF & "Runtime: " & $a7i & " seconds (" & $a7e & "h " & $a7d & "m " & $a7c & "s) " & @CRLF & @CRLF) EndIf EndFunc Func _v_($a7q) Global $a66 = 0 Sleep(1000 * 60 * 60 * 18) If ProcessExists($a7q) Then If $a6b = 0 Then ConsoleWrite(@CRLF & $a4r & ".exe" & " probably hangs! Aborting process (PID): " & $a7q & " !!!" & @CRLF) EndIf ProcessClose($a7q) EndIf Sleep(500) _15_(1) Exit EndFunc Func _w_() Local $a2c If $a58 = False Then For $a2c = 0 To(UBound($a7a) - 1) If $a7a[$a2c] = 0 And $a55 <= $a53 Then $a7a[$a2c] = Run($a4r & ".exe" & $a54 & " -prio " & $a6a & " -slave -system " & $a4v[$a55], "", @SW_HIDE) ProcessSetPriority($a7a[$a2c], $a6a) $a55 += 1 $a59 += 1 EndIf Sleep(10) Next If $a55 = UBound($a4v) Then $a58 = True $a68 = _k_() EndIf EndIf EndFunc Func _x_() Local $a7l = "Check_PIDs" Local $a2e $a56 = 0 $a5a = 0 $a5b = 0 For $a2e = 0 To(UBound($a7a) - 1) $a56 += $a7a[$a2e] If $a6b = 0 Then If ProcessExists($a7a[$a2e]) > 0 Then $a5a += _1g_($a7a[$a2e]) EndIf EndIf If ProcessExists($a7a[$a2e]) = 0 Then $a7a[$a2e] = 0 If $a59 > 0 Then $a59 -= 1 EndIf EndIf If $a58 And _e_('s', $a68, _k_()) >= $a69 And $a7a[$a2e] <> 0 Then If $a6b = 0 Then $a5g = _1e_($a7a[$a2e]) If $a5g <> "" Then $a5h = StringMid($a5g, StringLen($a5g) - StringInStr(_q_($a5g), " ") + 2) Else $a5h = "unknown" EndIf ConsoleWrite("Process waiting time exceeded for system " & $a5h & " - killing PID " & $a7a[$a2e] & "!" & @CRLF) EndIf ProcessClose($a7a[$a2e]) Local $a7o = $a7l & "_" & $a5h & "_error.log" Local $a7m = @MDAY & "." & @MON & "." & @YEAR & ";" & @HOUR & ":" & @MIN & ":" & @SEC FileWriteLine($a77 & $a7o, $a5h & ";" & $a7m & ";" & $a4r & ".exe" & ";Process Kill" & ";Information;Waiting time exceeded for system " & $a5h & ". Killed PID " & $a7a[$a2e] & ".;0;") $a7a[$a2e] = 0 EndIf Next If $a6b = 0 Then $a5a = _1h_(Int((_1g_(@AutoItPID) + $a5a) / 1024)) EndIf EndFunc Func _y_() Local $a3u $a2c = 0 $a5j = 0 $a5k = 0 $a5l = 0 $a5m = 0 $a5n = 0 $a5o = 0 $a5p = 0 $a5q = 0 $a5r = 0 $a5s = 0 $a5t = 0 $a5u = 0 $a5w = 0 $a5v = 0 $a5x = 0 $a5y = 0 $a5z = 0 $a5_ = 0 $a60 = 0 $a61 = 0 $a62 = 0 $a63 = 0 $a64 = 0 $a65 = 0 $a4w = 0 $a6a = 0 $a54 = "" $a4z = 0 $a4y = 0 $a6b = 0 $a6d = 0 $a66 = 0 $a6c = 1 If StringLower($CmdLine[1]) = StringLower("-?") Or StringLower($CmdLine[1]) = StringLower("/?") Or StringLower($CmdLine[1]) = StringLower("/help") Or StringLower($CmdLine[1]) = StringLower("-help") Then _0__() EndIf For $a3u = 1 To $CmdLine[0] If StringLower($CmdLine[$a3u]) = StringLower("-ver") Then _10_() If StringLower($CmdLine[$a3u]) = StringLower("-di") Then $a5k = 1 $a54 &= " -di" EndIf If StringLower($CmdLine[$a3u]) = StringLower("-dp") Then $a5l = 1 $a54 &= " -dp" EndIf If StringLower($CmdLine[$a3u]) = StringLower("-dp1") Then $a5m = 1 $a54 &= " -dp1" EndIf If StringLower($CmdLine[$a3u]) = StringLower("-el") Then $a5n = 1 $a54 &= " -el" EndIf If StringLower($CmdLine[$a3u]) = StringLower("-ee") Then $a5o = 1 $a54 &= " -ee" If $a3u + 1 <= $CmdLine[0] Then If StringIsInt($CmdLine[$a3u + 1]) Then $a50 = $CmdLine[$a3u + 1] EndIf If $a3u + 2 <= $CmdLine[0] Then If StringIsInt($CmdLine[$a3u + 2]) Then $a51 = $CmdLine[$a3u + 2] EndIf EndIf If StringLower($CmdLine[$a3u]) = StringLower("-hd") Then $a5p = 1 $a54 &= " -hd" EndIf If StringLower($CmdLine[$a3u]) = StringLower("-hw") Then $a5q = 1 $a54 &= " -hw" EndIf If StringLower($CmdLine[$a3u]) = StringLower("-ls") Then $a5r = 1 $a54 &= " -ls" EndIf If StringLower($CmdLine[$a3u]) = StringLower("-lu") Then $a5s = 1 $a54 &= " -lu" EndIf If StringLower($CmdLine[$a3u]) = StringLower("-ms") Then $a5t = 1 $a54 &= " -ms" EndIf If StringLower($CmdLine[$a3u]) = StringLower("-nw") Then $a5u = 1 $a54 &= " -nw" EndIf If StringLower($CmdLine[$a3u]) = StringLower("-od") Then $a5w = 1 $a54 &= " -od" EndIf If StringLower($CmdLine[$a3u]) = StringLower("-os") Then $a5v = 1 $a54 &= " -os" EndIf If StringLower($CmdLine[$a3u]) = StringLower("-pc") Then $a5x = 1 $a54 &= " -pc" EndIf If StringLower($CmdLine[$a3u]) = StringLower("-pf") Then $a5y = 1 $a54 &= " -pf" EndIf If StringLower($CmdLine[$a3u]) = StringLower("-ph") Then $a5z = 1 $a54 &= " -ph" EndIf If StringLower($CmdLine[$a3u]) = StringLower("-pt") Then $a5_ = 1 $a54 &= " -pt" EndIf If StringLower($CmdLine[$a3u]) = StringLower("-rl") Then $a60 = 1 $a54 &= " -rl" EndIf If StringLower($CmdLine[$a3u]) = StringLower("-rt") Then $a61 = 1 $a54 &= " -rt" EndIf If StringLower($CmdLine[$a3u]) = StringLower("-sv") Then $a62 = 1 $a54 &= " -sv" EndIf If StringLower($CmdLine[$a3u]) = StringLower("-sw") Then $a63 = 1 $a54 &= " -sw" EndIf If StringLower($CmdLine[$a3u]) = StringLower("-tz") Then $a64 = 1 $a54 &= " -tz" EndIf If StringLower($CmdLine[$a3u]) = StringLower("-vc") Then $a65 = 1 $a54 &= " -vc" EndIf If StringLower($CmdLine[$a3u]) = StringLower("-zip") Then $a66 = 1 EndIf If StringLower($CmdLine[$a3u]) = StringLower("-no_folder") Then $a6c = 0 EndIf If StringLower($CmdLine[$a3u]) = StringLower("-shuffle") Then $a6d = 1 EndIf If StringLower($CmdLine[$a3u]) = StringLower("-system") Then $a67 = _z_($a3u + 1) EndIf If $a66 = 1 And Not FileExists(@SystemDir & "\zipfldr.dll") And Not RegRead("HKEY_CLASSES_ROOT\CLSID\{E88DCCE0-B7B3-11d1-A9F0-00AA0060FA31}", "") Then $a66 = 0 ConsoleWrite(@CRLF & "No built-in ZIP found on your system. Skipping creation of ZIP archive..." & @CRLF & @CRLF) EndIf If StringLower($CmdLine[$a3u]) = StringLower("-master") Then $a4w = 1 If StringLower($CmdLine[$a3u]) = StringLower("-i") Then $a5d = _z_($a3u + 1) If FileGetSize($a5d) = 0 Then ConsoleWrite(@CRLF & "File " & $a5d & " is empty!" & @CRLF) Exit EndIf $a2c = 1 EndIf If StringLower($CmdLine[$a3u]) = StringLower("-slaves") Then $a4y = _z_($a3u + 1) If StringIsInt($a4y) = 0 Then ConsoleWrite(@CRLF & "Argument for -slaves parameter is not integer!" & @CRLF & @CRLF) Exit EndIf $a4z = 1 EndIf If StringLower($CmdLine[$a3u]) = StringLower("-slave") Then $a4z = 1 EndIf If StringLower($CmdLine[$a3u]) = StringLower("-prio") Then $a6a = _z_($a3u + 1) EndIf If StringLower($CmdLine[$a3u]) = StringLower("-all") Then $a5j = 1 $a5k = 1 $a5l = 1 $a5n = 1 $a5o = 1 $a5p = 1 $a5q = 1 $a5r = 1 $a5s = 1 $a5t = 1 $a5u = 1 $a5w = 1 $a5v = 1 $a5x = 1 $a5y = 1 $a5z = 1 $a5_ = 1 $a60 = 1 $a61 = 1 $a62 = 1 $a63 = 1 $a64 = 1 $a65 = 1 EndIf If StringLower($CmdLine[$a3u]) = StringLower("-silent") Then $a6b = 1 Next If StringLower($CmdLine[1]) = StringLower("-chk_seq_run") And StringLower($CmdLine[2]) = StringLower("-pid") Then _v_($CmdLine[3]) EndIf If $a2c = 0 And $a4z = 0 Then ConsoleWrite(@CRLF & "Paramter -i is missing!" & @CRLF & @CRLF) Exit EndIf If $a5j = 1 Then $a54 = " -di -dp -el -ee -hd -hw -ls -lu -ms -nw -os -od -pc -pf -ph -pt -rl -rt -sv -sw -tz -vc" If $a6a < 0 Or $a6a > 3 Then $a6a = 0 If $a5k + $a5l + $a5m + $a5n + $a5o + $a5p + $a5q + $a5r + $a5s + $a5t + $a5u + $a5v + $a5w + $a5x + $a5y + + $a5z + $a5_ + $a60 + $a61 + $a62 + $a63 + $a64 + $a65 = 0 Then ConsoleWrite(@CRLF & "At least one argument is missing!" & @CRLF & @CRLF) Exit EndIf If $a4w = 1 And $a4z = 0 Then $a4y = $a4_ If $a4y > $a4x Then ConsoleWrite(@CRLF & " from parameter -slaves is over threshold! Setting to default (" & $a4x & ")." & @CRLF & @CRLF) $a4y = $a4x EndIf If $a4w = 1 Then If $a4y < 0 Then ConsoleWrite(@CRLF & "Parameter -slaves < 0 makes no sense!" & @CRLF & @CRLF) Exit EndIf EndIf EndFunc Func _z_($a7r) Local $a7s, $a7t $a7t = "" For $a7s = $a7r To $CmdLine[0] If StringLeft($CmdLine[$a7s], 1) <> "-" Then If $a7s = $CmdLine[0] Then $a7t = $a7t & $CmdLine[$a7s] Else $a7t = $a7t & $CmdLine[$a7s] & " " EndIf Else ExitLoop EndIf Next Return StringStripWS($a7t, 8) EndFunc Func _0__() ConsoleWrite(@CRLF & @CRLF & $a4r & " " & $a4o & " build " & $a4p & " by " & $a4q & "." & @CRLF & @CRLF) ConsoleWrite("Usage: " & $a4r & @TAB & _ "<-i (system list filename)>" & @CRLF & @TAB & @TAB & _ "[-master] for multi processing mode" & @CRLF & @TAB & @TAB & _ "[-slaves ] can only be used with -master parameter." & @CRLF & @TAB & @TAB & _ @TAB & " Default is " & $a4_ & "." & @CRLF & @TAB & @TAB & _ "[-prio <0-3>] for process prio - standard is 0 (idle)" & @CRLF & @TAB & @TAB & _ "[-silent] no output to CMD" & @CRLF & @TAB & @TAB & _ "[-no_folder] doesn't create the output folder." & @CRLF & @TAB & @TAB & _ "[-zip] move Run_YYYY-MM-DD_HHMMSS folder to ZIP archive" & @CRLF & @TAB & @TAB & _ "[-shuffle] shuffels system list" & @CRLF & @TAB & @TAB & _ " see below!" & @CRLF & @TAB & @TAB & _ "[-ver] for version number" & @CRLF & @TAB & @TAB & _ "[-? | /? | -help | /help]] for this page" & @CRLF & @CRLF) ConsoleWrite("Options can be (at least one option below must be set):" & @CRLF & @CRLF) ConsoleWrite(@TAB & "-all activate all options below" & @CRLF) ConsoleWrite(@TAB & "-di get only information about domain" & @CRLF) ConsoleWrite(@TAB & "-dp get only information about disk partitions" & @CRLF) ConsoleWrite(@TAB & "-el get only information about eventlog settings" & @CRLF) ConsoleWrite(@TAB & "-ee [d] [id] get only information about eventlog system errors-> slow" & @CRLF) ConsoleWrite(@TAB & "-hd get only information about harddisk" & @CRLF) ConsoleWrite(@TAB & "-hw get only information about hardware" & @CRLF) ConsoleWrite(@TAB & "-ls get only information about local shares" & @CRLF) ConsoleWrite(@TAB & "-lu get only information about local user accounts" & @CRLF) ConsoleWrite(@TAB & "-ms get only information about membership of local administrators group" & @CRLF) ConsoleWrite(@TAB & "-nw get only information about network settings" & @CRLF) ConsoleWrite(@TAB & "-od get only information about optical drive" & @CRLF) ConsoleWrite(@TAB & "-os get only information about operating system" & @CRLF) ConsoleWrite(@TAB & "-pc get only information about patches" & @CRLF) ConsoleWrite(@TAB & "-pf get only information about pagefile" & @CRLF) ConsoleWrite(@TAB & "-ph get only information about PnP hardware problem" & @CRLF) ConsoleWrite(@TAB & "-pt get only information about printer" & @CRLF) ConsoleWrite(@TAB & "-rl get only information about role of system" & @CRLF) ConsoleWrite(@TAB & "-rt get only information about persistent IP4 routing table" & @CRLF) ConsoleWrite(@TAB & "-sv get only information about services" & @CRLF) ConsoleWrite(@TAB & "-sw get only information about installed software w/o MS updates" & @CRLF) ConsoleWrite(@TAB & "-tz get only information about timezone" & @CRLF) ConsoleWrite(@TAB & "-vc get only information about video controller" & @CRLF & @CRLF) ConsoleWrite("If you set only -ee then all errors of last 7 days will be enumerated!" & @CRLF & "Otherwise set parameter [d] for days and [id] for event id." & @CRLF & @CRLF) ConsoleWrite("If argument [-master -slaves ] is not given then sequential" & @CRLF & "mode will be used automatically!" & @CRLF & @CRLF) ConsoleWrite("Each slave process takes around 6 MB of memory!" & @CRLF & @CRLF) ConsoleWrite("System list file for parameter -i may contain only one name or ip address" & @CRLF) ConsoleWrite("in each line of the appropriate system." & @CRLF & @CRLF) ConsoleWrite("Output will be written to folder Output where " & $a4r & ".exe" & " was started and to a" & @CRLF) ConsoleWrite("separate folder named Run_YYYY-MM-DD_HHMMSS." & @CRLF & @CRLF) ConsoleWrite("Output format is a semicolon separeted text file (*.csv) in Ouput's subfolder." & @CRLF & @CRLF & @CRLF) ConsoleWrite("Prio parameter can be from 0-3: Idle, Below Normal, Normal and Above Normal" & @CRLF & @CRLF & @CRLF & @CRLF) ConsoleWrite("Examples:" & @CRLF & @CRLF) ConsoleWrite(@TAB & "Parallel run:" & @CRLF) ConsoleWrite(@TAB & " " & $a4r & ".exe -i list.txt -all -zip -master -slaves 25" & @CRLF) ConsoleWrite(@TAB & " " & $a4r & ".exe -i list.txt -os -nw -hw -master -slaves 15" & @CRLF) ConsoleWrite(@TAB & " " & $a4r & ".exe -i list.txt -ee 5 7000 -di -sw -od -master -prio 1" & @CRLF & @CRLF) ConsoleWrite(@TAB & "Sequential run:" & @CRLF) ConsoleWrite(@TAB & " " & $a4r & ".exe -i list.txt -all" & @CRLF) ConsoleWrite(@TAB & " " & $a4r & ".exe -i list.txt -el -pc -tz -ms -od -rt -zip" & @CRLF) ConsoleWrite(@TAB & " " & $a4r & ".exe -i list.txt -ee 7 -sw -prio 2" & @CRLF & @CRLF & @CRLF) Exit EndFunc Func _10_() ConsoleWrite(@CRLF & @CRLF & $a4r & " " & $a4o & " build " & $a4p & " by " & $a4q & " (" & $a4s & ")." & @CRLF & @CRLF) ConsoleWrite($a4r & " stands for S(ystem) I(nformation) C(ollector)." & @CRLF & @CRLF) ConsoleWrite($a4t & @CRLF & @CRLF & @CRLF) Exit EndFunc Func _11_($a7u) Return(StringMid($a7u, 7, 2) & "." & StringMid($a7u, 5, 2) & "." & StringLeft($a7u, 4)) EndFunc Func _12_($a7u) Return(StringMid($a7u, 7, 2) & "." & StringMid($a7u, 5, 2) & "." & StringLeft($a7u, 4) & " " & _ StringMid($a7u, 9, 2) & ":" & StringMid($a7u, 11, 2) & ":" & StringMid($a7u, 13, 2)) EndFunc Func _13_() If $a6b = 0 Then ConsoleWrite(@CRLF & @CRLF & $a4r & " " & $a4o & " - " & $a4t & @CRLF) If FileExists($a5d) = 0 Then ConsoleWrite(@CRLF & "Unable to open file: " & $a5d & " !!!" & @CRLF & @CRLF) Exit EndIf $a4a = FileOpen($a5d, 0) $a5e = FileRead($a4a, FileGetSize($a5d)) FileClose($a4a) Sleep(125) If $a5e <> "" Then If StringInStr($a5e, @LF) Then $a4u = StringSplit(StringStripCR($a5e), @LF) ElseIf StringInStr($a5e, @CR) Then $a4u = StringSplit($a5e, @CR) Else $a4u[0] = $a5e EndIf Else ConsoleWrite(@CRLF & @CRLF & "Internal error (" & @error & ")! Aborting..." & @CRLF & @CRLF & @CRLF) Exit EndIf Sleep(125) If UBound($a4u) - 1 > 0 Then $a52 = 0 For $a3u = 1 To UBound($a4u) - 1 If $a4u[$a3u] <> "" And StringIsASCII($a4u[$a3u]) = 1 Then ReDim $a4v[$a52 + 1] $a4v[$a52] = $a4u[$a3u] $a52 += 1 EndIf Next Else ReDim $a4v[1] $a4v[0] = $a4u[0] EndIf Sleep(125) If $a6d = 1 And UBound($a4v) > 1 Then _1d_($a4v) EndIf If FileExists($a77 & "Disks_Partitions.csv") Then FileDelete($a77 & "Disks_Partitions.csv") If $a5l = 1 Or $a5m = 1 Then $a6l = FileOpen($a77 & "Disks_Partitions.csv", 1 + 8) FileWrite($a6l, "Systemname;Drive Letter;Partition Name; Filesystem Type; Partition Size (GB); Free Diskspace (GB); Free Diskspace (%)" & @CRLF) EndIf If FileExists($a77 & "Domain_Information.csv") Then FileDelete($a77 & "Domain_Information.csv") If $a5k = 1 Then $a6m = FileOpen($a77 & "Domain_Information.csv", 1 + 8) FileWrite($a6m, "Systemname;Domain Name;Client Site Name;DC Name;DC IP Address;Status" & @CRLF) EndIf If FileExists($a77 & "Eventlog.csv") Then FileDelete($a77 & "Eventlog.csv") If $a5n = 1 Then $a6n = FileOpen($a77 & "Eventlog.csv", 1 + 8) FileWrite($a6n, "Systemname;Eventlog Name;File Size (MB);Creation Date;Max. File Size (KB);Number Of Records;Overwrite Out Dated;Overwrite Policy;Status" & @CRLF) EndIf If FileExists($a77 & "Eventlog_Errors.csv") Then FileDelete($a77 & "Eventlog_Errors.csv") If $a5o = 1 Then $a6o = FileOpen($a77 & "Eventlog_Errors.csv", 1 + 8) FileWrite($a6o, "Systemname;Error Source;Error Type;Error Event ID;Error Time Generated ;Error Source Name;Error Insertion Strings;Error Message" & @CRLF) EndIf If FileExists($a77 & "Harddisk.csv") Then FileDelete($a77 & "Harddisk.csv") If $a5p = 1 Then $a6q = FileOpen($a77 & "Harddisk.csv", 1 + 8) FileWrite($a6q, "Systemname;Model;Interface Type;Type;Partitions;Size (GB)" & @CRLF) EndIf If FileExists($a77 & "Hardware.csv") Then FileDelete($a77 & "Hardware.csv") If $a5q = 1 Then $a6p = FileOpen($a77 & "Hardware.csv", 1 + 8) FileWrite($a6p, "Systemname;Manufacturer;Product Name;Serial Number;Chassis Type;BIOS Name;BIOS Manufacturer;BIOS Version;Processor Type;Processor Description;Processor Max Clock Speed (Hz);Logical CPU(s);Physical CPU(s);Memory Capacity (MB);Memory Banks" & @CRLF) EndIf If FileExists($a77 & "Local_Shares.csv") Then FileDelete($a77 & "Local_Shares.csv") If $a5r = 1 Then $a6r = FileOpen($a77 & "Local_Shares.csv", 1 + 8) FileWrite($a6r, "Systemname;Local Share Name;Path;Description;Status;Permission Owner;Permission" & @CRLF) EndIf If FileExists($a77 & "Local_User_Accounts.csv") Then FileDelete($a77 & "Local_User_Accounts.csv") If $a5s = 1 Then $a6s = FileOpen($a77 & "Local_User_Accounts.csv", 1 + 8) FileWrite($a6s, "Systemname;Local User Account Name;Full Name;Description;Disabled;PWD Changeable;PWD Expires;PW Required;Status" & @CRLF) EndIf If FileExists($a77 & "Members.csv") Then FileDelete($a77 & "Members.csv") If $a5t = 1 Then $a6t = FileOpen($a77 & "Members.csv", 1 + 8) FileWrite($a6t, "Systemname;Group Name;Account Type;Member" & @CRLF) EndIf If FileExists($a77 & "Network.csv") Then FileDelete($a77 & "Network.csv") If $a5u = 1 Then $a6u = FileOpen($a77 & "Network.csv", 1 + 8) FileWrite($a6u, "Systemname;Adapter;Description;IP;Subnet;Gateway;MAC;DNS;DNS Suffix;WINS1;WINS2;DHCP Server" & @CRLF) EndIf If FileExists($a77 & "Optical_Drive.csv") Then FileDelete($a77 & "Optical_Drive.csv") If $a5w = 1 Then $a6v = FileOpen($a77 & "Optical_Drive.csv", 1 + 8) FileWrite($a6v, "Systemname;Model;Drive Letter;Type;Media Type;Capabilities;Status" & @CRLF) EndIf If FileExists($a77 & "OS.csv") Then FileDelete($a77 & "OS.csv") If $a5v = 1 Then $a6w = FileOpen($a77 & "OS.csv", 1 + 8) FileWrite($a6w, "Systemname;OS Version;Service Pack Version;Build;OS Architecture (Bit);OS Install Date;OS Language;EDS GoldDisk version" & @CRLF) EndIf If FileExists($a77 & "Patches.csv") Then FileDelete($a77 & "Patches.csv") If $a5x = 1 Then $a6x = FileOpen($a77 & "Patches.csv", 1 + 8) FileWrite($a6x, "Systemname;Hot fix ID;Install Date;Installed By;Description" & @CRLF) EndIf If FileExists($a77 & "Pagefile.csv") Then FileDelete($a77 & "Pagefile.csv") If $a5y = 1 Then $a6y = FileOpen($a77 & "Pagefile.csv", 1 + 8) FileWrite($a6y, "Systemname;Path;Current Size (MB);Initial Size (MB);Maximum Size (MB);Creation Date;Status" & @CRLF) EndIf If FileExists($a77 & "PnP_Hardware_Problem.csv") Then FileDelete($a77 & "PnP_Hardware_Problem.csv") If $a5z = 1 Then $a6z = FileOpen($a77 & "PnP_Hardware_Problem.csv", 1 + 8) FileWrite($a6z, "Systemname;Description;Name;Manufacturer;DeviceID;Problem" & @CRLF) EndIf If FileExists($a77 & "Printer.csv") Then FileDelete($a77 & "Printer.csv") If $a5_ = 1 Then $a6_ = FileOpen($a77 & "Printer.csv", 1 + 8) FileWrite($a6_, "Systemname;Driver Name;Name;Capability Descriptions;Server Name;Share Name;Port Name;Location;Status" & @CRLF) EndIf If FileExists($a77 & "Role.csv") Then FileDelete($a77 & "Role.csv") If $a60 = 1 Then $a70 = FileOpen($a77 & "Role.csv", 1 + 8) FileWrite($a70, "Systemname;Domain;Domain Role;System Startup Options" & @CRLF) EndIf If FileExists($a77 & "Routing_Table.csv") Then FileDelete($a77 & "Routing_Table.csv") If $a61 = 1 Then $a71 = FileOpen($a77 & "Routing_Table.csv", 1 + 8) FileWrite($a71, "Systemname;Destination IP;Network Mask;Gateway;Metric" & @CRLF) EndIf If FileExists($a77 & "Services.csv") Then FileDelete($a77 & "Services.csv") If $a62 = 1 Then $a72 = FileOpen($a77 & "Services.csv", 1 + 8) FileWrite($a72, "Systemname;Caption;Name;Start Mode;State;Starter Name" & @CRLF) EndIf If FileExists($a77 & "Software.csv") Then FileDelete($a77 & "Software.csv") If $a63 = 1 Then $a73 = FileOpen($a77 & "Software.csv", 1 + 8) FileWrite($a73, "Systemname;Description;Version;Vendor;Install Date" & @CRLF) EndIf If FileExists($a77 & "Timezone.csv") Then FileDelete($a77 & "Timezone.csv") If $a64 = 1 Then $a74 = FileOpen($a77 & "Timezone.csv", 1 + 8) FileWrite($a74, "Systemname;Description;Daylight Name;Daylight Month;Daylight Day;Standard Name;Standard Month;Standard Day" & @CRLF) EndIf If FileExists($a77 & "Video_Contoller.csv") Then FileDelete($a77 & "Video_Contoller.csv") If $a65 = 1 Then $a75 = FileOpen($a77 & "Video_Contoller.csv", 1 + 8) FileWrite($a75, "Systemname;Model;Vendor;Memory (MB);Driver Version;Driver Date" & @CRLF) EndIf If FileExists($a77 & "Errors.csv") Then FileDelete($a77 & "Errors.csv") $a76 = FileOpen($a77 & "Errors.csv", 1 + 8) FileWrite($a76, "Systemname;Date;Time;Application Name;Function Name;Error Source;Error Level;Problem Checked?" & @CRLF) EndFunc Func _14_() Dim $a7v[1], $a7w[1], $a7x[1], $a7y[1], $a7z[1], $a7_[1], $a80[1], $a81[1], $a82[1], $a83[1], $a84[1], $a85[1], $a86[1], $a87[1], $a88[1], $a89[1], $a8a[1], $a8b[1], $a8c[1], $a8d[1], $a8e[1], $a8f[1], $a8g[1] Local $a8h, $a8i, $a8j, $a8k, $a8l, $a8m, $a8n, $a8o, $a8p, $a8q, $a8r, $a8s, $a8t, $a8u, $a8v, $a8w, $a8x, $a8y, $a8z, $a8_, $a90, $a91, $a92 Local $a3u, $a93 If $a6b = 0 Then ConsoleWrite(@CRLF & @CRLF & "Merging files...") $a8h = FileFindFirstFile($a77 & "Disks_Partitions_*.dp") $a8i = FileFindFirstFile($a77 & "Domain_Information_*.di") $a8j = FileFindFirstFile($a77 & "Eventlog_*.el") $a8k = FileFindFirstFile($a77 & "Eventlog_Errors_*.ee") $a8l = FileFindFirstFile($a77 & "Harddisk_*.hd") $a8m = FileFindFirstFile($a77 & "Hardware_*.hw") $a8n = FileFindFirstFile($a77 & "Local_Shares_*.ls") $a8o = FileFindFirstFile($a77 & "Local_User_Accounts_*.lu") $a8p = FileFindFirstFile($a77 & "Members_*.ms") $a8q = FileFindFirstFile($a77 & "Network_*.nw") $a8r = FileFindFirstFile($a77 & "Optical_Drive_*.od") $a8s = FileFindFirstFile($a77 & "OS_*.os") $a8u = FileFindFirstFile($a77 & "Pagefile_*.pf") $a8t = FileFindFirstFile($a77 & "Patches_*.pc") $a8v = FileFindFirstFile($a77 & "PnP_Hardware_Problem_*.ph") $a8w = FileFindFirstFile($a77 & "Printer_*.pt") $a8x = FileFindFirstFile($a77 & "Role_*.rl") $a8y = FileFindFirstFile($a77 & "Routing_Table_*.rt") $a8z = FileFindFirstFile($a77 & "Services_*.sv") $a8_ = FileFindFirstFile($a77 & "Software_*.sw") $a90 = FileFindFirstFile($a77 & "Timezone_*.tz") $a91 = FileFindFirstFile($a77 & "Video_Contoller_*.vc") $a92 = FileFindFirstFile($a77 & "*_error.log") $a3u = 0 FileFindFirstFile($a8h) While 1 ReDim $a7v[$a3u + 1] $a7v[$a3u] = FileFindNextFile($a8h) If @error Then ExitLoop $a3u += 1 WEnd FileClose($a8h) $a3u = 0 FileFindFirstFile($a8i) While 1 ReDim $a7w[$a3u + 1] $a7w[$a3u] = FileFindNextFile($a8i) If @error Then ExitLoop $a3u += 1 WEnd FileClose($a8i) $a3u = 0 FileFindFirstFile($a8j) While 1 ReDim $a7x[$a3u + 1] $a7x[$a3u] = FileFindNextFile($a8j) If @error Then ExitLoop $a3u += 1 WEnd FileClose($a8j) $a3u = 0 FileFindFirstFile($a8k) While 1 ReDim $a7y[$a3u + 1] $a7y[$a3u] = FileFindNextFile($a8k) If @error Then ExitLoop $a3u += 1 WEnd FileClose($a8k) $a3u = 0 FileFindFirstFile($a8l) While 1 ReDim $a7z[$a3u + 1] $a7z[$a3u] = FileFindNextFile($a8l) If @error Then ExitLoop $a3u += 1 WEnd FileClose($a8l) $a3u = 0 FileFindFirstFile($a8m) While 1 ReDim $a7_[$a3u + 1] $a7_[$a3u] = FileFindNextFile($a8m) If @error Then ExitLoop $a3u += 1 WEnd FileClose($a8m) $a3u = 0 FileFindFirstFile($a8n) While 1 ReDim $a80[$a3u + 1] $a80[$a3u] = FileFindNextFile($a8n) If @error Then ExitLoop $a3u += 1 WEnd FileClose($a8n) $a3u = 0 FileFindFirstFile($a8o) While 1 ReDim $a81[$a3u + 1] $a81[$a3u] = FileFindNextFile($a8o) If @error Then ExitLoop $a3u += 1 WEnd FileClose($a8o) $a3u = 0 FileFindFirstFile($a8p) While 1 ReDim $a82[$a3u + 1] $a82[$a3u] = FileFindNextFile($a8p) If @error Then ExitLoop $a3u += 1 WEnd FileClose($a8p) $a3u = 0 FileFindFirstFile($a8q) While 1 ReDim $a83[$a3u + 1] $a83[$a3u] = FileFindNextFile($a8q) If @error Then ExitLoop $a3u += 1 WEnd FileClose($a8q) $a3u = 0 FileFindFirstFile($a8r) While 1 ReDim $a84[$a3u + 1] $a84[$a3u] = FileFindNextFile($a8r) If @error Then ExitLoop $a3u += 1 WEnd FileClose($a8r) $a3u = 0 FileFindFirstFile($a8s) While 1 ReDim $a85[$a3u + 1] $a85[$a3u] = FileFindNextFile($a8s) If @error Then ExitLoop $a3u += 1 WEnd FileClose($a8s) $a3u = 0 FileFindFirstFile($a8u) While 1 ReDim $a86[$a3u + 1] $a86[$a3u] = FileFindNextFile($a8u) If @error Then ExitLoop $a3u += 1 WEnd FileClose($a8u) $a3u = 0 FileFindFirstFile($a8t) While 1 ReDim $a87[$a3u + 1] $a87[$a3u] = FileFindNextFile($a8t) If @error Then ExitLoop $a3u += 1 WEnd FileClose($a8t) $a3u = 0 FileFindFirstFile($a8v) While 1 ReDim $a88[$a3u + 1] $a88[$a3u] = FileFindNextFile($a8v) If @error Then ExitLoop $a3u += 1 WEnd FileClose($a8v) $a3u = 0 FileFindFirstFile($a8w) While 1 ReDim $a89[$a3u + 1] $a89[$a3u] = FileFindNextFile($a8w) If @error Then ExitLoop $a3u += 1 WEnd FileClose($a8w) $a3u = 0 FileFindFirstFile($a8x) While 1 ReDim $a8a[$a3u + 1] $a8a[$a3u] = FileFindNextFile($a8x) If @error Then ExitLoop $a3u += 1 WEnd FileClose($a8x) $a3u = 0 FileFindFirstFile($a8y) While 1 ReDim $a8b[$a3u + 1] $a8b[$a3u] = FileFindNextFile($a8y) If @error Then ExitLoop $a3u += 1 WEnd FileClose($a8y) $a3u = 0 FileFindFirstFile($a8z) While 1 ReDim $a8c[$a3u + 1] $a8c[$a3u] = FileFindNextFile($a8z) If @error Then ExitLoop $a3u += 1 WEnd FileClose($a8z) $a3u = 0 FileFindFirstFile($a8_) While 1 ReDim $a8d[$a3u + 1] $a8d[$a3u] = FileFindNextFile($a8_) If @error Then ExitLoop $a3u += 1 WEnd FileClose($a8_) $a3u = 0 FileFindFirstFile($a90) While 1 ReDim $a8e[$a3u + 1] $a8e[$a3u] = FileFindNextFile($a90) If @error Then ExitLoop $a3u += 1 WEnd FileClose($a90) $a3u = 0 FileFindFirstFile($a91) While 1 ReDim $a8f[$a3u + 1] $a8f[$a3u] = FileFindNextFile($a91) If @error Then ExitLoop $a3u += 1 WEnd FileClose($a91) $a3u = 0 FileFindFirstFile($a92) While 1 ReDim $a8g[$a3u + 1] $a8g[$a3u] = FileFindNextFile($a92) If @error Then ExitLoop $a3u += 1 WEnd FileClose($a92) For $a3u = 0 To UBound($a7v) - 1 $a93 = FileRead($a77 & $a7v[$a3u]) If @error = 0 Then If $a93 <> "" Then FileWrite($a6l, $a93) FileDelete($a77 & $a7v[$a3u]) EndIf EndIf Next FileClose($a6l) For $a3u = 0 To UBound($a7w) - 1 $a93 = FileRead($a77 & $a7w[$a3u]) If @error = 0 Then If $a93 <> "" Then FileWrite($a6m, $a93) FileDelete($a77 & $a7w[$a3u]) EndIf EndIf Next FileClose($a6m) For $a3u = 0 To UBound($a7x) - 1 $a93 = FileRead($a77 & $a7x[$a3u]) If @error = 0 Then If $a93 <> "" Then FileWrite($a6n, $a93) FileDelete($a77 & $a7x[$a3u]) EndIf EndIf Next FileClose($a6n) For $a3u = 0 To UBound($a7y) - 1 $a93 = FileRead($a77 & $a7y[$a3u]) If @error = 0 Then If $a93 <> "" Then FileWrite($a6o, $a93) FileDelete($a77 & $a7y[$a3u]) EndIf EndIf Next FileClose($a6o) For $a3u = 0 To UBound($a7_) - 1 $a93 = FileRead($a77 & $a7_[$a3u]) If @error = 0 Then If $a93 <> "" Then FileWrite($a6p, $a93) FileDelete($a77 & $a7_[$a3u]) EndIf EndIf Next FileClose($a6p) For $a3u = 0 To UBound($a7z) - 1 $a93 = FileRead($a77 & $a7z[$a3u]) If @error = 0 Then If $a93 <> "" Then FileWrite($a6q, $a93) FileDelete($a77 & $a7z[$a3u]) EndIf EndIf Next FileClose($a6q) For $a3u = 0 To UBound($a80) - 1 $a93 = FileRead($a77 & $a80[$a3u]) If @error = 0 Then If $a93 <> "" Then FileWrite($a6r, $a93) FileDelete($a77 & $a80[$a3u]) EndIf EndIf Next FileClose($a6r) For $a3u = 0 To UBound($a81) - 1 $a93 = FileRead($a77 & $a81[$a3u]) If @error = 0 Then If $a93 <> "" Then FileWrite($a6s, $a93) FileDelete($a77 & $a81[$a3u]) EndIf EndIf Next FileClose($a6s) For $a3u = 0 To UBound($a82) - 1 $a93 = FileRead($a77 & $a82[$a3u]) If @error = 0 Then If $a93 <> "" Then FileWrite($a6t, $a93) FileDelete($a77 & $a82[$a3u]) EndIf EndIf Next FileClose($a6t) For $a3u = 0 To UBound($a83) - 1 $a93 = FileRead($a77 & $a83[$a3u]) If @error = 0 Then If $a93 <> "" Then FileWrite($a6u, $a93) FileDelete($a77 & $a83[$a3u]) EndIf EndIf Next FileClose($a6u) For $a3u = 0 To UBound($a84) - 1 $a93 = FileRead($a77 & $a84[$a3u]) If @error = 0 Then If $a93 <> "" Then FileWrite($a6v, $a93) FileDelete($a77 & $a84[$a3u]) EndIf EndIf Next FileClose($a6v) For $a3u = 0 To UBound($a85) - 1 $a93 = FileRead($a77 & $a85[$a3u]) If @error = 0 Then If $a93 <> "" Then FileWrite($a6w, $a93) FileDelete($a77 & $a85[$a3u]) EndIf EndIf Next FileClose($a6w) For $a3u = 0 To UBound($a86) - 1 $a93 = FileRead($a77 & $a86[$a3u]) If @error = 0 Then If $a93 <> "" Then FileWrite($a6y, $a93) FileDelete($a77 & $a86[$a3u]) EndIf EndIf Next FileClose($a6y) For $a3u = 0 To UBound($a87) - 1 $a93 = FileRead($a77 & $a87[$a3u]) If @error = 0 Then If $a93 <> "" Then FileWrite($a6x, $a93) FileDelete($a77 & $a87[$a3u]) EndIf EndIf Next FileClose($a6x) For $a3u = 0 To UBound($a88) - 1 $a93 = FileRead($a77 & $a88[$a3u]) If @error = 0 Then If $a93 <> "" Then FileWrite($a6z, $a93) FileDelete($a77 & $a88[$a3u]) EndIf EndIf Next FileClose($a6z) For $a3u = 0 To UBound($a89) - 1 $a93 = FileRead($a77 & $a89[$a3u]) If @error = 0 Then If $a93 <> "" Then FileWrite($a6_, $a93) FileDelete($a77 & $a89[$a3u]) EndIf EndIf Next FileClose($a6_) For $a3u = 0 To UBound($a8a) - 1 $a93 = FileRead($a77 & $a8a[$a3u]) If @error = 0 Then If $a93 <> "" Then FileWrite($a70, $a93) FileDelete($a77 & $a8a[$a3u]) EndIf EndIf Next FileClose($a70) For $a3u = 0 To UBound($a8b) - 1 $a93 = FileRead($a77 & $a8b[$a3u]) If @error = 0 Then If $a93 <> "" Then FileWrite($a71, $a93) FileDelete($a77 & $a8b[$a3u]) EndIf EndIf Next FileClose($a71) For $a3u = 0 To UBound($a8c) - 1 $a93 = FileRead($a77 & $a8c[$a3u]) If @error = 0 Then If $a93 <> "" Then FileWrite($a72, $a93) FileDelete($a77 & $a8c[$a3u]) EndIf EndIf Next FileClose($a72) For $a3u = 0 To UBound($a8d) - 1 $a93 = FileRead($a77 & $a8d[$a3u]) If @error = 0 Then If $a93 <> "" Then FileWrite($a73, $a93) FileDelete($a77 & $a8d[$a3u]) EndIf EndIf Next FileClose($a73) For $a3u = 0 To UBound($a8e) - 1 $a93 = FileRead($a77 & $a8e[$a3u]) If @error = 0 Then If $a93 <> "" Then FileWrite($a74, $a93) FileDelete($a77 & $a8e[$a3u]) EndIf EndIf Next FileClose($a74) For $a3u = 0 To UBound($a8f) - 1 $a93 = FileRead($a77 & $a8f[$a3u]) If @error = 0 Then If $a93 <> "" Then FileWrite($a75, $a93) FileDelete($a77 & $a8f[$a3u]) EndIf EndIf Next FileClose($a75) For $a3u = 0 To UBound($a8g) - 1 $a93 = FileRead($a77 & $a8g[$a3u]) If @error = 0 Then If $a93 <> "" Then FileWrite($a76, $a93) FileDelete($a77 & $a8g[$a3u]) EndIf EndIf Next FileClose($a76) If $a6b = 0 Then ConsoleWrite("done!" & @CRLF) EndFunc Func _15_($a94) Local $a7m = @MDAY & "." & @MON & "." & @YEAR & ";" & @HOUR & ":" & @MIN & ":" & @SEC Local $a95 = $a77 & "Run_" & @YEAR & "-" & @MON & "-" & @MDAY & "_" & @HOUR & @MIN & @SEC Local $a96, $a7n FileClose($a6l) FileClose($a6m) FileClose($a6n) FileClose($a6o) FileClose($a6q) FileClose($a6p) FileClose($a6r) FileClose($a6s) FileClose($a6t) FileClose($a6u) FileClose($a6v) FileClose($a6w) FileClose($a6x) FileClose($a6y) FileClose($a6z) FileClose($a6_) FileClose($a70) FileClose($a71) FileClose($a72) FileClose($a73) FileClose($a74) FileClose($a75) FileClose($a76) If $a6c = 1 Then If $a6b = 0 Then ConsoleWrite("Moving files to folder...") If $a66 = 1 Then $a96 = $a95 & ".zip" $a95 &= "\" FileMove($a77 & "Disks_Partitions.csv", $a95, 8) FileMove($a77 & "Domain_Information.csv", $a95, 8) FileMove($a77 & "Eventlog.csv", $a95, 8) FileMove($a77 & "Eventlog_Errors.csv", $a95, 8) FileMove($a77 & "Harddisk.csv", $a95, 8) FileMove($a77 & "Hardware.csv", $a95, 8) FileMove($a77 & "Local_Shares.csv", $a95, 8) FileMove($a77 & "Local_User_Accounts.csv", $a95, 8) FileMove($a77 & "Members.csv", $a95, 8) FileMove($a77 & "Network.csv", $a95, 8) FileMove($a77 & "Optical_Drive.csv", $a95, 8) FileMove($a77 & "OS.csv", $a95, 8) FileMove($a77 & "Pagefile.csv", $a95, 8) FileMove($a77 & "Patches.csv", $a95, 8) FileMove($a77 & "PnP_Hardware_Problem.csv", $a95, 8) FileMove($a77 & "Printer.csv", $a95, 8) FileMove($a77 & "Role.csv", $a95, 8) FileMove($a77 & "Routing_Table.csv", $a95, 8) FileMove($a77 & "Services.csv", $a95, 8) FileMove($a77 & "Software.csv", $a95, 8) FileMove($a77 & "Timezone.csv", $a95, 8) FileMove($a77 & "Video_Contoller.csv", $a95, 8) If _n_($a77 & "Errors.csv") > 1 Then FileMove($a77 & "Errors.csv", $a95, 8) Else FileDelete($a77 & "Errors.csv") EndIf If $a6b = 0 Then ConsoleWrite("done!" & @CRLF) If $a66 = 1 Then If $a6b = 0 Then ConsoleWrite("Adding files to ZIP archive...") _16_($a95, $a96) $a7n = @error If $a6b = 0 Then ConsoleWrite("done!" & @CRLF) If $a7n = 0 Then If $a6b = 0 Then ConsoleWrite("Deleting folder recursively...") DirRemove($a95, 1) If $a6b = 0 Then ConsoleWrite("done!" & @CRLF) Else If $a6b = 0 Then ConsoleWrite("Zip file was not created properly!" & @CRLF) EndIf EndIf EndIf If $a94 = 1 Then Sleep(250) Exit(1) EndIf EndFunc Func _16_($a97, $a98) Local $a99, $a9a, $a9b, $a9c, $a9d, $a9e, $a9f, $a9g Local $a9h, $a9i, $a9j Local $a9k = _o_($a97, "*.csv", 1) Local $a9l = $a9k[0] $a99 = FileOpen($a98, 26) $a9a = Chr(80) & Chr(75) & Chr(5) & Chr(6) & Chr(0) & Chr(0) & Chr(0) & Chr(0) & Chr(0) & Chr(0) & Chr(0) & Chr(0) & Chr(0) & Chr(0) & Chr(0) & Chr(0) & Chr(0) & Chr(0) & Chr(0) & Chr(0) & Chr(0) & Chr(0) FileWrite($a99, $a9a) FileClose($a99) $a9i = _19_(@AutoItPID) $a9b = ObjCreate("Shell.Application") $a9c = $a9b.NameSpace($a97) $a9e = $a9b.NameSpace($a98) $a9d = $a9b.NameSpace($a98).CopyHere($a9c.Items) While 1 Sleep(1000) $a9j = _19_(@AutoItPID) $a9h = _18_($a9j, $a9i) If $a9h[0] = 0 Then ExitLoop WEnd $a9g = _17_($a98) If $a9l <> $a9g Then Return SetError(1, 0, 0) Else Return SetError(0, 0, 0) EndIf EndFunc Func _17_($a9m) Local $a9n Local $a9o = ObjCreate("Shell.Application") Local $a9p = $a9o.Namespace($a9m).Items Local $a9q = 0 For $a9n In $a9p $a9q += 1 Next Return $a9q EndFunc Func _18_(ByRef $a9r, ByRef $a9s, $a9t = 0) Local $a9u[1] = [0], $a9v = "" If(IsArray($a9r) = 0) Or(UBound($a9r, 0) <> 1) Then Return SetError(1, 1, $a9u) If(IsArray($a9s) = 0) Or(UBound($a9s, 0) <> 1) Then Return SetError(1, 2, $a9u) Local $a9w = Chr(1) & _5_($a9s, Chr(1)) & Chr(1) For $a51 = 0 To UBound($a9r) - 1 If Not StringInStr($a9w, Chr(1) & $a9r[$a51] & Chr(1)) Then $a9v &= $a9r[$a51] & Chr(1) Next If StringLen($a9v) Then $a9v = StringTrimRight($a9v, 1) $a9u = StringSplit($a9v, Chr(1)) EndIf Return $a9u EndFunc Func _19_($a9x) Local $a9y = DllCall("Kernel32.dll", "ptr", "CreateToolhelp32Snapshot", "dword", $a78, "dword", 0) Local $a9z = $a9y[0] Local $a9_[1] Local $aa0 = DllStructCreate($a79) DllStructSetData($aa0, "dwSize", DllStructGetSize($aa0)) $a9y = DllCall("Kernel32.dll", "int", "Thread32First", "ptr", $a9z, "ptr", DllStructGetPtr($aa0)) If DllStructGetData($aa0, "th32OwnerProcessID") = $a9x Then _1a_($a9_, $aa0) Do $a9y = DllCall("Kernel32.dll", "int", "Thread32Next", "ptr", $a9z, "ptr", DllStructGetPtr($aa0)) If Not $a9y[0] Then ExitLoop If DllStructGetData($aa0, "th32OwnerProcessID") = $a9x Then _1a_($a9_, $aa0) Until True And False _4_($a9_, 0) _7_($a9z) Return $a9_ EndFunc Func _1a_(ByRef $a9h, $aa1) Local $aa2 = UBound($a9h) ReDim $a9h[$aa2 + 1] $a9h[$aa2] = DllStructGetData($aa1, "th32ThreadId") EndFunc Func _1b_($aa3) If StringRight($aa3, 2) = ", " Then $aa3 = StringMid($aa3, 1, StringLen($aa3) - 2) If StringRight($aa3, 1) = "," Then $aa3 = StringMid($aa3, 1, StringLen($aa3) - 1) Return $aa3 EndFunc Func _1c_($aa4) If $aa4 = 0 Then Return "False" ElseIf $aa4 = -1 Then Return "True" Else Return "Unknown" EndIf EndFunc Func _1d_(ByRef $aa5) Local $a7g[1], $a3u, $aa6 Local $aa7 = UBound($aa5) For $a3u = 0 To $aa7 - 1 $a7g[0] = $aa5[$a3u] $aa6 = Random($a3u, $aa7 - 1, 1) $aa5[$a3u] = $aa5[$aa6] $aa5[$aa6] = $a7g[0] Next EndFunc Func _1e_($a7q) Local $aa8 Local $aa9 = $a5f.ExecQuery("SELECT CommandLine, ProcessID FROM Win32_Process Where ProcessId='" & $a7q & "'", "WQL", 0x30) If IsObj($aa9) Then For $a6g In $aa9 $aa8 = $a6g.CommandLine Next Return $aa8 EndIf EndFunc Func _1f_($a4j) Local $aaa = 0x00000002 Local $aab = DllCall("Kernel32.dll", "long", "CreateToolhelp32Snapshot", "int", $aaa, "int", 0) If IsArray($aab) = 0 Or $aab[0] = -1 Then Return SetError(1, 0, $a4j) Local $aac = _ DllStructCreate( _ "dword dwsize;" & _ "dword cntUsage;" & _ "dword th32ProcessID;" & _ "uint th32DefaultHeapID;" & _ "dword th32ModuleID;" & _ "dword cntThreads;" & _ "dword th32ParentProcessID;" & _ "long pcPriClassBase;" & _ "dword dwFlags;" & _ "char szExeFile[260]" _ ) DllStructSetData($aac, 1, DllStructGetSize($aac)) Local $aad = DllStructGetPtr($aac) Local $aae = DllCall("Kernel32.dll", "int", "Process32First", "long", $aab[0], "ptr", $aad) If IsArray($aae) = 0 Then Return SetError(2, 0, $a4j) Local $aaf, $aag = 0 If DllStructGetData($aac, "th32ProcessID") = $a4j Then $aag = DllStructGetData($aac, "th32ParentProcessID") DllCall("Kernel32.dll", "int", "CloseHandle", "long", $aab[0]) If $aag Then Return $aag Return $a4j EndIf While @error = 0 $aaf = DllCall("Kernel32.dll", "int", "Process32Next", "long", $aab[0], "ptr", $aad) If DllStructGetData($aac, "th32ProcessID") = $a4j Then $aag = DllStructGetData($aac, "th32ParentProcessID") If $aag Then ExitLoop $aag = $a4j ExitLoop EndIf WEnd DllCall("Kernel32.dll", "int", "CloseHandle", "long", $aab[0]) Return $aag EndFunc Func _1g_($a7q) Local Const $aah = 0x1F0FFF Local $aai = DllCall("kernel32.dll", "hwnd", "OpenProcess", "dword", $aah, "int", False, "dword", $a7q) $aai = $aai[0] Local $aaj, $aak, $aal Local $aaj = DllStructCreate("dword; dword; uint peakmemsize; uint memsize; uint; uint; uint; uint; uint; uint") Local $aak = DllStructGetSize($aaj) Local $aal = DllCall("psapi.dll", "int", "GetProcessMemoryInfo", "hwnd", $aai, "ptr", DllStructGetPtr($aaj), "dword", $aak) Return DllStructGetData($aaj, "memsize") EndFunc Func _1h_($aam) Local $a3u Local $aan = "." $aam = _q_($aam) For $a2c = 1 To StringLen($aam) Step 3 $a3u &= StringMid($aam, $a2c, 3) & $aan Next Return StringMid(_q_($a3u), 2) EndFunc Func _1i_($aao) Local $a7l = "Disks_Partitions" Local $aap, $aaq, $aar, $aas, $aat, $aau, $aav, $aaw, $aax, $a7m Local $aay = $a7l & "_" & $aao Local $a7o = $a7l & "_" & $aao & "_error.log" $a6e = $a6i.ExecQuery("Select Caption, Description, FileSystem, FreeSpace, MediaType, Name, Size, VolumeName from Win32_LogicalDisk Where MediaType = '12'", "WQL", 0x30) If IsObj($a6e) Then For $a6g In $a6e If $a6g.Size > 0 And $a6g.MediaType <> "" Then $aaq = $a6g.Caption $aar = $a6g.FileSystem $aas = Round($a6g.FreeSpace / 1024 ^ 3, 2) $aat = $a6g.MediaType $aau = $a6g.Name $aav = Round($a6g.Size / 1024 ^ 3, 2) $aaw = $a6g.VolumeName $aax = Round(100 * $a6g.FreeSpace / $a6g.Size, 2) If $a5m = 1 Then $aap &= $aao & ";" & $aaq & ";" & $aaw & ";" & $aar & ";" & $aav & " GB;" & $aas & " GB;" & $aax & " %;" & @CRLF Else $aap &= $aao & ";" & $aaq & ";" & $aaw & ";" & $aar & ";" & $aav & ";" & $aas & ";" & $aax & ";" & @CRLF EndIf EndIf Next If $a4z = 1 Then FileWriteLine($a77 & $aay & ".dp", $aap) ElseIf $a4z = 0 Then FileWriteLine($a6l, $aap) EndIf Else $a7m = @MDAY & "." & @MON & "." & @YEAR & ";" & @HOUR & ":" & @MIN & ":" & @SEC If $a4z = 1 Then FileWriteLine($a77 & $a7o, $aao & ";" & $a7m & ";" & $a4r & ".exe" & ";" & $a7l & ";" & ";WMI;Error;No WMI objects found for class Win32_LogicalDisk on system " & $aao & ";0;") ElseIf $a4z = 0 Then FileWriteLine($a76, $aao & ";" & $a7m & ";" & $a4r & ".exe" & ";" & $a7l & ";" & ";WMI;Error;No WMI objects found for class Win32_LogicalDisk on system " & $aao & ";0;") EndIf EndIf EndFunc Func _1j_($aao) Local $a7l = "Domain_Information" Local $aaz = $a7l & "_" & $aao Local $a7o = $a7l & "_" & $aao & "_error.log" Local $a7m, $a9k, $aa_, $ab0, $ab1, $ab2, $ab3, $ab4, $ab5, $ab6 $a6f = $a6i.ExecQuery("SELECT Domain From Win32_ComputerSystem", "WQL", 0x30) If IsObj($a6f) Then For $a6g In $a6f $a9k = $a6g.Domain Next If StringInStr($a9k, ".") > 0 Then $aa_ = StringSplit($a9k, ".") $ab0 = $aa_[1] Else $ab0 = $a9k EndIf If $ab0 <> "" Then $a6e = $a6i.ExecQuery("SELECT Caption, ClientSiteName, DomainControllerName, DomainControllerAddress, Status From Win32_NTDomain Where DomainName='" & $ab0 & "'", "WQL", 0x30) If IsObj($a6e) Then For $a6g In $a6e $ab2 = StringUpper($a6g.Caption) $ab3 = $a6g.ClientSiteName $ab4 = StringMid($a6g.DomainControllerName, 3) $ab5 = StringMid($a6g.DomainControllerAddress, 3) $ab6 = $a6g.Status $ab1 &= $aao & ";" & $ab2 & ";" & $ab3 & ";" & $ab4 & ";" & $ab5 & ";" & $ab6 & ";" & @CRLF Next If $ab1 = "" Then $ab1 = $aao & ";;;;;;" & @CRLF If $a4z = 1 Then FileWriteLine($a77 & $aaz & ".di", $ab1) ElseIf $a4z = 0 Then FileWriteLine($a6m, $ab1) EndIf Else $a7m = @MDAY & "." & @MON & "." & @YEAR & ";" & @HOUR & ":" & @MIN & ":" & @SEC If $a4z = 1 Then FileWriteLine($a77 & $a7o, $aao & ";" & $a7m & ";" & $a4r & ".exe" & ";" & $a7l & ";" & ";WMI;Error;No WMI objects found for class Win32_NTDomain on system " & $aao & ";0;") ElseIf $a4z = 0 Then FileWriteLine($a76, $aao & ";" & $a7m & ";" & $a4r & ".exe" & ";" & $a7l & ";" & ";WMI;Error;No WMI objects found for class Win32_NTDomain on system " & $aao & ";0;") EndIf EndIf Else $ab1 = $aao & ";;;;;;" & @CRLF EndIf Else $a7m = @MDAY & "." & @MON & "." & @YEAR & ";" & @HOUR & ":" & @MIN & ":" & @SEC If $a4z = 1 Then FileWriteLine($a77 & $a7o, $aao & ";" & $a7m & ";" & $a4r & ".exe" & ";" & $a7l & ";" & ";WMI;Error;No WMI objects found for class Win32_ComputerSystem on system " & $aao & ";0;") ElseIf $a4z = 0 Then FileWriteLine($a76, $aao & ";" & $a7m & ";" & $a4r & ".exe" & ";" & $a7l & ";" & ";WMI;Error;No WMI objects found for class Win32_ComputerSystem on system " & $aao & ";0;") EndIf EndIf EndFunc Func _1k_($aao) Local $a7l = "Eventlog" Local $ab7 = $a7l & "_" & $aao Local $a7o = $a7l & "_" & $aao & "_error.log" Local $a7m, $ab8, $ab9, $aba, $abb, $abc, $abd, $abe, $abf, $abg $a6e = $a6i.ExecQuery("SELECT LogfileName, FileSize, CreationDate, MaxFileSize, NumberOfRecords, OverwriteOutDated, OverWritePolicy, Status From Win32_NTEventlogFile", "WQL", 0x30) If IsObj($a6e) Then For $a6g In $a6e $abb = $a6g.LogfileName $aba = Round($a6g.FileSize / 1024 ^ 2, 2) $ab9 = _11_($a6g.CreationDate) $abc = Round($a6g.MaxFileSize / 1024, 2) $abd = $a6g.NumberOfRecords $abe = $a6g.OverwriteOutDated $abf = $a6g.OverWritePolicy $abg = $a6g.Status $ab8 &= $aao & ";" & $abb & ";" & $aba & ";" & $ab9 & ";" & $abc & ";" & $abd & ";" & $abe & ";" & $abf & ";" & $abg & ";" & @CRLF Next If $a4z = 1 Then FileWriteLine($a77 & $ab7 & ".el", $ab8) ElseIf $a4z = 0 Then FileWriteLine($a6n, $ab8) EndIf Else $a7m = @MDAY & "." & @MON & "." & @YEAR & ";" & @HOUR & ":" & @MIN & ":" & @SEC If $a4z = 1 Then FileWriteLine($a77 & $a7o, $aao & ";" & $a7m & ";" & $a4r & ".exe" & ";" & $a7l & ";" & ";WMI;Error;No WMI objects found for class Win32_NTEventlogFile on system " & $aao & ";0;") ElseIf $a4z = 0 Then FileWriteLine($a76, $aao & ";" & $a7m & ";" & $a4r & ".exe" & ";" & $a7l & ";" & ";WMI;Error;No WMI objects found for class Win32_NTEventlogFile on system " & $aao & ";0;") EndIf EndIf EndFunc Func _1l_($aao, $a50 = 14, $a51 = "") Local $a7l = "Eventlog_Errors" Local $a7o, $a7m Local $abh = $a7l & "_" & $aao Local $abi, $abj, $abk, $abl, $abm, $abn, $abo, $abp Local $abq, $abr, $abs, $abt, $a3u $abr = -1 * $a50 $abt = _k_() $abq = _d_('d', $abr, $abt) $abs = StringLeft(StringReplace(StringReplace(StringReplace(_d_('d', $abr, $abt), ":", ""), "/", ""), " ", ""), 8) If $a51 = "" Then $a6e = $a6i.ExecQuery("SELECT Logfile, EventType, EventCode, TimeGenerated, SourceName, InsertionStrings, Message FROM Win32_NTLogEvent WHERE LogFile='System' AND TimeGenerated >= '" & $abs & "' AND EventType=1", "WQL", 0x30) Else $a6e = $a6i.ExecQuery("SELECT Logfile, EventType, EventCode, TimeGenerated, SourceName, InsertionStrings, Message FROM Win32_NTLogEvent WHERE EventCode = '" & $a51 & "' And LogFile='System' AND TimeGenerated >= '" & $abs & "' AND EventType=1", "WQL", 0x30) EndIf If IsObj($a6e) Then For $a6g In $a6e $abj = $a6g.Logfile $abk = $a6g.EventType $abl = $a6g.EventCode $abm = _12_($a6g.TimeGenerated) $abn = $a6g.SourceName $abo = "" For $a3u = 0 To UBound($a6g.InsertionStrings) - 1 If Number($a6g.InsertionStrings($a3u)) = 0 And StringLeft($a6g.InsertionStrings($a3u), 2) <> "%%" And $a6g.InsertionStrings($a3u) <> "" And StringLen($a6g.InsertionStrings($a3u)) > 1 Then $abo &= StringStripWS(StringReplace(StringReplace($a6g.InsertionStrings($a3u), Chr(10), ""), Chr(13), ""), 7) & ", " EndIf Next $abo = _1b_($abo) $abp = StringStripWS(StringReplace(StringReplace($a6g.Message, Chr(10), ""), Chr(13), ""), 7) $abi &= $aao & ";" & $abj & ";" & $abk & ";" & $abl & ";" & $abm & ";" & $abn & ";" & $abo & ";" & $abp & ";" & @CRLF Next If $abi = "" Then $abi = $aao & ";" If $a4z = 1 Then FileWriteLine($a77 & $abh & ".ee", $abi) ElseIf $a4z = 0 Then FileWriteLine($a6o, $abi) EndIf Else $a7m = @MDAY & "." & @MON & "." & @YEAR & ";" & @HOUR & ":" & @MIN & ":" & @SEC If $a4z = 1 Then FileWriteLine($a77 & $a7o, $aao & ";" & $a7m & ";" & $a4r & ".exe" & ";" & $a7l & ";" & ";WMI;Error;No WMI objects found for class Win32_NTLogEvent on system " & $aao & ";0;") ElseIf $a4z = 0 Then FileWriteLine($a76, $aao & ";" & $a7m & ";" & $a4r & ".exe" & ";" & $a7l & ";" & ";WMI;Error;No WMI objects found for class Win32_NTLogEvent on system " & $aao & ";0;") EndIf EndIf EndFunc Func _1m_($aao) Local $a7l = "Harddisk" Local $abu = $a7l & "_" & $aao Local $a7o = $a7l & "_" & $aao & "_error.log" Local $a6e, $abv, $abw, $abx, $aby, $abz, $ab_, $a7m $a6e = $a6i.ExecQuery("Select InterfaceType, Model, MediaType, Partitions, Size from Win32_DiskDrive", "WQL", 0x30) If IsObj($a6e) Then $abv = "" For $a6g In $a6e $aby = $a6g.Model $abw = $a6g.InterfaceType $abx = $a6g.MediaType $abz = $a6g.Partitions $ab_ = Round($a6g.Size / 1024 ^ 3, 2) $abv &= $aao & ";" & $aby & ";" & $abw & ";" & $abx & ";" & $abz & ";" & $ab_ & ";" & @CRLF Next If $a4z = 1 Then FileWriteLine($a77 & $abu & ".hd", $abv) ElseIf $a4z = 0 Then FileWriteLine($a6q, $abv) EndIf Else $a7m = @MDAY & "." & @MON & "." & @YEAR & ";" & @HOUR & ":" & @MIN & ":" & @SEC FileWriteLine($a7o, $aao & ";" & $a7m & ";" & $a4r & ".exe" & ";" & $a7l & ";" & ";WMI;Error;No WMI objects found for class Win32_DiskDrive on system " & $aao & ";0;") EndIf EndFunc Func _1n_($aao) Local $a7l = "Hardware" Local $ac0 = $a7l & "_" & $aao Local $a7o = $a7l & "_" & $aao & "_error.log" Local $ac1, $a5v, $ac2, $a2c, $a2e, $a3u, $a7m Local $ac3, $ac4, $ac5 Local $ac6, $ac7, $ac8 Local $ac9, $aca, $acb, _ $acc, $acd, $ace, $acf, $acg Local $ach, $aci Local $acj, $ack, $acl Local $acm, $acn, $aco, $acp, $acq, $acr $a6e = $a6i.ExecQuery("SELECT Caption from Win32_OperatingSystem", "WQL", 0x30) If IsObj($a6e) Then For $a6g In $a6e $a5v = $a6g.Caption Next Else $a7m = @MDAY & "." & @MON & "." & @YEAR & ";" & @HOUR & ":" & @MIN & ":" & @SEC If $a4z = 1 Then FileWriteLine($a77 & $a7o, $aao & ";" & $a7m & ";" & $a4r & ".exe" & ";" & $a7l & ";" & ";WMI;Error;No WMI objects found for class Win32_OperatingSystem on system " & $aao & ";0;") ElseIf $a4z = 0 Then FileWriteLine($a76, $aao & ";" & $a7m & ";" & $a4r & ".exe" & ";" & $a7l & ";" & ";WMI;Error;No WMI objects found for class Win32_OperatingSystem on system " & $aao & ";0;") EndIf EndIf $ac1 = "" $a6e = $a6i.ExecQuery("SELECT Vendor, Name, IdentifyingNumber from Win32_ComputerSystemProduct", "WQL", 0x30) If IsObj($a6e) Then For $a6g In $a6e $ac3 = StringStripWS($a6g.Vendor, 7) $ac4 = StringStripWS($a6g.Name, 7) $ac5 = StringStripWS($a6g.IdentifyingNumber, 8) Next $ac1 = $ac1 & $ac3 & ";" & $ac4 & ";" & $ac5 & ";" Else $a7m = @MDAY & "." & @MON & "." & @YEAR & ";" & @HOUR & ":" & @MIN & ":" & @SEC If $a4z = 1 Then FileWriteLine($a77 & $a7o, $aao & ";" & $a7m & ";" & $a4r & ".exe" & ";" & $a7l & ";" & ";WMI;Error;No WMI objects found for class Win32_ComputerSystemProduct on system " & $aao & ";0;") ElseIf $a4z = 0 Then FileWriteLine($a76, $aao & ";" & $a7m & ";" & $a4r & ".exe" & ";" & $a7l & ";" & ";WMI;Error;No WMI objects found for class Win32_ComputerSystemProduct on system " & $aao & ";0;") EndIf EndIf Local $aci[26] = [25, 'Other', 'Unknown', 'Desktop', 'Low Profile Desktop', '1 U Server (Pizza Box)', _ 'Mini Tower', 'Tower', 'Portable', 'Laptop', 'Notebook', _ 'Hand Held', 'Laptop in Docking Station', 'All in One', 'Sub Notebook', 'Space-Saving', _ 'Lunch Box', 'Main System Chassis', 'Expansion Chassis', 'SubChassis', 'Bus Expansion Chassis', _ 'Peripheral Chassis', 'Storage Chassis', 'Rack Mount Chassis', 'Sealed-Case PC', 'Blade'] $a6e = $a6i.ExecQuery("SELECT ChassisTypes FROM Win32_SystemEnclosure", "WQL", 0x30) If IsObj($a6e) Then For $a6g In $a6e If $a6g.ChassisTypes(0) < 26 Then $ach = $aci[$a6g.ChassisTypes(0)] Else $ach = $aci[2] EndIf Next $ac1 = $ac1 & $ach & ";" Else $a7m = @MDAY & "." & @MON & "." & @YEAR & ";" & @HOUR & ":" & @MIN & ":" & @SEC If $a4z = 1 Then FileWriteLine($a77 & $a7o, $aao & ";" & $a7m & ";" & $a4r & ".exe" & ";" & $a7l & ";" & ";WMI;Error;No WMI objects found for class Win32_SystemEnclosure on system " & $aao & ";0;") ElseIf $a4z = 0 Then FileWriteLine($a76, $aao & ";" & $a7m & ";" & $a4r & ".exe" & ";" & $a7l & ";" & ";WMI;Error;No WMI objects found for class Win32_SystemEnclosure on system " & $aao & ";0;") EndIf EndIf $a6e = $a6i.ExecQuery("SELECT Manufacturer, Name, SMBIOSBIOSVersion FROM Win32_BIOS", "WQL", 0x30) If IsObj($a6e) Then For $a6g In $a6e $ac7 = $a6g.SMBIOSBIOSVersion $ac6 = StringStripWS($a6g.Name, 7) $ac8 = $a6g.Manufacturer Next $ac1 = $ac1 & $ac6 & ";" & $ac8 & ";" & $ac7 & ";" Else $a7m = @MDAY & "." & @MON & "." & @YEAR & ";" & @HOUR & ":" & @MIN & ":" & @SEC If $a4z = 1 Then FileWriteLine($a77 & $a7o, $aao & ";" & $a7m & ";" & $a4r & ".exe" & ";" & $a7l & ";" & ";WMI;Error;No WMI objects found for class Win32_BIOS on system " & $aao & ";0;") ElseIf $a4z = 0 Then FileWriteLine($a76, $aao & ";" & $a7m & ";" & $a4r & ".exe" & ";" & $a7l & ";" & ";WMI;Error;No WMI objects found for class Win32_BIOS on system " & $aao & ";0;") EndIf EndIf If StringInStr($a5v, "2003") > 0 Or StringInStr($a5v, "2000") > 0 Or StringInStr(StringUpper($a5v), "XP") > 0 Then $a6e = $a6i.ExecQuery("Select Name, Description, Manufacturer, MaxClockSpeed, SocketDesignation from Win32_Processor", "WQL", 0x30) Else $a6e = $a6i.ExecQuery("Select Name, Description, Manufacturer, MaxClockSpeed, SocketDesignation, NumberOfCores, NumberOfLogicalProcessors from Win32_Processor", "WQL", 0x30) EndIf If IsObj($a6e) Then $a2c = 0 $a2e = 0 $acd = "" For $a6g In $a6e $ac9 = StringStripWS($a6g.Name, 7) $aca = $a6g.Description $acc = Round($a6g.MaxClockSpeed, 0) If StringInStr(StringLower($acd), StringLower($a6g.SocketDesignation)) = 0 Then $acd &= $a6g.SocketDesignation & ", " EndIf $a2c = $a2c + 1 Next If StringInStr($a5v, "2003") > 0 Or StringInStr($a5v, "2000") > 0 Or StringInStr(StringUpper($a5v), "XP") > 0 Then $a3u = StringSplit(_1b_($acd), ",") $a2e = UBound($a3u) - 1 Else $a2c = $a6g.NumberOfCores $a2e = $a6g.NumberOfLogicalProcessors / $a2c EndIf If $a2e > $a2c Then $a2e = $a2c $ac1 = $ac1 & $ac9 & ";" & $aca & ";" & $acc & ";" & $a2c & ";" & $a2e & ";" Else $a7m = @MDAY & "." & @MON & "." & @YEAR & ";" & @HOUR & ":" & @MIN & ":" & @SEC If $a4z = 1 Then FileWriteLine($a77 & $a7o, $aao & ";" & $a7m & ";" & $a4r & ".exe" & ";" & $a7l & ";" & ";WMI;Error;No WMI objects found for class Win32_Processor on system " & $aao & ";0;") ElseIf $a4z = 0 Then FileWriteLine($a76, $aao & ";" & $a7m & ";" & $a4r & ".exe" & ";" & $a7l & ";" & ";WMI;Error;No WMI objects found for class Win32_Processor on system " & $aao & ";0;") EndIf EndIf $a6e = $a6i.ExecQuery("Select BankLabel, Capacity from Win32_PhysicalMemory", "WQL", 0x30) If IsObj($a6e) Then $a2c = 0 For $a6g In $a6e $ack += $a6g.Capacity $a2c += 1 Next $ac1 = $ac1 & $ack / 1024 ^ 2 & ";" & $a2c Else $a7m = @MDAY & "." & @MON & "." & @YEAR & ";" & @HOUR & ":" & @MIN & ":" & @SEC If $a4z = 1 Then FileWriteLine($a77 & $a7o, $aao & ";" & $a7m & ";" & $a4r & ".exe" & ";" & $a7l & ";" & ";WMI;Error;No WMI objects found for class Win32_PhysicalMemory on system " & $aao & ";0;") ElseIf $a4z = 0 Then FileWriteLine($a76, $aao & ";" & $a7m & ";" & $a4r & ".exe" & ";" & $a7l & ";" & ";WMI;Error;No WMI objects found for class Win32_PhysicalMemory on system " & $aao & ";0;") EndIf EndIf If $a4z = 1 Then FileWriteLine($a77 & $ac0 & ".hw", $aao & ";" & $ac1) ElseIf $a4z = 0 Then FileWriteLine($a6p, $aao & ";" & $ac1) EndIf EndFunc Func _1o_($aao) If StringUpper($aao) = StringUpper("Localhost") Then $aao = @ComputerName Local $a7l = "Members" Local $acs, $a3u, $act, $acu, $a6f, $acv, $acw, $acx, $a7m Local $acy = $a7l & "_" & $aao Local $a7o = $a7l & "_" & $aao & "_error.log" $act = "Administrators" $a6e = $a6i.ExecQuery("Select SID from Win32_Group WHERE Domain='" & $aao & "'", "WQL", 0x30) If IsObj($a6e) Then For $a6g In $a6e If StringUpper($a6g.SID) = StringUpper("S-1-5-32-544") Then $act = $a6g.Name Next Else $a7m = @MDAY & "." & @MON & "." & @YEAR & ";" & @HOUR & ":" & @MIN & ":" & @SEC If $a4z = 1 Then FileWriteLine($a77 & $a7o, $aao & ";" & $a7m & ";" & $a4r & ".exe" & ";" & $a7l & ";" & ";WMI;Error;No WMI objects found for class Win32_Group on system" & $aao & ";0;") ElseIf $a4z = 0 Then FileWriteLine($a76, $aao & ";" & $a7m & ";" & $a4r & ".exe" & ";" & $a7l & ";" & ";WMI;Error;No WMI objects found for class Win32_Group on system" & $aao & ";0;") EndIf EndIf $acu = "" $acv = "" $a6e = $a6i.ExecQuery("Select * from Win32_GroupUser Where GroupComponent=""Win32_Group.Domain='" & $aao & "',Name='" & $act & "'""", "WQL", 0x30) If IsObj($a6e) Then For $a6g In $a6e If $a6g.PartComponent <> "" Then $a3u = StringSplit($a6g.PartComponent, """") $acu = StringMid($a3u[1], StringInStr($a3u[1], ":Win32_") + 7,(StringInStr($a3u[1], ".") -(StringInStr($a3u[1], ":Win32_") + 7))) $acs &= $aao & ";" & $act & ";" & $acu & ";" & $a3u[2] & "\" & $a3u[4] & ";" & @CRLF EndIf Next If $a4z = 1 Then FileWriteLine($a77 & $acy & ".ms", $acs) ElseIf $a4z = 0 Then FileWriteLine($a6t, $acs) EndIf Else $a7m = @MDAY & "." & @MON & "." & @YEAR & ";" & @HOUR & ":" & @MIN & ":" & @SEC If $a4z = 1 Then FileWriteLine($a77 & $a7o, $aao & ";" & $a7m & ";" & $a4r & ".exe" & ";" & $a7l & ";" & ";WMI;Error;No WMI objects found for class Win32_GroupUser on system " & $aao & ";0;") ElseIf $a4z = 0 Then FileWriteLine($a76, $aao & ";" & $a7m & ";" & $a4r & ".exe" & ";" & $a7l & ";" & ";WMI;Error;No WMI objects found for class Win32_GroupUser on system " & $aao & ";0;") EndIf EndIf EndFunc Func _1p_($aao) Local $a7l = "Local_Shares" Local $acz = $a7l & "_" & $aao Local $a7o = $a7l & "_" & $aao & "_error.log" Local $ac_, $ad0, $ad1, $ad2, $ad3, $ad4, $ad5, $a7m $a6e = $a6i.ExecQuery("SELECT Name, Path, Status, Description FROM Win32_Share", "WQL", 0x30) If IsObj($a6e) Then For $a6g In $a6e $ad0 = $a6g.Name $ad1 = $a6g.Path $ad3 = $a6g.Description $ad2 = $a6g.Status $ad4 = "" $ad5 = "" If $ad3 <> "Remote IPC" And $ad3 <> "Default share" And $ad3 <> "Remote Admin" Then $ac_ &= _1q_($aao, $ad0, $ad1, $ad3, $ad2) Else $ac_ &= $aao & ";" & $ad0 & ";" & $ad1 & ";" & $ad3 & ";" & $ad2 & ";" & $ad4 & ";" & $ad5 & @CRLF EndIf Next If $a4z = 1 Then FileWriteLine($a77 & $acz & ".ls", $ac_) ElseIf $a4z = 0 Then FileWriteLine($a6r, $ac_) EndIf Else $a7m = @MDAY & "." & @MON & "." & @YEAR & ";" & @HOUR & ":" & @MIN & ":" & @SEC If $a4z = 1 Then FileWriteLine($a77 & $a7o, $aao & ";" & $a7m & ";" & $a4r & ".exe" & ";" & $a7l & ";" & ";WMI;Error;No WMI objects found for class Win32_Share on system " & $aao & ";0;") ElseIf $a4z = 0 Then FileWriteLine($a76, $aao & ";" & $a7m & ";" & $a4r & ".exe" & ";" & $a7l & ";" & ";WMI;Error;No WMI objects found for class Win32_Share on system " & $aao & ";0;") EndIf EndIf EndFunc Func _1q_($aao, $ad6, $a77, $ad7, $ad8) Local $a7l = "Share_Permission" Local $ad9 = $a7l & "_" & $aao Local $a7o = $a7l & "_" & $aao & "_error.log" Local $a7m, $ada, $adb, $adc, $add Local $ade = "" Dim $adf $add = ObjGet("winmgmts:{impersonationLevel=impersonate}!//" & $aao & "/root/cimv2:Win32_LogicalShareSecuritySetting.Name='" & $ad6 & "'") If IsObj($add) Then $adb = $add.GetSecurityDescriptor($adf) Local $adg = $adf.DACL For $adh In $adg Select Case $adh.AccessMask = 1179817 And $adh.AceType = 0 $ada = "Read Access" Case $adh.AccessMask = 1245631 And $adh.AceType = 0 $ada = "Change Access" Case $adh.AccessMask = 2032127 And $adh.AceType = 0 $ada = "Full Access" Case $adh.AccessMask = 1179817 And $adh.AceType = 1 $ada = "Read Access Denied" Case $adh.AccessMask = 1245631 And $adh.AceType = 1 $ada = "Change Access Denied" Case $adh.AccessMask = 2032127 And $adh.AceType = 1 $ada = "Full Access Denied" EndSelect $adc = $adh.Trustee $ade &= $aao & ";" & $ad6 & ";" & $a77 & ";" & $ad7 & ";" & $ad8 & ";" & $adc.Name & ";" & $ada & @CRLF Next Else $a7m = @MDAY & "." & @MON & "." & @YEAR & ";" & @HOUR & ":" & @MIN & ":" & @SEC If $a4z = 1 Then FileWriteLine($a77 & $a7o, $aao & ";" & $a7m & ";" & $a4r & ".exe" & ";" & $a7l & ";" & ";WMI;Error;No WMI objects found for class Win32_LogicalShareSecuritySetting on system " & $aao & ";0;") ElseIf $a4z = 0 Then FileWriteLine($a76, $aao & ";" & $a7m & ";" & $a4r & ".exe" & ";" & $a7l & ";" & ";WMI;Error;No WMI objects found for class Win32_LogicalShareSecuritySetting on system " & $aao & ";0;") EndIf $ade &= $aao & ";" & $ad6 & ";" & $a77 & ";" & $ad7 & ";" & $ad8 & ";error reading permissions;error reading permissions;" & @CRLF EndIf Return $ade EndFunc Func _1r_($aao) Local $a7l = "Local_User_Accounts" Local $adi = $a7l & "_" & $aao Local $a7o = $a7l & "_" & $aao & "_error.log" Local $a7m, $adj, $adk, $adl, $adm, $adn, $ado, $adp, $adq, $adr $a6e = $a6i.ExecQuery("SELECT Name, FullName, Description, Disabled, PasswordChangeable, PasswordExpires, PasswordRequired, Status From Win32_UserAccount WHERE LocalAccount=True", "WQL", 0x30) If IsObj($a6e) Then For $a6g In $a6e $adk = $a6g.Name $adl = $a6g.FullName $adm = $a6g.Description $adn = _1c_($a6g.Disabled) $ado = _1c_($a6g.PasswordChangeable) $adp = _1c_($a6g.PasswordExpires) $adq = _1c_($a6g.PasswordRequired) $adr = $a6g.Status $adj &= $aao & ";" & $adk & ";" & $adl & ";" & $adm & ";" & $adn & ";" & $ado & ";" & $adp & ";" & $adq & ";" & $adr & @CRLF Next If $adj = "" Then $adj = $aao & ";;;;;;;;" & @CRLF If $a4z = 1 Then FileWriteLine($a77 & $adi & ".lu", $adj) ElseIf $a4z = 0 Then FileWriteLine($a6s, $adj) EndIf Else $a7m = @MDAY & "." & @MON & "." & @YEAR & ";" & @HOUR & ":" & @MIN & ":" & @SEC If $a4z = 1 Then FileWriteLine($a77 & $a7o, $aao & ";" & $a7m & ";" & $a4r & ".exe" & ";" & $a7l & ";" & ";WMI;Error;No WMI objects found for class Win32_UserAccount on system " & $aao & ";0;") ElseIf $a4z = 0 Then FileWriteLine($a76, $aao & ";" & $a7m & ";" & $a4r & ".exe" & ";" & $a7l & ";" & ";WMI;Error;No WMI objects found for class Win32_UserAccount on system " & $aao & ";0;") EndIf EndIf EndFunc Func _1s_($aao) Local $a7l = "Network" Local $ads = $a7l & "_" & $aao Local $a7o = $a7l & "_" & $aao & "_error.log" Local $adt, $adu, $a2e, $a9k, $a7m Local $adv, $adw, $adx, $ady, $adz, $ad_, $ae0, $ae1, $ae2, $ae3, $ae4 $adu = "" $a6e = $a6i.ExecQuery("SELECT DHCPServer, Description, WINSPrimaryServer, WINSSecondaryServer, MACAddress, DefaultIPGateway, IPAddress, IPSubnet, DNSServerSearchOrder, DNSDomainSuffixSearchOrder FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled = True", "WQL", 0x30) $adt = $a6i.ExecQuery("SELECT MACAddress, NetConnectionID FROM Win32_NetworkAdapter") If IsObj($a6e) Then $adu = "" For $a6g In $a6e $adw = "" $adv = "" $ae4 = "" $ae0 = "" $ae1 = "" $adz = "" $adx = "" $ad_ = "" $ady = "" $ae2 = "" $ae3 = "" $adv = $a6g.Description If IsObj($adt) Then For $ae5 In $adt If $a6g.MACAddress = $ae5.MACAddress And $ae5.NetConnectionID <> "" Then $adw = $ae5.NetConnectionID EndIf Next Else $a7m = @MDAY & "." & @MON & "." & @YEAR & ";" & @HOUR & ":" & @MIN & ":" & @SEC If $a4z = 1 Then FileWriteLine($a77 & $a7o, $aao & ";" & $a7m & ";" & $a4r & ".exe" & ";" & $a7l & ";" & ";WMI;Error;No WMI objects found for class Win32_NetworkAdapter on system " & $aao & ";0;") ElseIf $a4z = 0 Then FileWriteLine($a76, $aao & ";" & $a7m & ";" & $a4r & ".exe" & ";" & $a7l & ";" & ";WMI;Error;No WMI objects found for class Win32_NetworkAdapter on system " & $aao & ";0;") EndIf EndIf $ae2 = $a6g.WINSPrimaryServer $ae3 = $a6g.WINSSecondaryServer $ad_ = $a6g.MACAddress For $a3u = 0 To UBound($a6g.IPAddress) - 1 $adx &= $a6g.IPAddress($a3u) & ", " Next $adx = _1b_($adx) For $a3u = 0 To UBound($a6g.IPSubnet) - 1 $ady &= $a6g.IPSubnet($a3u) & ", " Next $ady = _1b_($ady) For $a3u = 0 To UBound($a6g.DefaultIPGateway) - 1 $adz &= $a6g.DefaultIPGateway($a3u) & ", " Next $adz = _1b_($adz) For $a3u = 0 To UBound($a6g.DNSServerSearchOrder) - 1 $ae0 &= $a6g.DNSServerSearchOrder($a3u) & ", " Next $ae0 = _1b_($ae0) For $a3u = 0 To UBound($a6g.DNSDomainSuffixSearchOrder) - 1 $ae1 &= $a6g.DNSDomainSuffixSearchOrder($a3u) & ", " Next $ae1 = _1b_($ae1) If $a6g.DHCPServer <> "255.255.255.255" Then $ae4 = $a6g.DHCPServer $adu &= $aao & ";" & $adw & ";" & $adv & ";" & $adx & ";" & $ady & ";" & $adz & ";" & $ad_ & ";" & $ae0 & ";" & $ae1 & ";" & $ae2 & ";" & $ae3 & ";" & $ae4 & @CRLF Next If $a4z = 1 Then FileWriteLine($a77 & $ads & ".nw", $adu) ElseIf $a4z = 0 Then FileWriteLine($a6u, $adu) EndIf Else $a7m = @MDAY & "." & @MON & "." & @YEAR & ";" & @HOUR & ":" & @MIN & ":" & @SEC If $a4z = 1 Then FileWriteLine($a77 & $a7o, $aao & ";" & $a7m & ";" & $a4r & ".exe" & ";" & $a7l & ";" & ";WMI;Error;No WMI objects found for class Win32_NetworkAdapterConfiguration on system " & $aao & ";0;") ElseIf $a4z = 0 Then FileWriteLine($a76, $aao & ";" & $a7m & ";" & $a4r & ".exe" & ";" & $a7l & ";" & ";WMI;Error;No WMI objects found for class Win32_NetworkAdapterConfiguration on system " & $aao & ";0;") EndIf EndIf EndFunc Func _1t_($aao) Local $a7l = "Optical_Drive" Local $ae6 = $a7l & "_" & $aao Local $a7o = $a7l & "_" & $aao & "_error.log" Local $a7m, $a3u, $ae7, $ae8, $ae9, $aea, $aeb, $aec, $aed $a6e = $a6i.ExecQuery("SELECT Name, Drive, Manufacturer, MediaType, Capabilities, CapabilityDescriptions, ConfigManagerErrorCode From Win32_CDROMDrive", "WQL", 0x30) If IsObj($a6e) Then For $a6g In $a6e $aec = "" $ae8 = StringStripWS($a6g.Name, 7) $ae9 = $a6g.Drive $aea = $a6g.Manufacturer If StringLeft($aea, 1) = "(" And StringRight($aea, 1) = ")" Then $aea = StringMid($aea, 2, StringLen($aea) - 2) $aeb = $a6g.MediaType For $a3u = 0 To UBound($a6g.CapabilityDescriptions) - 1 $aec &= $a6g.CapabilityDescriptions($a3u) & "," Next If $aec <> "" Then $aec = _1b_($aec) Else For $a3u = 0 To UBound($a6g.Capabilities) - 1 $aec &= _1u_($a6g.Capabilities($a3u)) & ", " Next If $aec <> "" Then $aec = _1b_($aec) EndIf $aed = _1v_($a6g.ConfigManagerErrorCode) $ae7 &= $aao & ";" & $ae8 & ";" & $ae9 & ";" & $aea & ";" & $aeb & ";" & $aec & ";" & $aed & @CRLF Next If $ae7 = "" Then $ae7 = $aao & ";;;;;;" If $a4z = 1 Then FileWriteLine($a77 & $ae6 & ".od", $ae7) ElseIf $a4z = 0 Then FileWriteLine($a6v, $ae7) EndIf Else $a7m = @MDAY & "." & @MON & "." & @YEAR & ";" & @HOUR & ":" & @MIN & ":" & @SEC If $a4z = 1 Then FileWriteLine($a77 & $a7o, $aao & ";" & $a7m & ";" & $a4r & ".exe" & ";" & $a7l & ";" & ";WMI;Error;No WMI objects found for class Win32_CDROMDrive on system " & $aao & ";0;") ElseIf $a4z = 0 Then FileWriteLine($a76, $aao & ";" & $a7m & ";" & $a4r & ".exe" & ";" & $a7l & ";" & ";WMI;Error;No WMI objects found for class Win32_CDROMDrive on system " & $aao & ";0;") EndIf EndIf EndFunc Func _1u_($aee) Dim $aef[12] Local $aeg $aef[0] = "Unknown" $aef[1] = "Other" $aef[2] = "Sequential Access" $aef[3] = "Random Access" $aef[4] = "Supports Writing" $aef[5] = "Encryption" $aef[6] = "Compression" $aef[7] = "Supports Removable Media" $aef[8] = "Manual Cleaning" $aef[9] = "Automatic Cleaning" $aef[10] = "Supports Dual-Sided Media" $aef[11] = "Predismount Eject Not Required" If $aee >= 0 And $aee < 12 Then $aeg = $aef[$aee] If $aeg <> "" Then Return $aeg Else Return $aef[0] EndIf EndFunc Func _1v_($aee) Local $aeh Dim $aei[32] $aei[0] = "Device is working properly." $aei[1] = "Device is not configured correctly." $aei[2] = "Windows cannot load the driver for this device." $aei[3] = "Driver for this device might be corrupted, or the system may be low on memory or other resources." $aei[4] = "Device is not working properly. One of its drivers or the registry might be corrupted." $aei[5] = "Driver for the device requires a resource that Windows cannot manage." $aei[6] = "Boot configuration for the device conflicts with other devices." $aei[7] = "Cannot filter." $aei[8] = "Driver loader for the device is missing." $aei[9] = "Device is not working properly. The controlling firmware is incorrectly reporting the resources for the device." $aei[10] = "Device cannot start." $aei[11] = "Device failed." $aei[12] = "Device cannot find enough free resources to use." $aei[13] = "Windows cannot verify the device's resources." $aei[14] = "Device cannot work properly until the computer is restarted." $aei[15] = "Device is not working properly due to a possible re-enumeration problem." $aei[16] = "Windows cannot identify all of the resources that the device uses." $aei[17] = "Device is requesting an unknown resource type." $aei[18] = "Device drivers must be reinstalled." $aei[19] = "Failure using the VxD loader." $aei[20] = "Registry might be corrupted." $aei[21] = "System failure. If changing the device driver is ineffective, see the hardware documentation. Windows is removing the device." $aei[22] = "Device is disabled." $aei[23] = "System failure. If changing the device driver is ineffective, see the hardware documentation." $aei[24] = "Device is not present, not working properly, or does not have all of its drivers installed." $aei[25] = "Windows is still setting up the device." $aei[26] = "Windows is still setting up the device." $aei[27] = "Device does not have valid log configuration." $aei[28] = "Device drivers are not installed." $aei[29] = "Device is disabled. The device firmware did not provide the required resources." $aei[30] = "Device is using an IRQ resource that another device is using." $aei[31] = "Device is not working properly. Windows cannot load the required device drivers." If $aee >= 0 And $aee < 32 Then $aeh = $aei[$aee] If $aeh <> "" Then Return $aeh Else Return "Unknown error code" EndIf EndFunc Func _1w_($aao) Local $ac2, $aej Local $a7l = "OS" Local $aek, $ael, $aem, $aen, $aeo, $aep, $aeq Local $aer, $aes, $a6h, $aet, $aeu, $aev, $aew Local $a7o, $a7m Local $aex = $a7l & "_" & $aao Local $a7o = $a7l & "_" & $aao & "_error.log" $aer = 0x80000002 $aes = "SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\" $a6h = ObjGet("winmgmts:{impersonationLevel=impersonate}!\\" & $aao & "\root\default:StdRegProv") If IsObj($a6h) Then $aet = "" $a6h.GetStringValue($aer, $aes, "GoldDiskVersion", $aet) Else $a7m = @MDAY & "." & @MON & "." & @YEAR & ";" & @HOUR & ":" & @MIN & ":" & @SEC If $a4z = 1 Then FileWriteLine($a77 & $a7o, $aao & ";" & $a7m & ";" & $a4r & ".exe" & ";" & $a7l & ";" & ";WMI;Error;No WMI objects found for class StdRegProv on system " & $aao & ";0;") Else FileWriteLine($a76, $aao & ";" & $a7m & ";" & $a4r & ".exe" & ";" & $a7l & ";" & ";WMI;Error;No WMI objects found for class StdRegProv on system " & $aao & ";0;") EndIf EndIf $a6e = $a6i.ExecQuery("SELECT Name, CSDVersion, InstallDate, OSLanguage, Version From Win32_OperatingSystem", "WQL", 0x30) $a6f = $a6i.ExecQuery("SELECT AddressWidth From Win32_Processor", "WQL", 0x30) If IsObj($a6f) Then For $a6g In $a6f $aen = $a6g.AddressWidth Next Else $a7m = @MDAY & "." & @MON & "." & @YEAR & ";" & @HOUR & ":" & @MIN & ":" & @SEC If $a4z = 1 Then FileWriteLine($a77 & $a7o, $aao & ";" & $a7m & ";" & $a4r & ".exe" & ";" & $a7l & ";" & ";WMI;Error;No WMI objects found for class Win32_Processor on system " & $aao & ";0;") ElseIf $a4z = 0 Then FileWriteLine($a76, $aao & ";" & $a7m & ";" & $a4r & ".exe" & ";" & $a7l & ";" & ";WMI;Error;No WMI objects found for class Win32_Processor on system " & $aao & ";0;") EndIf EndIf If IsObj($a6e) Then For $a6g In $a6e $ac2 = StringSplit($a6g.Name, "|", 1) $aek = StringStripWS($ac2[1], 7) $ael = $a6g.CSDVersion $aeq = $a6g.Version $aem = _11_($a6g.InstallDate) $aep = _1x_($a6g.OSLanguage) & " (" & $a6g.OSLanguage & ")" Next $aej = $aao & ";" & $aek & ";" & $ael & ";" & $aeq & ";" & $aen & ";" & $aem & ";" & $aep & ";" & $aet & ";" If $a4z = 1 Then FileWriteLine($a77 & $aex & ".os", $aej & @CRLF) ElseIf $a4z = 0 Then FileWriteLine($a6w, $aej & @CRLF) EndIf Else $a7m = @MDAY & "." & @MON & "." & @YEAR & ";" & @HOUR & ":" & @MIN & ":" & @SEC If $a4z = 1 Then FileWriteLine($a77 & $a7o, $aao & ";" & $a7m & ";" & $a4r & ".exe" & ";" & $a7l & ";" & ";WMI;Error;No WMI objects found for class Win32_OperatingSystem on system " & $aao & ";0;") ElseIf $a4z = 0 Then FileWriteLine($a76, $aao & ";" & $a7m & ";" & $a4r & ".exe" & ";" & $a7l & ";" & ";WMI;Error;No WMI objects found for class Win32_OperatingSystem on system " & $aao & ";0;") EndIf EndIf EndFunc Func _1x_($aee) Dim $aey[20491] Local $aez $aey[1] = "Arabic" $aey[4] = "Chinese (Simplified)– China" $aey[9] = "English" $aey[1025] = "Arabic – Saudi Arabia" $aey[1026] = "Bulgarian" $aey[1027] = "Catalan" $aey[1028] = "Chinese (Traditional) – Taiwan" $aey[1029] = "Czech" $aey[1030] = "Danish" $aey[1031] = "German – Germany" $aey[1032] = "Greek" $aey[1033] = "English – United States" $aey[1034] = "Spanish – Traditional Sort" $aey[1035] = "Finnish" $aey[1036] = "French – France" $aey[1037] = "Hebrew" $aey[1038] = "Hungarian" $aey[1039] = "Icelandic" $aey[1040] = "Italian – Italy" $aey[1041] = "Japanese" $aey[1042] = "Korean" $aey[1043] = "Dutch – Netherlands" $aey[1044] = "Norwegian – Bokmal" $aey[1045] = "Polish" $aey[1046] = "Portuguese – Brazil" $aey[1047] = "Rhaeto-Romanic" $aey[1048] = "Romanian" $aey[1049] = "Russian" $aey[1050] = "Croatian" $aey[1051] = "Slovak" $aey[1052] = "Albanian" $aey[1053] = "Swedish" $aey[1054] = "Thai" $aey[1055] = "Turkish" $aey[1056] = "Urdu" $aey[1057] = "Indonesian" $aey[1058] = "Ukrainian" $aey[1059] = "Belarusian" $aey[1060] = "Slovenian" $aey[1061] = "Estonian" $aey[1062] = "Latvian" $aey[1063] = "Lithuanian" $aey[1065] = "Persian" $aey[1066] = "Vietnamese" $aey[1069] = "Basque" $aey[1070] = "Serbian" $aey[1071] = "Macedonian (FYROM)" $aey[1072] = "Sutu" $aey[1073] = "Tsonga" $aey[1074] = "Tswana" $aey[1076] = "Xhosa" $aey[1077] = "Zulu" $aey[1078] = "Afrikaans" $aey[1080] = "Faeroese" $aey[1081] = "Hindi" $aey[1082] = "Maltese" $aey[1084] = "Gaelic" $aey[1085] = "Yiddish" $aey[1086] = "Malay – Malaysia" $aey[2049] = "Arabic – Iraq" $aey[2052] = "Chinese (Simplified) – PRC" $aey[2055] = "German – Switzerland" $aey[2057] = "English – United Kingdom" $aey[2058] = "Spanish – Mexico" $aey[2060] = "French – Belgium" $aey[2064] = "Italian – Switzerland" $aey[2067] = "Dutch – Belgium" $aey[2068] = "Norwegian – Nynorsk" $aey[2070] = "Portuguese – Portugal" $aey[2072] = "Romanian – Moldova" $aey[2073] = "Russian – Moldova" $aey[2074] = "Serbian – Latin" $aey[2077] = "Swedish – Finland" $aey[3073] = "Arabic – Egypt" $aey[3076] = "Chinese (Traditional) – Hong Kong SAR" $aey[3079] = "German – Austria" $aey[3081] = "English – Australia" $aey[3082] = "Spanish – International Sort" $aey[3084] = "French – Canada" $aey[3098] = "Serbian – Cyrillic" $aey[4097] = "Arabic – Libya" $aey[4100] = "Chinese (Simplified) – Singapore" $aey[4103] = "German – Luxembourg" $aey[4105] = "English – Canada" $aey[4106] = "Spanish – Guatemala" $aey[4108] = "French – Switzerland" $aey[5121] = "Arabic – Algeria" $aey[5127] = "German – Liechtenstein" $aey[5129] = "English – New Zealand" $aey[5130] = "Spanish – Costa Rica" $aey[5132] = "French – Luxembourg" $aey[6145] = "Arabic – Morocco" $aey[6153] = "English – Ireland" $aey[6154] = "Spanish – Panama" $aey[7169] = "Arabic – Tunisia" $aey[7177] = "English – South Africa" $aey[7178] = "Spanish – Dominican Republic" $aey[8193] = "Arabic – Oman" $aey[8201] = "English – Jamaica" $aey[8202] = "Spanish – Venezuela" $aey[9217] = "Arabic – Yemen" $aey[9226] = "Spanish – Colombia" $aey[10241] = "Arabic – Syria" $aey[10249] = "English – Belize" $aey[10250] = "Spanish – Peru" $aey[11265] = "Arabic – Jordan" $aey[11273] = "English – Trinidad" $aey[11274] = "Spanish – Argentina" $aey[12289] = "Arabic – Lebanon" $aey[12298] = "Spanish – Ecuador" $aey[13313] = "Arabic – Kuwait" $aey[13322] = "Spanish – Chile" $aey[14337] = "Arabic – U.A.E." $aey[14346] = "Spanish – Uruguay" $aey[15361] = "Arabic – Bahrain" $aey[15370] = "Spanish – Paraguay" $aey[16385] = "Arabic – Qatar" $aey[16394] = "Spanish – Bolivia" $aey[17418] = "Spanish – El Salvador" $aey[18442] = "Spanish – Honduras" $aey[19466] = "Spanish – Nicaragua" $aey[20490] = "Spanish – Puerto Rico" If $aee > 0 And $aee < 20491 Then $aez = $aey[$aee] If $aez <> "" Then Return $aey[$aee] Else Return "Unknown" EndIf EndFunc Func _1y_($aao) Local $a7l = "Pagefile" Local $a7o, $a7m Local $ae_ = $a7l & "_" & $aao Local $af0, $af1, $af2, $af3, $af4, $af5, $af6, $af7, $af8 $a6e = $a6i.ExecQuery("SELECT Caption FROM Win32_OperatingSystem", "WQL", 0x30) If IsObj($a6e) Then For $a6g In $a6e $af7 = $a6g.Caption Next Else $a7m = @MDAY & "." & @MON & "." & @YEAR & ";" & @HOUR & ":" & @MIN & ":" & @SEC If $a4z = 1 Then FileWriteLine($a77 & $a7o, $aao & ";" & $a7m & ";" & $a4r & ".exe" & ";" & $a7l & ";" & ";WMI;Error;No WMI objects found for class Win32_OperatingSystem on system " & $aao & ";0;") ElseIf $a4z = 0 Then FileWriteLine($a76, $aao & ";" & $a7m & ";" & $a4r & ".exe" & ";" & $a7l & ";" & ";WMI;Error;No WMI objects found for class Win32_OperatingSystem on system " & $aao & ";0;") EndIf EndIf If StringInStr($af7, "2008") > 0 Then $a6e = $a6i.ExecQuery("SELECT Name, AllocatedBaseSize, InstallDate FROM Win32_PageFileUsage", "WQL", 0x30) If IsObj($a6e) Then $af3 = "" $af4 = "" $af5 = "" For $a6g In $a6e $af1 = $a6g.Name $af2 = $a6g.AllocatedBaseSize $af6 = _11_($a6g.InstallDate) $af0 &= $aao & ";" & $af1 & ";" & $af2 & ";" & $af3 & ";" & $af4 & ";" & $af6 & ";" & $af5 & ";" & @CRLF Next Else $a7m = @MDAY & "." & @MON & "." & @YEAR & ";" & @HOUR & ":" & @MIN & ":" & @SEC If $a4z = 1 Then FileWriteLine($a77 & $a7o, $aao & ";" & $a7m & ";" & $a4r & ".exe" & ";" & $a7l & ";" & ";WMI;Error;No WMI objects found for class Win32_PageFileUsage on system " & $aao & ";0;") ElseIf $a4z = 0 Then FileWriteLine($a76, $aao & ";" & $a7m & ";" & $a4r & ".exe" & ";" & $a7l & ";" & ";WMI;Error;No WMI objects found for class Win32_PageFileUsage on system " & $aao & ";0;") EndIf EndIf Else $a6e = $a6i.ExecQuery("SELECT Description, FileSize, InitialSize, MaximumSize, Hidden, Status, CreationDate FROM Win32_PageFile", "WQL", 0x30) If IsObj($a6e) Then For $a6g In $a6e $af1 = $a6g.Description If $a6g.FileSize <> "" Then $af2 = Round($a6g.FileSize / 1024 ^ 2, 0) $af3 = $a6g.InitialSize $af4 = $a6g.MaximumSize $af6 = _11_($a6g.CreationDate) $af5 = $a6g.Status $af0 &= $aao & ";" & $af1 & ";" & $af2 & ";" & $af3 & ";" & $af4 & ";" & $af6 & ";" & $af5 & ";" & @CRLF Next Else $a7m = @MDAY & "." & @MON & "." & @YEAR & ";" & @HOUR & ":" & @MIN & ":" & @SEC If $a4z = 1 Then FileWriteLine($a77 & $a7o, $aao & ";" & $a7m & ";" & $a4r & ".exe" & ";" & $a7l & ";" & ";WMI;Error;No WMI objects found for class Win32_PageFile on system " & $aao & ";0;") ElseIf $a4z = 0 Then FileWriteLine($a76, $aao & ";" & $a7m & ";" & $a4r & ".exe" & ";" & $a7l & ";" & ";WMI;Error;No WMI objects found for class Win32_PageFile on system " & $aao & ";0;") EndIf EndIf EndIf If $af0 = "" Then $af0 = $aao & ";" If $a4z = 1 Then FileWriteLine($a77 & $ae_ & ".pf", $af0) ElseIf $a4z = 0 Then FileWriteLine($a6y, $af0) EndIf EndFunc Func _1z_($aao) Local $a7l = "Patches" Local $af9, $afa, $afb, $afc, $afd, $a9k Local $afe, $a7o, $a7m Local $aff = $a6i.ExecQuery("SELECT Caption From Win32_OperatingSystem", "WQL", 0x30) Local $a5v, $afg, $afh, $afi, $afj, $afk For $a6g In $aff $a5v = $a6g.Caption Next $afe = $a7l & "_" & $aao $a7o = $a7l & "_" & $aao & "_error.log" $af9 = "" $a6e = $a6i.ExecQuery("Select Description, HotFixID, InstalledBy, InstalledOn from Win32_QuickFixEngineering Where HotfixID < '{' And HotfixID <> 'Q147222' And HotfixID <> 'File 1'", "WQL", 0x30) If IsObj($a6e) Then For $a6g In $a6e $afg = $a6g.InstalledOn If StringInStr($a5v, "Vista") > 0 Or StringInStr($a5v, "2008") > 0 Then $afh = Dec(StringMid($afg, 1, 8)) $afi = Dec(StringMid($afg, 9)) $afj = $afh * 2 ^ 32 + $afi $afk = Floor($afj / 10000000) $afg = _d_("S", $afk, "1601/01/01 00:00:00") EndIf $af9 &= StringReplace(StringReplace(StringReplace($aao & ";" & $a6g.HotFixID & ";" & $afg & ";" & $a6g.InstalledBy & ";" & $a6g.Description & ";", Chr(13), ""), "\n", ""), Chr(0x0a), "") & @CRLF Next If $a4z = 1 Then FileWriteLine($a77 & $afe & ".pc", $af9) ElseIf $a4z = 0 Then FileWriteLine($a6x, $af9) EndIf Else $a7m = @MDAY & "." & @MON & "." & @YEAR & ";" & @HOUR & ":" & @MIN & ":" & @SEC If $a4z = 1 Then FileWriteLine($a77 & $a7o, $aao & ";" & $a7m & ";" & $a4r & ".exe" & ";" & $a7l & ";" & ";WMI;Error;No WMI objects found for class Win32_QuickFixEngineering on system " & $aao & ";0;") ElseIf $a4z = 0 Then FileWriteLine($a76, $aao & ";" & $a7m & ";" & $a4r & ".exe" & ";" & $a7l & ";" & ";WMI;Error;No WMI objects found for class Win32_QuickFixEngineering on system " & $aao & ";0;") EndIf EndIf EndFunc Func _1__($aao) Local $a7l = "PnP_Hardware_Problem" Local $afl = $a7l & "_" & $aao Local $a7o = $a7l & "_" & $aao & "_error.log" Local $a3u, $a7m, $afm, $afn, $afo, $afp, $afq, $afr $a6e = $a6i.ExecQuery("SELECT Description, Name, Manufacturer, DeviceID, ConfigManagerErrorCode FROM Win32_PnPEntity WHERE ConfigManagerErrorCode <> 0", "WQL", 0x30) If IsObj($a6e) Then For $a6g In $a6e $afn = $a6g.Description $afo = $a6g.Name $afp = $a6g.Manufacturer $afq = $a6g.DeviceID $afr = _20_($a6g.ConfigManagerErrorCode) $afm &= $aao & ";" & $afn & ";" & $afo & ";" & $afp & ";" & $afq & ";" & $afr & @CRLF Next If $afm = "" Then $afm = $aao & ";" If $a4z = 1 Then FileWriteLine($a77 & $afl & ".ph", $afm) ElseIf $a4z = 0 Then FileWriteLine($a6z, $afm) EndIf Else $a7m = @MDAY & "." & @MON & "." & @YEAR & ";" & @HOUR & ":" & @MIN & ":" & @SEC If $a4z = 1 Then FileWriteLine($a77 & $a7o, $aao & ";" & $a7m & ";" & $a4r & ".exe" & ";" & $a7l & ";" & ";WMI;Error;No WMI objects found for class Win32_PnPEntity on system " & $aao & ";0;") ElseIf $a4z = 0 Then FileWriteLine($a76, $aao & ";" & $a7m & ";" & $a4r & ".exe" & ";" & $a7l & ";" & ";WMI;Error;No WMI objects found for class Win32_PnPEntity on system " & $aao & ";0;") EndIf EndIf EndFunc Func _20_($aee) Local $aeh Dim $aei[32] $aei[0] = "Device is working properly." $aei[1] = "Device is not configured correctly." $aei[2] = "Windows cannot load the driver for this device." $aei[3] = "Driver for this device might be corrupted, or the system may be low on memory or other resources." $aei[4] = "Device is not working properly. One of its drivers or the registry might be corrupted." $aei[5] = "Driver for the device requires a resource that Windows cannot manage." $aei[6] = "Boot configuration for the device conflicts with other devices." $aei[7] = "Cannot filter." $aei[8] = "Driver loader for the device is missing." $aei[9] = "Device is not working properly. The controlling firmware is incorrectly reporting the resources for the device." $aei[10] = "Device cannot start." $aei[11] = "Device failed." $aei[12] = "Device cannot find enough free resources to use." $aei[13] = "Windows cannot verify the device's resources." $aei[14] = "Device cannot work properly until the computer is restarted." $aei[15] = "Device is not working properly due to a possible re-enumeration problem." $aei[16] = "Windows cannot identify all of the resources that the device uses." $aei[17] = "Device is requesting an unknown resource type." $aei[18] = "Device drivers must be reinstalled." $aei[19] = "Failure using the VxD loader." $aei[20] = "Registry might be corrupted." $aei[21] = "System failure. If changing the device driver is ineffective, see the hardware documentation. Windows is removing the device." $aei[22] = "Device is disabled." $aei[23] = "System failure. If changing the device driver is ineffective, see the hardware documentation." $aei[24] = "Device is not present, not working properly, or does not have all of its drivers installed." $aei[25] = "Windows is still setting up the device." $aei[26] = "Windows is still setting up the device." $aei[27] = "Device does not have valid log configuration." $aei[28] = "Device drivers are not installed." $aei[29] = "Device is disabled. The device firmware did not provide the required resources." $aei[30] = "Device is using an IRQ resource that another device is using." $aei[31] = "Device is not working properly. Windows cannot load the required device drivers." If $aee >= 0 And $aee < 32 Then $aeh = $aei[$aee] If $aeh <> "" Then Return $aeh Else Return "Unknown error" EndIf EndFunc Func _21_($aao) Local $a7l = "Printer" Local $afs = $a7l & "_" & $aao Local $a7o = $a7l & "_" & $aao & "_error.log" Local $a3u, $a7m, $aft, $afu, $afv, $afw, $afx, $afy, $afz, $af_, $ag0 $a6e = $a6i.ExecQuery("SELECT Capabilities, CapabilityDescriptions, DriverName, Name, Location, ServerName, ShareName, PortName, PrinterStatus FROM Win32_Printer", "WQL", 0x30) If IsObj($a6e) Then For $a6g In $a6e $afw = "" $afu = $a6g.DriverName $afv = $a6g.Name For $a3u = 0 To UBound($a6g.CapabilityDescriptions) - 1 $afw &= $a6g.CapabilityDescriptions($a3u) & ", " Next If $afw <> "" Then $afw = _1b_($afw) $afx = $a6g.ServerName $afy = $a6g.ShareName $afz = $a6g.PortName $af_ = $a6g.Location $ag0 = _22_($a6g.PrinterStatus) $aft &= $aao & ";" & $afu & ";" & $afv & ";" & $afw & ";" & $afx & ";" & $afy & ";" & $afz & ";" & $af_ & ";" & $ag0 & @CRLF Next If $aft = "" Then $aft = $aao & ";" If $a4z = 1 Then FileWriteLine($a77 & $afs & ".pt", $aft) ElseIf $a4z = 0 Then FileWriteLine($a6_, $aft) EndIf Else $a7m = @MDAY & "." & @MON & "." & @YEAR & ";" & @HOUR & ":" & @MIN & ":" & @SEC If $a4z = 1 Then FileWriteLine($a77 & $a7o, $aao & ";" & $a7m & ";" & $a4r & ".exe" & ";" & $a7l & ";" & ";WMI;Error;No WMI objects found for class Win32_Printer on system " & $aao & ";0;") ElseIf $a4z = 0 Then FileWriteLine($a76, $aao & ";" & $a7m & ";" & $a4r & ".exe" & ";" & $a7l & ";" & ";WMI;Error;No WMI objects found for class Win32_Printer on system " & $aao & ";0;") EndIf EndIf EndFunc Func _22_($aee) Dim $ag1[8] Local $ad8 = "" $ag1[0] = "Unknown" $ag1[1] = "Other" $ag1[2] = "Unknown" $ag1[3] = "Idle" $ag1[4] = "Printing" $ag1[5] = "Warming Up" $ag1[6] = "Stopped printing" $ag1[7] = "Offline" If $aee >= 0 And $aee < 8 Then $ad8 = $ag1[$aee] If $ad8 <> "" Then Return $ad8 Else Return $ag1[0] EndIf EndFunc Func _23_($aao) Local $a3u, $ag2, $a7o, $a7m, $a7l Local $ag3, $ag4, $ag5, $ag6 $a7l = "Role" $ag2 = $a7l & "_" & $aao $a7o = $a7l & "_" & $aao & "_error.log" $a6e = $a6i.ExecQuery("Select Domain, DomainRole, SystemStartupOptions from Win32_ComputerSystem", "WQL", 0x30) If IsObj($a6e) Then For $a6g In $a6e $ag4 = $a6g.DomainRole $ag3 = $a6g.Domain Select Case $ag4 = 0 $ag4 = "Standalone Workstation" Case $ag4 = 1 $ag4 = "Member Workstation" Case $ag4 = 2 $ag4 = "Standalone Server" Case $ag4 = 3 $ag4 = "Member Server" Case $ag4 = 4 $ag4 = "Backup Domain Controller" Case $ag4 = 5 $ag4 = "Primary Domain Controller" EndSelect For $a3u = 0 To UBound($a6g.SystemStartupOptions) - 1 $ag5 &= $a6g.SystemStartupOptions($a3u) & ", " Next Next $ag5 = _1b_($ag5) $ag6 = $aao & ";" & $ag3 & ";" & $ag4 & ";" & $ag5 & ";" If $a4z = 1 Then FileWriteLine($a77 & $ag2 & ".rl", $ag6) ElseIf $a4z = 0 Then FileWriteLine($a70, $ag6) EndIf Else $a7m = @MDAY & "." & @MON & "." & @YEAR & ";" & @HOUR & ":" & @MIN & ":" & @SEC If $a4z = 1 Then FileWriteLine($a77 & $a7o, $aao & ";" & $a7m & ";" & $a4r & ".exe" & ";" & $a7l & ";" & ";WMI;Error;No WMI objects found for class Win32_ComputerSystem on system " & $aao & ";0;") ElseIf $a4z = 0 Then FileWriteLine($a76, $aao & ";" & $a7m & ";" & $a4r & ".exe" & ";" & $a7l & ";" & ";WMI;Error;No WMI objects found for class Win32_ComputerSystem on system " & $aao & ";0;") EndIf EndIf EndFunc Func _24_($aao) Local $a7l = "Routing_Table" Local $ag7 = $a7l & "_" & $aao Local $a7o = $a7l & "_" & $aao & "_error.log" Local $ag8, $a9k, $a7m $ag8 = "" $a6e = $a6i.ExecQuery("Select Caption, Mask, NextHop, Metric1 from Win32_IP4PersistedRouteTable", "WQL", 0x30) If IsObj($a6e) Then For $a6g In $a6e $a9k = $aao & ";" & $a6g.Caption & ";" & $a6g.Mask & ";" & $a6g.NextHop & ";" & $a6g.Metric1 & ";" & @CRLF $ag8 &= $a9k Next If $ag8 = "" Then $ag8 = $aao & ";;;;;" & @CRLF If $a4z = 1 Then FileWriteLine($a77 & $ag7 & ".rt", $ag8) ElseIf $a4z = 0 Then FileWriteLine($a71, $ag8) EndIf Else $a7m = @MDAY & "." & @MON & "." & @YEAR & ";" & @HOUR & ":" & @MIN & ":" & @SEC If $a4z = 1 Then FileWriteLine($a77 & $a7o, $aao & ";" & $a7m & ";" & $a4r & ".exe" & ";" & $a7l & ";" & ";WMI;Error;No WMI objects found for class Win32_IP4PersistedRouteTable on system " & $aao & ";0;") ElseIf $a4z = 0 Then FileWriteLine($a76, $aao & ";" & $a7m & ";" & $a4r & ".exe" & ";" & $a7l & ";" & ";WMI;Error;No WMI objects found for class Win32_IP4PersistedRouteTable on system " & $aao & ";0;") EndIf EndIf EndFunc Func _25_($aao) Local $a7l = "Services" Local $a7m, $a9k Local $ag9, $aga, $agb, $agc, $agd, $age, $agf, $agg Local $agh = $a7l & "_" & $aao Local $a7o = $a7l & "_" & $aao & "_error.log" $a6e = $a6i.ExecQuery("Select Caption, Description, Name, StartMode, StartName, State, Status from Win32_Service", "WQL", 0x30) If IsObj($a6e) Then For $a6g In $a6e $aga = $a6g.Caption $agc = $a6g.Name $agd = $a6g.StartMode $age = $a6g.StartName $agf = $a6g.State $ag9 &= $aao & ";" & $aga & ";" & $agc & ";" & $agd & ";" & $agf & ";" & $age & ";" & @CRLF Next If $a4z = 1 Then FileWriteLine($a77 & $agh & ".sv", $ag9) ElseIf $a4z = 0 Then FileWriteLine($a72, $ag9) EndIf Else $a7m = @MDAY & "." & @MON & "." & @YEAR & ";" & @HOUR & ":" & @MIN & ":" & @SEC If $a4z = 1 Then FileWriteLine($a77 & $a7o, $aao & ";" & $a7m & ";" & $a4r & ".exe" & ";" & $a7l & ";" & ";WMI;Error;No WMI objects found for class Win32_Service on system " & $aao & ";0;") ElseIf $a4z = 0 Then FileWriteLine($a76, $aao & ";" & $a7m & ";" & $a4r & ".exe" & ";" & $a7l & ";" & ";WMI;Error;No WMI objects found for class Win32_Service on system " & $aao & ";0;") EndIf EndIf EndFunc Func _26_($aao) Local $a7l = "Software" Local $a6h, $aer, $aes, $agi, $agj, $aev, $aew, $agk, $agl, $agm, $agn, $ago Local $agp, $aeu, $agq, $agr, $ags, $agt, $agu, $acx, $a7m Local $agv = $a7l & "_" & $aao Local $a7o = $a7l & "_" & $aao & "_error.log" $aer = 0x80000002 $aes = "Software\Microsoft\Windows\CurrentVersion\Uninstall\" $agi = "SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\" If @OSArch = "X64" And($aao = @ComputerName Or _ $aao = "localhost" Or _ $aao = @IPAddress1 Or _ $aao = @IPAddress2 Or _ $aao = @IPAddress3 Or _ $aao = @IPAddress4) Then $a2c = 1 While 1 $aeu = RegEnumKey("HKEY_LOCAL_MACHINE\" & $aes, $a2c) If @error <> 0 Then ExitLoop $agq = RegRead("HKEY_LOCAL_MACHINE\" & $aes & "\" & $aeu, "DisplayName") $ago = RegRead("HKEY_LOCAL_MACHINE\" & $aes & "\" & $aeu, "SystemComponent") $agn = RegRead("HKEY_LOCAL_MACHINE\" & $aes & "\" & $aeu, "MoreInfoURL") $agm = RegRead("HKEY_LOCAL_MACHINE\" & $aes & "\" & $aeu, "NoRemove") If $agq <> "" And _ StringIsASCII($agq) <> 0 And _ $agq <> "Security Update for" And _ $agq <> "Hotfix for" And _ $agq <> "Update for Office" And _ $agq <> "Windows 2000 Hotfix" And _ StringInStr(StringLower($aeu), StringLower("InstallShield_")) = 0 And _ StringInStr(StringLower($agn), StringLower("http://support.microsoft.com/kb/")) = 0 And _ $agm <> 1 And $ago <> 1 Then $agr = StringStripWS($agq, 7) $agt = StringStripWS(RegRead("HKEY_LOCAL_MACHINE\" & $aes & "\" & $aeu, "Publisher"), 7) $agu = RegRead("HKEY_LOCAL_MACHINE\" & $aes & "\" & $aeu, "InstallDate") $ags = RegRead("HKEY_LOCAL_MACHINE\" & $aes & "\" & $aeu, "DisplayVersion") $agp &= $aao & ";" & $agr & ";" & $ags & ";" & $agt & ";" & $agu & ";" & @CRLF EndIf $a2c += 1 WEnd $a2c = 1 While 1 $aeu = RegEnumKey("HKEY_LOCAL_MACHINE64\" & $aes, $a2c) If @error <> 0 Then ExitLoop $agq = RegRead("HKEY_LOCAL_MACHINE64\" & $aes & "\" & $aeu, "DisplayName") $ago = RegRead("HKEY_LOCAL_MACHINE64\" & $aes & "\" & $aeu, "SystemComponent") $agn = RegRead("HKEY_LOCAL_MACHINE64\" & $aes & "\" & $aeu, "MoreInfoURL") $agm = RegRead("HKEY_LOCAL_MACHINE64\" & $aes & "\" & $aeu, "NoRemove") If $agq <> "" And _ StringIsASCII($agq) <> 0 And _ $agq <> "Security Update for" And _ $agq <> "Hotfix for" And _ $agq <> "Update for Office" And _ $agq <> "Windows 2000 Hotfix" And _ StringInStr(StringLower($aeu), StringLower("InstallShield_")) = 0 And _ StringInStr(StringLower($agn), StringLower("http://support.microsoft.com/kb/")) = 0 And _ $agm <> 1 And $ago <> 1 Then $agr = StringStripWS($agq, 7) $agt = StringStripWS(RegRead("HKEY_LOCAL_MACHINE64\" & $aes & "\" & $aeu, "Publisher"), 7) $agu = RegRead("HKEY_LOCAL_MACHINE64\" & $aes & "\" & $aeu, "InstallDate") $ags = RegRead("HKEY_LOCAL_MACHINE64\" & $aes & "\" & $aeu, "DisplayVersion") $agp &= $aao & ";" & $agr & ";" & $ags & ";" & $agt & ";" & $agu & ";" & @CRLF EndIf $a2c += 1 WEnd If $a4z = 1 Then FileWriteLine($a77 & $agv & ".sw", $agp) ElseIf $a4z = 0 Then FileWriteLine($a73, $agp) EndIf Else If StringLower(@OSVersion) <> StringLower("WIN_2000") Then $a6j = ObjCreate("WbemScripting.SWbemLocator") $agl = $a6j.ConnectServer($aao, "\root\default", "", "", "", "", 0x80) $a6h = $agl.Get("StdRegProv") Else $a6h = ObjGet("winmgmts:{impersonationLevel=impersonate}!\\" & $aao & "\root\default:StdRegProv") EndIf If IsObj($a6h) Then $a6h.EnumKey($aer, $aes, $aev) For $aew In $aev $agr = "" $ags = "" $agt = "" $agu = "" $aeu = $a6h.GetStringValue($aer, $aes & $aew, "DisplayName", $agk) $a6h.GetDWORDValue($aer, $aes & $aew, "NoRemove", $agm) $a6h.GetDWORDValue($aer, $aes & $aew, "SystemComponent", $ago) $a6h.GetStringValue($aer, $aes & $aew, "MoreInfoURL", $agn) If $aeu <> 0 Or StringLeft($aew, 2) = "KB" Or StringLeft($aew, 1) = "Q" Then $aeu = $a6h.GetStringValue($aer, $aes & $aew, "QuietDisplayName", $agk) EndIf If $agk <> "" And StringIsASCII($agk) <> 0 _ And $aeu = 0 And StringInStr(StringLower($agk), StringLower("Security Update for")) = 0 _ And StringInStr(StringLower($agk), StringLower("Update for Windows")) = 0 _ And StringInStr(StringLower($agk), StringLower("Hotfix for")) = 0 _ And StringInStr(StringLower($agk), StringLower("Update for Office")) = 0 _ And StringInStr(StringLower($aew), StringLower("InstallShield_")) = 0 _ And StringInStr(StringLower($agk), StringLower("Windows 2000 Hotfix")) = 0 _ And StringInStr(StringLower($agn), StringLower("http://support.microsoft.com/kb/")) = 0 _ And $agm <> 1 _ And $ago <> 1 Then $agr = $agk $aeu = $a6h.GetStringValue($aer, $aes & $aew, "DisplayVersion", $agk) If $agk <> "" And StringIsASCII($agk) <> 0 Then $ags = StringStripWS($agk, 7) EndIf $aeu = $a6h.GetStringValue($aer, $aes & $aew, "Publisher", $agk) If $agk <> "" And StringIsASCII($agk) <> 0 Then $agt = StringStripWS($agk, 7) EndIf $aeu = $a6h.GetStringValue($aer, $aes & $aew, "InstallDate", $agk) If $agk <> "" And StringIsASCII($agk) <> 0 Then $agu = $agk $acx = $aao & ";" & $agr & ";" & $ags & ";" & $agt & ";" & $agu & ";" & @CRLF $agp &= $acx EndIf Next Dim $aev $a6h.EnumKey($aer, $agi, $aev) If UBound($aev) > 0 Then For $aew In $aev $agr = "" $ags = "" $agt = "" $agu = "" $aeu = $a6h.GetStringValue($aer, $agi & $aew, "DisplayName", $agk) $a6h.GetDWORDValue($aer, $agi & $aew, "NoRemove", $agm) $a6h.GetDWORDValue($aer, $agi & $aew, "SystemComponent", $ago) $a6h.GetStringValue($aer, $agi & $aew, "MoreInfoURL", $agn) If $aeu <> 0 Or StringLeft($aew, 2) = "KB" Or StringLeft($aew, 1) = "Q" Then $aeu = $a6h.GetStringValue($aer, $agi & $aew, "QuietDisplayName", $agk) EndIf If $agk <> "" And StringIsASCII($agk) <> 0 _ And $aeu = 0 And StringInStr(StringLower($agk), StringLower("Security Update for")) = 0 _ And StringInStr(StringLower($agk), StringLower("Update for Windows")) = 0 _ And StringInStr(StringLower($agk), StringLower("Hotfix for")) = 0 _ And StringInStr(StringLower($agk), StringLower("Update for Office")) = 0 _ And StringInStr(StringLower($aew), StringLower("InstallShield_")) = 0 _ And StringInStr(StringLower($agk), StringLower("Windows 2000 Hotfix")) = 0 _ And StringInStr(StringLower($agn), StringLower("http://support.microsoft.com/kb/")) = 0 _ And $agm <> 1 _ And $agm <> 1 Then $agr = $agk $aeu = $a6h.GetStringValue($aer, $agi & $aew, "DisplayVersion", $agk) If $agk <> "" And StringIsASCII($agk) <> 0 Then $ags = StringStripWS($agk, 7) EndIf $aeu = $a6h.GetStringValue($aer, $agi & $aew, "Publisher", $agk) If $agk <> "" And StringIsASCII($agk) <> 0 Then $agt = StringStripWS($agk, 7) EndIf $aeu = $a6h.GetStringValue($aer, $agi & $aew, "InstallDate", $agk) If $agk <> "" And StringIsASCII($agk) <> 0 Then $agu = $agk $acx = $aao & ";" & $agr & ";" & $ags & ";" & $agt & ";" & $agu & ";" & @CRLF $agp &= $acx EndIf Next EndIf If $a4z = 1 Then FileWriteLine($a77 & $agv & ".sw", $agp) ElseIf $a4z = 0 Then FileWriteLine($a73, $agp) EndIf Else $a7m = @MDAY & "." & @MON & "." & @YEAR & ";" & @HOUR & ":" & @MIN & ":" & @SEC If $a4z = 1 Then FileWriteLine($a77 & $a7o, $aao & ";" & $a7m & ";" & $a4r & ".exe" & ";" & $a7l & ";" & ";WMI;Error;No WMI objects found for class StdRegProv on system " & $aao & ";0;") ElseIf $a4z = 0 Then FileWriteLine($a76, $aao & ";" & $a7m & ";" & $a4r & ".exe" & ";" & $a7l & ";" & ";WMI;Error;No WMI objects found for class StdRegProv on system " & $aao & ";0;") EndIf EndIf EndIf EndFunc Func _27_($aao) Local $a7l = "Timezone" Local $agw = $a7l & "_" & $aao Local $a7o = $a7l & "_" & $aao & "_error.log" Local $a7m, $agx, $agy, $agz, $ag_, $ah0, $ah1, $ah2, $ah3 $a6e = $a6i.ExecQuery("SELECT Description, DaylightName, DaylightMonth, DaylightDay, StandardName, StandardMonth, StandardDay FROM Win32_TimeZone", "WQL", 0x30) If IsObj($a6e) Then For $a6g In $a6e $agy = $a6g.Description $agz = StringStripWS($a6g.DaylightName, 7) $ag_ = $a6g.DaylightMonth $ah0 = $a6g.DaylightDay $ah1 = StringStripWS($a6g.StandardName, 7) $ah2 = $a6g.StandardMonth $ah3 = $a6g.StandardDay $agx &= $aao & ";" & $agy & ";" & $agz & ";" & $ag_ & ";" & $ah0 & ";" & $ah1 & ";" & $ah2 & ";" & $ah3 & ";" & @CRLF Next If $a4z = 1 Then FileWriteLine($a77 & $agw & ".tz", $agx) ElseIf $a4z = 0 Then FileWriteLine($a74, $agx) EndIf Else $a7m = @MDAY & "." & @MON & "." & @YEAR & ";" & @HOUR & ":" & @MIN & ":" & @SEC If $a4z = 1 Then FileWriteLine($a77 & $a7o, $aao & ";" & $a7m & ";" & $a4r & ".exe" & ";" & $a7l & ";" & ";WMI;Error;No WMI objects found for class Win32_TimeZone on system " & $aao & ";0;") ElseIf $a4z = 0 Then FileWriteLine($a76, $aao & ";" & $a7m & ";" & $a4r & ".exe" & ";" & $a7l & ";" & ";WMI;Error;No WMI objects found for class Win32_TimeZone on system " & $aao & ";0;") EndIf EndIf EndFunc Func _28_($aao) Local $a7l = "Video_Contoller" Local $ah4 = $a7l & "_" & $aao Local $a7o = $a7l & "_" & $aao & "_error.log" Local $a6e, $ae5, $ah5, $ah6, $ah7, $ah8, $ah9, $aha, $a7m $a6e = $a6i.ExecQuery("SELECT AdapterCompatibility, AdapterRAM, Name, DriverVersion, DriverDate FROM Win32_VideoController", "WQL", 0x30) If IsObj($a6e) Then For $a6g In $a6e $ah9 = $a6g.Name $aha = $a6g.AdapterCompatibility $ah8 = Round($a6g.AdapterRAM / 1024 ^ 2, 0) $ah7 = $a6g.DriverVersion $ah6 = _11_($a6g.DriverDate) $ah5 &= $aao & ";" & $ah9 & ";" & $aha & ";" & $ah8 & ";" & $ah7 & ";" & $ah6 & ";" & @CRLF Next If $a4z = 1 Then FileWriteLine($a77 & $ah4 & ".vc", $ah5) ElseIf $a4z = 0 Then FileWriteLine($a75, $ah5) EndIf Else $a7m = @MDAY & "." & @MON & "." & @YEAR & ";" & @HOUR & ":" & @MIN & ":" & @SEC If $a4z = 1 Then FileWriteLine($a77 & $a7o, $aao & ";" & $a7m & ";" & $a4r & ".exe" & ";" & $a7l & ";" & ";WMI;Error;No WMI objects found for class Win32_VideoControlle on system " & $aao & ";0;") ElseIf $a4z = 0 Then FileWriteLine($a76, $aao & ";" & $a7m & ";" & $a4r & ".exe" & ";" & $a7l & ";" & ";WMI;Error;No WMI objects found for class Win32_VideoControlle on system " & $aao & ";0;") EndIf EndIf EndFunc