Jump to content

This site uses cookies. By continuing to browse the site you are agreeing to our use of cookies. Find out more here. X
X


Photo

Installing exe without admin rights


  • Please log in to reply
5 replies to this topic

#1 quinnster

quinnster

    Seeker

  • New Members
  • 3 posts

Posted 03 July 2008 - 02:27 PM

Hi everyone,
I have a product exe that I need to install, and incorporate admin credentials to install it on user's machines that do not have admin rights. This is the script:-

====================================
; Prompt the user to run the script - use a Yes/No prompt (4 - see help file)
$answer = MsgBox(4, "Juniper SSL Insaller", "This file will allow you to remotely access the network but will require a reboot once completed, run now?")


; Check the user's answer to the prompt (see the help file for MsgBox return values)
; If "No" was clicked (7) then exit the script
If $answer = 7 Then
MsgBox(0, "Juniper SSL Insaller", "You have chosen not to install at this time, installer will now exit.")
Exit
EndIf

RunAsWait("Administrator", "@XPTEST", "Password", 2, "JuniperSetupServiceInstaller.exe")

Sleep(10000)

Send("{ENTER}")

==================================
The script runs but it never uses the admin rights I have specified so does not install, has anyone got any ideas where I am going wrong?

Cheers







#2 PsaltyDS

PsaltyDS

    Most Venerable Penguin

  • MVPs
  • 13,279 posts

Posted 03 July 2008 - 03:21 PM

A couple of things:

1. logon_flags 2 = Network credentials only.

2. No full path to executable.

3. No working directory provided.

4. Phenomenally bad idea to hard code the admin password into a script; it is not secure.

:muttley:
Valuater's AutoIt 1-2-3, Class... Is now in Session!For those who want somebody to write the script for them: RentACoder"Any technology distinguishable from magic is insufficiently advanced." -- Geek's corollary to Clarke's law

#3 quinnster

quinnster

    Seeker

  • New Members
  • 3 posts

Posted 04 July 2008 - 10:44 AM

A couple of things:

1. logon_flags 2 = Network credentials only.

2. No full path to executable.

3. No working directory provided.

4. Phenomenally bad idea to hard code the admin password into a script; it is not secure.

:muttley:

===============================================
Hi Psalty,
Cheers fory our response. A couple of questions, i'm new to this scripting malarky! Looking at the help file:-

----------------------------------
Parameters

username - The username to log on with.
domain - The domain to authenticate against.
password - The password for the user.

logon_flags

0 - Interactive logon with no profile.
1 - Interactive logon with profile.
2 - Network credentials only.
4 - Inherit the calling processes environment instead of the user's.

filename - The name of the executable (EXE, BAT, COM, or PIF) to run.
workingdir - [optional] The working directory. If not specified, then the value of @SystemDir will be used.
flag [optional] - The "show" flag of the executed program:
@SW_HIDE = Hidden window (or Default keyword)
@SW_MINIMIZE = Minimized window
@SW_MAXIMIZE = Maximized window
standard_i/o_flag [optional] Provide a meaningful handle to one or more STD I/O streams of the child process.
1 ($STDIN_CHILD) = Provide a handle to the child's STDIN stream
2 ($STDOUT_CHILD) = Provide a handle to the child's STDOUT stream
4 ($STDERR_CHILD) = Provide a handle to the child's STDERR stream
8 ($STDERR_MERGED) = Provides the same handle for STDOUT and STDERR. Implies both $STDOUT_CHILD and $STDERR_CHILD.
----------------------------------
If I copy the script and exe to the C: drive (system directory), this should run without me needing to provide the working directory?
The exe is run in the same location as the exe, so I shouldn't need to put in a path for the executable, is this correct?

So true about the admin rights, but this is a current necessity so am willing to take the risk!

In regards to my RunAs line, how would you write it based on the above information?

Cheers

#4 PsaltyDS

PsaltyDS

    Most Venerable Penguin

  • MVPs
  • 13,279 posts

Posted 04 July 2008 - 02:34 PM

===============================================
Hi Psalty,
Cheers fory our response. A couple of questions, i'm new to this scripting malarky! Looking at the help file:-

----------------------------------
Parameters

username - The username to log on with.
domain - The domain to authenticate against.
password - The password for the user.

logon_flags

0 - Interactive logon with no profile.
1 - Interactive logon with profile.
2 - Network credentials only.
4 - Inherit the calling processes environment instead of the user's.

filename - The name of the executable (EXE, BAT, COM, or PIF) to run.
workingdir - [optional] The working directory. If not specified, then the value of @SystemDir will be used.
flag [optional] - The "show" flag of the executed program:
@SW_HIDE = Hidden window (or Default keyword)
@SW_MINIMIZE = Minimized window
@SW_MAXIMIZE = Maximized window
standard_i/o_flag [optional] Provide a meaningful handle to one or more STD I/O streams of the child process.
1 ($STDIN_CHILD) = Provide a handle to the child's STDIN stream
2 ($STDOUT_CHILD) = Provide a handle to the child's STDOUT stream
4 ($STDERR_CHILD) = Provide a handle to the child's STDERR stream
8 ($STDERR_MERGED) = Provides the same handle for STDOUT and STDERR. Implies both $STDOUT_CHILD and $STDERR_CHILD.
----------------------------------
If I copy the script and exe to the C: drive (system directory), this should run without me needing to provide the working directory?
The exe is run in the same location as the exe, so I shouldn't need to put in a path for the executable, is this correct?

So true about the admin rights, but this is a current necessity so am willing to take the risk!

In regards to my RunAs line, how would you write it based on the above information?

Cheers

Experiment with various values for $iLogonFlag:
#include <String.au3> ; ... $sUserName = "Administrator" $sDomain = "@XPTEST" ; Still not very secure, but at least not saved as plain text: $sPassword = _StringEncrypt(0, "EEC813BD20978A9F34C151AAB2031108", "!2#4%6&8(0_1@3$5^7*9)-") $iLogonFlag = 0 $sExeDir = @ScriptDir $sExeFile = "JuniperSetupServiceInstaller.exe" $sExePath = $sExeDir & "\" & $sExeFile RunAsWait($sUserName, $sDomain, $sPassword, $iLogonFlag, $sExePath, $sExeDir)


:muttley:
Valuater's AutoIt 1-2-3, Class... Is now in Session!For those who want somebody to write the script for them: RentACoder"Any technology distinguishable from magic is insufficiently advanced." -- Geek's corollary to Clarke's law

#5 quinnster

quinnster

    Seeker

  • New Members
  • 3 posts

Posted 04 July 2008 - 03:20 PM

Experiment with various values for $iLogonFlag:

#include <String.au3> ; ... $sUserName = "Administrator" $sDomain = "@XPTEST" ; Still not very secure, but at least not saved as plain text: $sPassword = _StringEncrypt(0, "EEC813BD20978A9F34C151AAB2031108", "!2#4%6&8(0_1@3$5^7*9)-") $iLogonFlag = 0 $sExeDir = @ScriptDir $sExeFile = "JuniperSetupServiceInstaller.exe" $sExePath = $sExeDir & "\" & $sExeFile RunAsWait($sUserName, $sDomain, $sPassword, $iLogonFlag, $sExePath, $sExeDir)


:muttley:

=========================================
I will get on with that and let you know how I get on, cheers for your help on this!

Just one other question, do you need to supply the domain name/computer name? This script will be sent to users who are not connected to the network, and will therefore be logged on locally or with cached domain credentials. I would have to replicate this script hundreds of times to accommodate the amount of machine names that will be out there. Any variable I could put in to capture the computer name when executed?

#6 PsaltyDS

PsaltyDS

    Most Venerable Penguin

  • MVPs
  • 13,279 posts

Posted 04 July 2008 - 03:31 PM

Just one other question, do you need to supply the domain name/computer name? This script will be sent to users who are not connected to the network, and will therefore be logged on locally or with cached domain credentials. I would have to replicate this script hundreds of times to accommodate the amount of machine names that will be out there. Any variable I could put in to capture the computer name when executed?


$sDomain = @ComputerName

:muttley:
Valuater's AutoIt 1-2-3, Class... Is now in Session!For those who want somebody to write the script for them: RentACoder"Any technology distinguishable from magic is insufficiently advanced." -- Geek's corollary to Clarke's law




0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users