10 posts in this topic
Morning! I've searched for a definitive answer on the forums on this but can't find one so here goes. I need admin for one of my functions so I'm using #RequireAdmin. I then noticed that regardless of that function being used or admin actually being required, the program pops up and requires admin all of the time.
Is this the way it's designed and is there a way around it so that I can launch my program as normal until admin is required, then and only then prompt the user to run the program as admin?
The only solution I could think of is to produce 2 executables and do something like:
$adminrequired = 1 If($adminrequired = 1) Then Run(Run first executable which includes #RequireAdmin) Else Run(Run second identical executable without #RequireAdmin) EndIf Obviously I'd rather keep to making a single executable rather than having 2 or 3!
I've abandoned the FileSelectFolder() approach and rolled my own UDF to create a dialog containing the folder list in a ListView, which seems to work fine. It's also a better fit to our requirements: we don't really want the user wandering around in the folder-selection dialog, plus the UDF displays some associated info for each folder in a second column. Thanks again to the forum members who took a look at this.
I'm writing an installer script that needs to run as Administrator so it can, e.g., write files into protected directories. The problem is that when I call FileSelectFolder(), there is a 60-second delay before the dialog appears. If I run as an ordinary user (in the Administrators group), there's no delay, but I don't think that will work: for one thing, the installer needs to create a symbolic link, which a member of the Administrators group can't do unless the program is elevated. (This is Win 7 x64.)
(The installer will be run using an Admin account; the other user accounts are locked down and don't have access to the filesystem, the Start menu, Computer, etc. - it's a turnkey system.)
Any idea what causes the delay? And is there a way around it?
I have a problem with a script when I run it as admin. I am trying to get all the mapped drives from the local pc. This is the script I am using
;~ #RequireAdmin ; This switch is going wrong #include <Array.au3> If isAdmin() then MsgBox(0,"ADMIN","ADMIN") Else MsgBox(0,"NOT ADMIN","NOT ADMIN") EndIf $x = getMappedDrives() _ArrayDisplay($x) Func getMappedDrives() Dim $aDrives $objWMIService = ObjGet("winmgmts:\\" & @LogonDomain & "\root\CIMV2") $sQuery = "Select * From Win32_LogicalDisk Where DriveType = 4" $colItems = $objWMIService.ExecQuery($sQuery, "WQL", 48) If IsObj($colItems) Then For $objItem In $colItems ReDim $aDrives[UBound($aDrives) + 1] $aDrives[UBound($aDrives) - 1] = $objItem.DeviceID $aDrives[UBound($aDrives) - 1] = $objItem.ProviderName Next Return $aDrives Else SetError(-1, -1, -1) EndIf EndFunc When I run it without the '#RequireAdmin' switch it works fine. When I turn on the '#RequireAdmin' switch is gives me an empty array.
This code is part of a bigger project and my project always runs as admin. I dont know why it is doing this, because I am not using #RequireAdmin in the project.
Is there an other better way to get the mapped drives that works for me? Or am I doing something wrong?
I hope someone can help me.
A specific executable compiled with Aut2Exe 220.127.116.11 running under Windows 7.1/64 requests UAC/UAE elevation if it is compiled with the RequireAdmin option. Which is the expected behaviour.
However, when the same code is compiled with 18.104.22.168 no UAC prompt occurs, and instead the exe (or possibly the calling program) reports 'CreateProcess failed; code 740' and fails to launch.
Just wondering if there are any known differences here. If the issue hasn't been seen before I'll do a few more tests to try and establish under what conditions it occurs.
I have a script that updates a program across on many computers company wide. Occasionally it needs to install updates of other programs but sometimes it definitely doesn't want to have administrator privileges itself - so I have called little scripts to install what is needed. This worked fine in 22.214.171.124. It seems to have changed in 126.96.36.199
As a test I wrote two very little scripts: TestRA
#RequireAdmin MsgBox(0,"TestRA","This is running") and Testnon
MsgBox(0,"Test","This is running") then I wrote a script to call them.
$a=Run(@ScriptDir & "\testnon.exe") $a1= "No" if @error Then $a1="Yes" $b= Run(@ScriptDir & "\testra.exe") MsgBox(0,"Testing","Test non =" & $a & $a1& @CRLF &"Test ra=" & $b & @error) $a=RunWait(@ScriptDir & "\testnon.exe") MsgBox(0,"Test","Testnon = " & $a & @error) $b= RunWait(@ScriptDir & "\testra.exe") MsgBox(0,"Test","TestRA = " & $b & @error) I have just installed the latest SCiTE.
Attached are the various output messages.
As you can tell Test RA didn't run either on Run or RunWait. Can anyone tell me what is wrong?
Any ideas gratefully received