michaelslamet Posted June 14, 2013 Share Posted June 14, 2013 Guys, I know this is pretty OOT, but this is the forum I know that actively help the n00b like me If you have to manage a hundred PCs in different area, what tools will you used? I know remote control software like TeamViewer can help, but I dont have much budget for that not saying the inconvience of keep note of every PC's teamviewer ID and password on notepad. Since I'm pretty active develop small AutoIT script to used to those PCs and I update the script regulary, I imagine how can I distribute it to all those hundread PCs without manually copy them one by one? I know there are some remote control software created with AutoIT, but can they be used in this situation? I believe there are many large company IT guys here I need help Thanks in advance! Link to comment Share on other sites More sharing options...
aleph01 Posted June 15, 2013 Share Posted June 15, 2013 Check out SysInternals PS tools. Google it and see if they can help. I find PSEXEC.exe to be especially helpful in many instances. You put the .exe on all of the clients, and it allows you to do many things remotely and you can use a script that calls psexec.exe. Good luck, and I hope you get a very much better answer from the forum. This forum is superb. _aleph_ Meds. They're not just for breakfast anymore. Link to comment Share on other sites More sharing options...
DW1 Posted June 15, 2013 Share Posted June 15, 2013 If this is a Windows environment, it's common to have RDCMan installed for quick and easy RDP access to the machines. This will not cost you anything. As for software management, I know that MS SMS and Tivoli are common. No clue on pricing for either of those though. AutoIt3 Online Help Link to comment Share on other sites More sharing options...
vortexed Posted June 15, 2013 Share Posted June 15, 2013 I created my own autoit script that would check in to a server using windows file sharing technology and automatically update itself. I also made it so that the script would update machines on its own lan so that my initial deployment was manual but after that it was self sustained. Kind of like a virus but to make my IT job easier. Should be fairly simple to do. The one I created is 20 lines of code or less. No remote viewing capabilities but I am able to manage it with AutoIT from one location. Link to comment Share on other sites More sharing options...
michaelslamet Posted June 15, 2013 Author Share Posted June 15, 2013 Aleph and Danwilli: thanks, I'm going to see how it could help! Vortexed: that is very interesting! Do you mind to share to code with us? Link to comment Share on other sites More sharing options...
storme Posted June 15, 2013 Share Posted June 15, 2013 You might like to check out '?do=embed' frameborder='0' data-embedContent>> I'm not sure if it will meet your requirements but it would be a good start if you want to "roll-your-own". I'm in a similar boat I've got customers spread all over the city that I'd like to monitor and work on. Even though there are heaps of programs out there finding just the right one has proved elusive so far. Good Luck John Morrison Some of my small contributions to AutoIt Browse for Folder Dialog - Automation SysTreeView32 | FileHippo Download and/or retrieve program information | Get installedpath from uninstall key in registry | RoboCopy function John Morrison aka Storm-E Link to comment Share on other sites More sharing options...
vortexed Posted June 15, 2013 Share Posted June 15, 2013 Aleph and Danwilli: thanks, I'm going to see how it could help! Vortexed: that is very interesting! Do you mind to share to code with us? expandcollapse popup;define your global variables here While 1 Sleep(1000*60*15) _MapDrive() ;==> Remote Share Connection START _Manifest() ;Writes to global.ini each day to check in Global $UpdateDay = IniRead($ActionINI, "UPDATE", "DAY", "NOTSET") Global $UpdateHour = IniRead($ActionINI, "UPDATE", "HOUR", "NOTSET") Global $RunDate = @MON & "." & @MDAY & "." & @YEAR Global $UpdateThisComputer = IniRead($ActionINI, "UPDATE", @ComputerName, "NOTSET") If $UpdateDay = "ALWAYS" Or $UpdateThisComputer = "NOW" Then If FileExists($SourceFilePath) Then ConsoleWrite("Values " & $UpdateDay & " Current Version: " & FileGetVersion(@ScriptFullPath) & " Newer Version: " & FileGetVersion($SourceFilePath) & @CRLF) If FileGetVersion($SourceFilePath) > FileGetVersion(@ScriptFullPath) Then FileWrite($LogFile, _Now() & " " & @ComputerName & " " & @IPAddress1 & " Current Version: " & FileGetVersion(@ScriptFullPath) _ & " Newer Version: " & FileGetVersion($SourceFilePath) & " Running update " & @CRLF) ConsoleWrite("Allowed to perform update " & @CRLF) _SelfUpdate() EndIf EndIf Else ConsoleWrite("ERROR" & $UpdateDay & $UpdateHour & @CRLF) EndIf WEnd Func _MapDrive() DriveMapDel("V:") DriveMapAdd("V:", $RemoteShare, 0, $RemoteUserName, $RemotePassword) If @error = 0 Then ConsoleWrite("Successfully Mapped Drive" & @CRLF) If @error = 1 Then ConsoleWrite("ERROR Undefined/Other error." & @CRLF) If @error = 2 Then ConsoleWrite("ERROR Access to the remote share was denied." & @CRLF) If @error = 3 Then ConsoleWrite("WARNING The device is already assigned." & @CRLF) If @error = 4 Then ConsoleWrite("ERROR Invalid device name." & @CRLF) If @error = 5 Then ConsoleWrite("ERROR Invalid remote share." & @CRLF) If @error = 6 Then ConsoleWrite("ERROR Invalid password." & @CRLF) EndFunc ;==>_MapDrive Func _SelfUpdate() ;DO NOT CHANGE BELOW THIS LINE ConsoleWrite("Begin _SelfUpdate function " & @CRLF) If FileExists($SourceFilePath) Then FileCopy($SourceFilePath, @ScriptDir & "\" & $SourceFile & ".new") ;changed the name of the new file. Local $batchPath = @ScriptDir & '\self_update.bat' Local $batchFile = "@echo off" & @CRLF _ & "ping localhost -n 2 > nul" & @CRLF _ & ":loop" & @CRLF _ ;specify the start of a zone & 'taskkill /im "' & @ScriptName & '"' & @CRLF _ ;Needed to end current process & 'del /Q "' & @ScriptFullPath & '"' & @CRLF _ ;the quotes are needed for long filepaths, and filepaths with spaces. The @SciptfullPath is for flexibility & 'if exist "' & @ScriptFullPath & '" goto loop' & @CRLF _ ;if the delete failed, try again & 'move "' & @ScriptFullPath & '.new" "' & @ScriptFullPath & '"' & @CRLF _ ;move new version found to directory of current script & 'start "" "' & @ScriptFullPath & '"' & " /MIN" & @CRLF _ & 'del /Q "' & $batchPath & '"' & @CRLF _ & "exit" FileWrite($batchPath, $batchFile) If FileGetSize(@ScriptFullPath) > 0 Then Run($batchPath, "", @SW_MINIMIZE) Else FileWrite($LogFile, _Now() & " " & @ComputerName & " " & @IPAddress1 & " " & FileGetVersion(@ScriptFullPath) & " Unable to launch update script " & @CRLF) EndIf EndIf EndFunc ;==>_SelfUpdate Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now