CiprianD Posted August 24, 2017 Share Posted August 24, 2017 (edited) Hello everyone, Newbie here to AutoIT. I would appreciate a little help with a script that can remotely end a process on a Win 2k8 R2 server. The process gets hung up at times and I need to be able to have one of our managers clear it up without actually giving him access to the box. I have come up with a batch file that works fine, but I don't want the embedded credentials for the local admin on the server exposed in the batch file. I want to compile the batch into an .exe that he can run as needed. In my batch file I have: taskkill /S ServerName /U DOMAIN\ServerLocaladmin /P LocalAdminPwd /F /IM "taskmgr.exe" And in my .au3 file I have: Local $strUsername = "ServerLocaladmin" Local $strPassword = "LocalAdminPwd" Local $strDomain = "Domain" Local $strServer = "ServerName" Local $SystemDrive = EnvGet("SYSTEMDRIVE") Local $Process = chr(34) & "taskmgr.exe" & chr(34) Local $Return ;Msgbox (0, "Var", $Process) $Return = MsgBox (4, "Terminate " & $Process, "This utility will terminate " & $Process & " on the server in order to free up stuck sessions. Would you like to proceed?") ;MsgBox (0, "error", "Return is " & $Return) If $Return == 6 Then Run(@ComSpec & " /c taskkill /S " & $strServer & " /U " & $strDomain & "\" & $strUsername & " /P " & $strPassword & " /F /IM " & $Process, @SW_SHOW) EndIf ...but this isn't working when the file is copied to his PC. I would also like to get the output of the batch command in the output box but I don't know how to do this. Does the script look ok or is there a better way of ending the process remotely? Thank you Edited August 24, 2017 by Melba23 Amended title Link to comment Share on other sites More sharing options...
CiprianD Posted August 24, 2017 Author Share Posted August 24, 2017 Sorry about the misleading title - it should read 'End process' rather than 'Restart service'. Not sure where my mind was when posting. Link to comment Share on other sites More sharing options...
Simpel Posted August 24, 2017 Share Posted August 24, 2017 Hi. Can you try to change all " in your run command to ' and strip chr(34) inside $Process? I'm currently not able to test it. I hope the best, Conrad SciTE4AutoIt = 3.7.3.0 AutoIt = 3.3.14.2 AutoItX64 = 0 OS = Win_10 Build = 19044 OSArch = X64 Language = 0407/german H:\...\AutoIt3\SciTE H:\...\AutoIt3 H:\...\AutoIt3\Include (H:\ = Network Drive) Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind. Link to comment Share on other sites More sharing options...
Neutro Posted August 24, 2017 Share Posted August 24, 2017 Hi @CiprianD, AutoIT has an embedded RunAs function that should simplify what you're trying to achieve: #RequireAdmin RunAs("ServerLocaladmin", "domain", "LocalAdminPwd", 0, 'taskkill /S ServerName /F /IM "taskmgr.exe"', Default, @SW_HIDE) Just compile this to an exe and it should work! Identify active network connections and change DNS server - Easily export Windows network settings Clean temporary files from Windows users profiles directories - List Active Directory Groups members Export content of an Outlook mailbox to a PST file - File patch manager - IRC chat connect example Thanks again for your help Water! Link to comment Share on other sites More sharing options...
CiprianD Posted August 29, 2017 Author Share Posted August 29, 2017 On 8/24/2017 at 1:15 PM, Neutro said: Hi @CiprianD, AutoIT has an embedded RunAs function that should simplify what you're trying to achieve: #RequireAdmin RunAs("ServerLocaladmin", "domain", "LocalAdminPwd", 0, 'taskkill /S ServerName /F /IM "taskmgr.exe"', Default, @SW_HIDE) Just compile this to an exe and it should work! This seems to elevate the UAC with the permissions of the local admin account, but it does not kill the process remotely. I also tried a domain admin account with no luck. Link to comment Share on other sites More sharing options...
CiprianD Posted August 29, 2017 Author Share Posted August 29, 2017 On 8/24/2017 at 0:53 PM, Simpel said: Hi. Can you try to change all " in your run command to ' and strip chr(34) inside $Process? I'm currently not able to test it. I hope the best, Conrad No luck. Link to comment Share on other sites More sharing options...
Danny35d Posted August 29, 2017 Share Posted August 29, 2017 @Ciprian The Run function on your script from the 1st post it missing the working directory before the @SW_SHOW. Add the working directory and it works fine. Run(@ComSpec & " /c taskkill /S " & $strServer & " /U " & $strDomain & "\" & $strUsername & " /P " & $strPassword & " /F /IM " & $Process, @WorkingDir, @SW_SHOW) One way to see the output of the batch command is by adding && pause to the Run function. Run(@ComSpec & " /c taskkill /S " & $strServer & " /U " & $strDomain & "\" & $strUsername & " /P " & $strPassword & " /F /IM " & $Process & ' && pause', @WorkingDir, @SW_SHOW) AutoIt Scripts:NetPrinter - Network Printer UtilityRobocopyGUI - GUI interface for M$ robocopy command line Link to comment Share on other sites More sharing options...
CiprianD Posted August 29, 2017 Author Share Posted August 29, 2017 1 hour ago, Danny35d said: @Ciprian The Run function on your script from the 1st post it missing the working directory before the @SW_SHOW. Add the working directory and it works fine. Run(@ComSpec & " /c taskkill /S " & $strServer & " /U " & $strDomain & "\" & $strUsername & " /P " & $strPassword & " /F /IM " & $Process, @WorkingDir, @SW_SHOW) One way to see the output of the batch command is by adding && pause to the Run function. Run(@ComSpec & " /c taskkill /S " & $strServer & " /U " & $strDomain & "\" & $strUsername & " /P " & $strPassword & " /F /IM " & $Process & ' && pause', @WorkingDir, @SW_SHOW) That seemed to have done the trick. Thank you very much! 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