Jump to content
Sign in to follow this  
damon

RunAs not working properly

Recommended Posts

damon

I am having problems getting a script to run with admin rights. I have 3 different passwords due to different computers not receiving network updates/pushes to have admin password updated to one consistant.

Everytime I run the script it does nothing and exits, so i put in some msgbox's to find out what is going on, and the return with "0" on all three. I have Windows SP3 on the computer and have read in other post that people are thinking that it is causing problems, I am not even able to get one run much less the 32 that they get before it quits working.

I have changed the user name and passwords for this forum due to security reasons, any help would be appreciated.

If $CmdLine[0] > 0 Then
    If $CmdLine[1] = "/UpdateOffice" Then UpdateOffice()
    Exit
EndIf
Local $user = "admin"
Local $pass = "password"
Local $pass2 = "password2"
Local $pass3 = "password3"
If IsAdmin () = 0 Then
$run1 = RunAs ( $user, @ComputerName, $pass, 0,@ScriptFullPath & " /UpdateOffice")
MsgBox (0,"",$run1)
If  $run1 = 0 Then
  $run2 = RunAs( $user, @ComputerName, $pass2, 0,@ScriptFullPath & " /UpdateOffice")
  MsgBox (0,"",$run2)
  If $run2 = 0 Then
   $run3 = RunAs ( $user, @ComputerName, $pass3, 0,@ScriptFullPath & " /UpdateOffice")
   MsgBox (0,"",$run3)
   If $run3 = 0 Then
   MsgBox (0,"",$run3)
    Exit
   EndIf
  EndIf
EndIf
EndIf
UpdateOffice()

UpdateOffice is calling the function with a gui that I built. I can attach it if I need but I seen the above being the problem.

thanks,

Damon


It always amazes me how one little thing can cause so much havoc

Share this post


Link to post
Share on other sites
damon

Sorry, I did forget to mention that this is Windows XP. I tried #RequireAdmin but that prompted a box to come up and ask me to login as admin.


It always amazes me how one little thing can cause so much havoc

Share this post


Link to post
Share on other sites
damon

yes I do Compile it, I test on a separate computer from what I code on that does not have autoit installed on it. I have to due to the fact I need to make sure I am logged on as a user. I have used this in many other scripts in the past with no problems but for some reason it is not running or coming back with a PID, I have changed/checked the admin password to make sure it is the same as my variable in my code,

Visually looking, do you see anything wrong with my code? This will give me a baseline of trouble shooting possibilities.


It always amazes me how one little thing can cause so much havoc

Share this post


Link to post
Share on other sites
damon

was wanting to see if someone could look at this one more time.

thanks

Damon


It always amazes me how one little thing can cause so much havoc

Share this post


Link to post
Share on other sites
BrewManNH

I can't get that script to run as is on Windows 7 or XP. I did get it to work with my domain credentials, but not with local administrator credentials. I added a few message boxes before I compiled it to see where in the script it was.


If I posted any code, assume that code was written using the latest release version unless stated otherwise. Also, if it doesn't work on XP I can't help with that because I don't have access to XP, and I'm not going to.
Give a programmer the correct code and he can do his work for a day. Teach a programmer to debug and he can do his work for a lifetime - by Chirag Gude
How to ask questions the smart way!

I hereby grant any person the right to use any code I post, that I am the original author of, on the autoitscript.com forums, unless I've specifically stated otherwise in the code or the thread post. If you do use my code all I ask, as a courtesy, is to make note of where you got it from.

Back up and restore Windows user files _Array.au3 - Modified array functions that include support for 2D arrays.  -  ColorChooser - An add-on for SciTE that pops up a color dialog so you can select and paste a color code into a script.  -  Customizable Splashscreen GUI w/Progress Bar - Create a custom "splash screen" GUI with a progress bar and custom label.  -  _FileGetProperty - Retrieve the properties of a file  -  SciTE Toolbar - A toolbar demo for use with the SciTE editor  -  GUIRegisterMsg demo - Demo script to show how to use the Windows messages to interact with controls and your GUI.  -   Latin Square password generator

Share this post


Link to post
Share on other sites
damon

I have tried both network and local(desktop) with same results. I will try it with my ad credentials and see what happens - did not think of doing that.


It always amazes me how one little thing can cause so much havoc

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  

  • Similar Content

    • PINTO1927
      By PINTO1927
      HI GUYS,
      I'm trying to run this script with an advanced domain user, but when compiling the cmd it returns access denied, as if it did not recognize the user of AD.
       
      RunAsWait("administrator", "CONTOSO", "Services.1", 2, "C:\Users\albert.frizz\Desktop\test.bat")
       
      can you help me please?
    • Traskiz
      By Traskiz
      Hello,
       
      I have a problem, I cant run script as administrator in Windows 10:
      main.exe:
      RegWrite('HKLM\SOFTWARE\Policies\Microsoft\Windows\BITS', 'EnableBITSMaxBandwidth','REG_DWORD',Number('1'))
      RegWrite('HKLM\SOFTWARE\Policies\Microsoft\Windows\BITS', 'MaxTransferRateOnSchedule','REG_DWORD',Number('100'))
      RegWrite('HKLM\SOFTWARE\Policies\Microsoft\Windows\BITS', 'MaxBandwidthValidFrom','REG_DWORD',Number('7'))
      RegWrite('HKLM\SOFTWARE\Policies\Microsoft\Windows\BITS', 'MaxBandwidthValidTo','REG_DWORD',Number('22'))
      RegWrite('HKLM\SOFTWARE\Policies\Microsoft\Windows\BITS', 'UseSystemMaximum','REG_DWORD',Number('1'))
      RegWrite('HKLM\SOFTWARE\Policies\Microsoft\Windows\BITS', 'MaxTransferRateOffSchedule','REG_DWORD',Number('400'))
      run.exe:
      Global $sUserName = "administrator"
      Global $sPassword = "pass"
      Global $sDomain = "domain"
      RunAsWait($sUserName, $sDomain, $sPassword, 2, "main.exe", "", @TempDir)
      If I run "run.exe" it dont work...
      If  I change main.exe to this:
      msgbox(1,"",@username)        
      and it runs and shows administrator in message box... but it cant elevate main.exe with RegWrite() command...
       
      I tried using #RequireAdmin in first line of main.exe, but it not worked... UAC is set to "do not notify"
       
       
      This method of elevation worked on Windows 7 and Windows XP...
      Please help!
    • Surf243
      By Surf243
      Hello,
      I've been using this UDF to set ACL permissions to some network folders, everything works great (no issues). However, I want to apply these permissions using elevated domain credentials supplied by the user and not the user that's currently running the script. As a temporary solution, I've implemented a RunAs function, but that's not the solution I'm looking for. I'm not fluent with using Dlls, but I have been trying out different methods.
      My RunAs Function:
      Func _RunAs($sUser, $sPass) If @Compiled Then RunAs($sUser, @LogonDomain, $sPass, 4, FileGetShortName(@ScriptFullPath), "", @SW_MAXIMIZE) Else RunAs($sUser, @LogonDomain, $sPass, 4, FileGetShortName(@AutoItExe) & " " & FileGetShortName(@ScriptFullPath), "", @SW_MAXIMIZE) EndIf EndFunc ;==>_RunAs I tried LogonUser and I know that I can take that token to ImpersonateLoggedOnUser, but I'm not sure how to implement that or if that's even the right method. I also need to RevertToSelf once completed.
      Func _LogonUser($sUsername, $sPassword, $sServer = @LogonDomain) ; Returns True if user exists Local $stToken $stToken = DllStructCreate("int") Local $aRet = DllCall("advapi32.dll", "int", "LogonUser", _ "str", $sUsername, "str", $sServer, "str", $sPassword, "dword", 3, "dword", 0, "ptr", DllStructGetPtr($stToken)) ;$hToken = DllStructGetData($stToken, 1) If Not @error And $aRet[0] <> 0 Then Return True EndIf Return False EndFunc ;==>_LogonUser Any assistance, suggestions or idea's would be helpful.
      Thanks!
    • Milas
      By Milas
      Hey guys,
               for some reason when I run this command with run as in autoit it returns access is denied. but when I run the same thing in an elevated command shell it works fine. Im not sure where I am messing up.
      global $rtech,$rcred, $IP $rtech = inputbox("","username") $rcred = InputBox("","password") $ip = inputbox("","enter IP") $pid = Runas ($rtech,"mhs", $rcred, 2 ,@ComSpec & ' /c reg query \\' & $ip & '"\hklm\software\microsoft\windows\currentversion\group policy\state\machine"|findstr /i "disting"', @SystemDir, @SW_hide, $STDERR_CHILD + $STDOUT_CHILD) Local $line While 1 $line &= StdoutRead($pid) If @error Then ExitLoop WEnd While 1 $line &= StderrRead($pid) If @error Then ExitLoop WEnd MsgBox(0, "", $line)  
    • WoodGrain
      By WoodGrain
      Hi All,
      I've got a script setup to drop a program into a temp folder and then run it from there, but I have mixed results, the Run() command will work on some computers but not others. The file will be placed into the temp folder in all cases. Running AutoIT 3.3.14.0. The computers are all either Win 7 or 8.1, x64 (exe is compiled to x64 too), UAC is off, all have local admin rights - if I've missed something ask and I'll update the details.
      If Not FileExists (@TempDir & "\HCTB") Then DirCreate(@TempDir & "\HCTB") FileInstall("G:\IT\Downloads\TB\12.0.45471\Host\TB_Setup-sif7r8pgcq.exe", @TempDir & "\HCTB\TB_Setup-sif7r8pgcq.exe", 1) Local $iPID = Run(@TempDir & "\HCTB\TB_Setup-sif7r8pgcq.exe", "") Any suggestions?
      Thanks!
×