Sysinternals Homepage
Forum Home Forum Home > Sysinternals Utilities > PsTools
  New Posts New Posts RSS Feed - >>> EULA prompt when running PSTools <<<
  FAQ FAQ  Forum Search   Events   Register Register  Login Login

Topic Closed>>> EULA prompt when running PSTools <<<

 Post Reply Post Reply Page  <1 78910>
Author
Message
SvenBomwollen View Drop Down
Senior Member
Senior Member


Joined: 29 August 2008
Location: Germany
Status: Offline
Points: 1630
Direct Link To This Post Posted: 24 March 2009 at 6:07pm
Hello, Karo.

Thanks a lot for taking the time to update the list of Sysinternals programmes which will look for the EulaAccepted value inside HKCU\Software\Sysinternals\<Programname>:

Minor correction:
These regkeys do not need any EulaAccepted=1 entry, because they are subkeys to "HKCU\Software\Sysinternals\Process Explorer":
Quote Process Explorer\DllColumnMap
Process Explorer\DllColumns
Process Explorer\HandleColumnMap
Process Explorer\HandleColumns
Process Explorer\ProcessColumnMap
Process Explorer\ProcessColumns

As a consequence, these lines may safely be removed from your sysinternalseula.reg:
Quote [HKEY_CURRENT_USER\Software\Sysinternals\Process Explorer\DllColumnMap]
"EulaAccepted"=dword:00000001

[HKEY_CURRENT_USER\Software\Sysinternals\Process Explorer\DllColumns]
"EulaAccepted"=dword:00000001

[HKEY_CURRENT_USER\Software\Sysinternals\Process Explorer\HandleColumnMap]
"EulaAccepted"=dword:00000001

[HKEY_CURRENT_USER\Software\Sysinternals\Process Explorer\HandleColumns]
"EulaAccepted"=dword:00000001

[HKEY_CURRENT_USER\Software\Sysinternals\Process Explorer\ProcessColumnMap]
"EulaAccepted"=dword:00000001

[HKEY_CURRENT_USER\Software\Sysinternals\Process Explorer\ProcessColumns]
"EulaAccepted"=dword:00000001

A final note, because not everybody may be aware:
Sysinternals programmes store their settings inside each user's part of the registry (HKCU => ntuser.dat). Therefore, each user who uses Sysinternals programmes on a given machine will have to import the sysinternalseula.reg file individually.

Cheers,
SvenBomwollen

Back to Top
karo View Drop Down
Newbie
Newbie


Joined: 13 July 2007
Location: Germany
Status: Offline
Points: 5
Direct Link To This Post Posted: 25 March 2009 at 8:20am
Hi Sven,

you`re absolutely right. Embarrassed
I removed it from the Post and have corrected my source (and the old script which is the eveldoer) Smile

The advice to the Current User Entry (HKCU) is good too. I solved it by putting a script to the 'All Users\Startup' which is called once a Time and/or by putting a script into the 'Default User\Startup' for peoples who are logged in the first time.
 
For All of you out there who wish to implement this: At the End of this post is a sample Batch which is for calling the AUTOEULA routine once a time.
In Line 2 is the Path to the Text File which contains the Registry Entries (sysinternals_tools.txt)
The essential lines are Line 5 and 6, one of them must be remarked (REM). Put the Batch to a Folder where all users have read permissions and link it from the 'ALL USERS'  STARTUP/AUTOSTART or copy it directly to this place.
When new tools are released you must change the 'sysinternals_tools.txt' and remark (REM) the Line 5 and remove the REM from Line 6. On the next change vice versa and so on. So the Batch is running once a time when new Utils are released. Simple, but working. Smile
The Line 7 and 8 are for the first call, when none of the '%USERPROFILE%\BGINFO\SysIntI...' Directories exist.
The Last line can be remark if you which to close the batch immediatly

Bye

Karo

CONTENT of AUTOEULA.CMD

@echo off
SET TOOLSPATH=C:\Progra~1\BGINFO
REM FOR UPDATE DELETE THE REMARK FROM ONE OF THE NEXT TWO LINES
REM AND REMARK THE OTHER (LOOK WHAT SysIntIRegDone-DIRECTORY IS CURRENT)
if exist "%USERPROFILE%\BGINFO\SysIntIRegDone" goto SysIntIRegDone2
rem if exist "%USERPROFILE%\BGINFO\SysIntIRegDone2" goto SysIntIRegDone
MD "%USERPROFILE%\BGINFO\SysIntIRegDone"
MD "%USERPROFILE%\BGINFO\SysIntIRegDone2"
goto done


:SysIntIRegDone
REM MD "%USERPROFILE%\BGINFO\SysIntIRegDone"
RD /S /Q "%USERPROFILE%\BGINFO\SysIntIRegDone2"
MD "%USERPROFILE%\BGINFO\SysIntIRegDone"

for /f "tokens=* delims=" %%i in (%TOOLSPATH%\sysinternals_tools.txt) do (
ECHO set %%i to EulaAccepted Value 1
REG ADD "HKCU\Software\Sysinternals\%%i" /v EulaAccepted /t REG_DWORD /d 1 /f
)

goto done


:SysIntIRegDone2
REM MD "%USERPROFILE%\BGINFO\SysIntIRegDone"
RD /S /Q "%USERPROFILE%\BGINFO\SysIntIRegDone"
MD "%USERPROFILE%\BGINFO\SysIntIRegDone2"

for /f "tokens=* delims=" %%i in (%TOOLSPATH%\sysinternals_tools.txt) do (
ECHO set %%i to EulaAccepted Value 1
REG ADD "HKCU\Software\Sysinternals\%%i" /v EulaAccepted /t REG_DWORD /d 1 /f
)

goto done


:DONE
CLS
ECHO REGISTER SYSINTERNALs TOOLS (Microsoft) ... done ...
for /L %%i in (0,1,0) do @echo. & ping -n 3 127.0.0.1>nul




Edited by karo - 25 March 2009 at 9:37am
Back to Top
paulden View Drop Down
Newbie
Newbie
Avatar

Joined: 29 March 2009
Location: Wellington, NZ
Status: Offline
Points: 4
Direct Link To This Post Posted: 29 March 2009 at 7:35pm
You can create reg files to insert the one value required eg
 
Either create with a text editor or save the section out with regedit.  Then double click or command line run the file anywhare and the EULA is accepted.
 
--- pskill.reg ---
 
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Sysinternals\PsKill]
"EulaAccepted"=dword:00000001
 
-------------------
Back to Top
itdaddy View Drop Down
Newbie
Newbie
Avatar

Joined: 17 December 2008
Location: United States
Status: Offline
Points: 3
Direct Link To This Post Posted: 08 July 2009 at 2:55pm
The way I solved this issue was to run my scripts as -s (system) if you do that you do not get the EULA prompt. I know this isn't a script or code wizardry technique but it does solve the problem. If the system runs the script then EULA doesnt even get prompted..


Back to Top
molotov View Drop Down
Moderator Group
Moderator Group
Avatar

Joined: 04 October 2006
Status: Offline
Points: 17516
Direct Link To This Post Posted: 08 July 2009 at 2:57pm
Hi Robert,

Quote If the system runs the script then EULA doesnt even get prompted..
That's incorrect.  All users will be presented with the EULA dialog, unless the /accepteula switch is specified on the command-line (for tools that support the switch), or the EULA has already been accepted.  For the SYSTEM account, EULA acceptance is stored in [HKEY_USERS\.DEFAULT\Software\Sysinternals\<toolname>\EulaAccepted].

Edited by molotov - 08 July 2009 at 2:57pm
Daily affirmation:
net helpmsg 4006
Back to Top
Ebivens View Drop Down
Newbie
Newbie


Joined: 10 August 2009
Location: Richmond, Va
Status: Offline
Points: 2
Direct Link To This Post Posted: 10 August 2009 at 8:20pm
This has been bugging me for a while now, but I think I have been able to cobble together a reproducable solution that is not too bad.
 
What worked for me was to take the following steps:
1.  Create a file with all the Sysinternals EULA entries in it.  The easiest way to do this is to run every blasted one of them and export them into a .REG file.  I will refer to mine as "si.reg".
2. On the remote machine you want to touch, make a folder (I'll call it "c:\SI" here) to put all the Sysinternals utilities, plus the "si.reg" file.
3. At a DOS window, run "<path>\psexec -u <domain>\<userid> -p <password> \\<target> cmd.exe"  This will give you a command prompt on the target machine within your DOS window.
4. At the command prompt, CD to c:\SI (to make it easy), and run "regedit -s si.reg".  This should be stored into the  HKU\.DEFAULT key of the registry, but won't after the first run.  For some reason, this takes two (or sometimes three) runs of the same command to "stick".  I monitored it remotely with regedit, refreshed after the first run, and it did not show.  It did after the second (or sometimes even the third) time.  It has consistently done this on dozens of machines.  I don't know why, but it works, so I'll take it (but if you figure it out, please post it.)
4. You can now run any of the command line programs in the SI suite.  Don't kick of the interactive ones or you will be hung (since you did not specify the "-i" parm on the psexec for the command prompt).
 
Note that if you do specify "-i" with the command prompt, the user on the other end will get a blank DOS window and may close it on you, thus breaking your session.
 
I have tried batching it, but it behaves too inconsistently to make it work.
 
Please post your experiences with this approach, or if you can improve on it.
 
 
Back to Top
SvenBomwollen View Drop Down
Senior Member
Senior Member


Joined: 29 August 2008
Location: Germany
Status: Offline
Points: 1630
Direct Link To This Post Posted: 11 August 2009 at 10:22am
Hello, Ebivens.

Please, note that the EulaAccepted registry values are user specific settings. This means that each Sysinternals programme will look for its EulaAccepted value inside the registry subtree HKCU.

As a consequence, importing all possible EulaAccepted values into the .default user's registry hive, will only help users who logon to this machine for the very first time (plus the user SYSTEM) after the import.

More or less perfect approaches to importing the EulaAccepted values into a user's registry hive have been posted on pages 7 and 8 of this thread. So why are you trying to re-invent the wheel?

Kind regards,
SvenBomwollen

Back to Top
Ebivens View Drop Down
Newbie
Newbie


Joined: 10 August 2009
Location: Richmond, Va
Status: Offline
Points: 2
Direct Link To This Post Posted: 11 August 2009 at 8:20pm
Because the wheel doesn't roll.  The fact that it is installing the registry entries into HKU\.DEFAULT is exactly the point.  I was connecting with my domain user credentials, and did not include the parameter to not load my profile, which means it should have mounted the hive for my user SID under HKU, which it did not.  My experience has been that PSEXEC behaves quite erratically when working with the remote machine's registry, e.g. having to run the Regedit -s command several times before the entries "stick".  I am not trying to create problems here, just reporting what I have seen.
 
None the less, I worked around the whole mess by writing an AutoIt! executable that I run on the remote machine.  It sits in the background waiting for up to 5 minutes for one of these silly license windows to pop up & presses the "Accept" button on it.  I just kick it off and don't worry about those windows.  It even handles "hidden" windows when I do not use the "-i" parm in PSEXEC, so the user sees nothing.
 
Thanks for the kind words, though.......
Back to Top
SvenBomwollen View Drop Down
Senior Member
Senior Member


Joined: 29 August 2008
Location: Germany
Status: Offline
Points: 1630
Direct Link To This Post Posted: 12 August 2009 at 12:05am

Hello, Ebivens.

Personally, I have not experienced any problem when importing .REG files remote using psexec (v1.72 and v1.94). (1)
I know, however, that there have been reports where users complained that psexec did not load the remote user's registry hive (ntuser.dat) reliably in various scenarios. As stated before, personally I cannot remember having experienced this problem.

About the Accept EULA dialogues:

For the graphical programmes accepting the EULA is only a one-time action. And these programmes are interactive programmes anyway which you do not use inside scripts, like Process Explorer, Process Monitor, Autoruns or TcpView. So there is not much benefit in pre-creating the EulaAccepted registry entries.

With respect to the console programmes: Most of them do accept the -accepteula commandline option which will create the EulaAccepted value and set it to 0x01.  So there is no real need of creating the EulaAccepted registry entries beforehand. Simply include the -accepteula commandline option in your scripts.

Only those console programmes which have not been updated after November 2006 will not accept the -accepteula commandline option. Only for these console programmes creating the EulaAccepted registry entries before launching them for the first time will bring any real benefit.

Yet, the only console applications which fall into this category and which are used frequently here are pendmoves and listdlls. I admit that this is only my personal usage which need not be typical at all.

So I wonder whether it is really worth investing too much time into fixing this small EulaAccepted problem. Obviously, it is up to you to decide. - As you created your own workaround using AutoIt, your point of view and your decision are clear. Smile

Kind regards,
SvenBomwollen
--
(1)  The local machines were always Windows XP SP1, later on SP2, 32bit.
The target machine were always Windows 2000 SP4, 32bit, and Windows 2003 servers, 32bit/64bit.
The fact that psexec v1.96 has not been mentioned simply means that remote registry imports have not been performed for quite a while now.




Edited by SvenBomwollen - 12 August 2009 at 12:08am
Back to Top
bhjodokast View Drop Down
Newbie
Newbie


Joined: 08 February 2006
Status: Offline
Points: 17
Direct Link To This Post Posted: 29 October 2009 at 3:07pm
Interesting flame post there SvenBomwollen.  your point of view and your decision are clear Cry

In the real world, nobody addresses 'the EULA'.  In the real world, there is a bug in these console programs where a graphical prompt is shown (which is ridiculous, considering they were console applications for the longest time).

In the real world, to get rid of the graphical prompt and return the application to 'console' mode, you add the -accepteula to your prompt.

It's a bug that can be turned off with -accepteula.  That's how it works and how it's viewed in the real world.

Lawyers of course will disagree.  However as a system administrator, I can't allow programs like this to leave garbage in the registry about the EULA.

So after running these console tools, I promptly delete the registry trash that really isn't necessary... since my scripts all have the -accepteula, I can delete the registry entries afterward.

Around and around we go.  Interesting, but somewhat peculiar situation.
Back to Top
 Post Reply Post Reply Page  <1 78910>
  Share Topic   

Forum Jump Forum Permissions View Drop Down