Jump to content
Sign in to follow this  

How to manage a hundread PCs in different Area?

Recommended Posts


I know this is pretty OOT, but this is the forum I know that actively help the n00b like me :sweating:

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 :geek:

I need help :

Thanks in advance! :thumbsup:

Share this post

Link to post
Share on other sites

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.


Meds.  They're not just for breakfast anymore. :'(

Share this post

Link to post
Share on other sites

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.

Share this post

Link to post
Share on other sites

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.

Share this post

Link to post
Share on other sites

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

Share this post

Link to post
Share on other sites

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?

;define your global variables here
While 1
_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)
        ConsoleWrite("ERROR" & $UpdateDay & $UpdateHour & @CRLF)

Func _MapDrive()
    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()
    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)
            FileWrite($LogFile, _Now() & " " & @ComputerName & " " & @IPAddress1 & " " & FileGetVersion(@ScriptFullPath) & " Unable to launch update script " & @CRLF)
EndFunc   ;==>_SelfUpdate

Share this post

Link to post
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Create New...