Tuesday, February 12, 2008

Programming, RunAsAdminExplorer Shim v2.0.0.Beta9

We are happy to announce the new beta which contains a lot of new features and bug fixes, please see detailed list below.

IMPORTANT!!! This release has a new installer which currently unable to detect and cleanup installations of RAA prior to Beta8!
Please REMOVE any previous version of the software prior to Beta8!
Sorry but the new beta still has not been fully translated to all the supported languages, except Hungarian, Catalan and Spanish.

*** We are looking for translators to the languages supported earlier yet and an English corrector also! ***

Enjoy!

    Here are the summary of changes made:

    -----------------------------------------
    v 2.0.0.Beta9
    -----------------------------------------
    Global changes
    - Added FileHash.vbs to Samples and RunAsAdminPolicy.pdf to Doc installation directories. Usage of FileHash.vbs: cscript newhash.vbs "file1ToBeHashed" "file2ToBeHashed" "fileNToBeHashed"
    - Added Turkish translation of setup, thanks to Muhammat! To compile innosetup you need Turkish translation file that you can get from here http://www.jrsoftware.org/files/istrans/
    - Added support of w2k sp4.
    Known limitations are on that OS:
    - Currently only Normal and Unrestricted levels supported.

    In Explorer.exe
    - Command dialog is now runs modeless totally.
    Note: Earlier modal behavior caused the following problems:
    - A stop dialog at runtime to close the open command dialog(s) before exit
    - Running a file from the context menu was delayed until the command dialog(s) not closed.
    - Drag and drop onto our tray icon blocked until the command dialog(s) not closed.
    If you still find problem like mentioned above please sign us.
    Attention! Although these limitations are eliminated by the new modless dialog but when you drop a file onto the tray icon and choosed the command dialog be opened in that case and also you have opened command dialog at that time, than the file will be appended to the 'Run' line of the dialog.
    - Drag and Drop feature on our tray icon and command dialog is enhanced. Also added balloon tooltip when D&D started or when has other tipp about the D&D process (currently when any of the run command dialogs are open). You can disable this balloon tooltip window at 'Options\Drag options\Show balloon tooltips'.
    - BUG FIX: #1686842 fixed, Tasks run as normal user now have shutdown and undock privileges in their token. The new self made token now works (at least we hope it;) on every supported OSes. Also that token made possible to support w2k also.
    - FEATURE REQUEST IMPLEMENTED: #139070, the task manager will start by the configured hotkey at a restriction level depending on policy setting.
    - Similar to the solution of task #127552, the file have to be run from our command dialog now also can be start with options 'Always run as' ands/or 'Always run with priority'. Note: Currently 'Always run with priority' is enabled only if the targeted file is an executable (.com;.exe)!
    - BUG FIX: #1758345 fixed, RAA was unable to start windows shell as normal user if local policy have been set 'System objects: Default owner for objects created by members of the Administrators group' to 'Administrators group'. The normal user token now has a deafult DACL contains full rights for Admins, System and the Logon ID Sid.
    - BUG FIX: #1599717 fixed.
    - BUG FIX: #1415310 fixed, RAA now updates it's environment variables from the actual user and system environment variables in case of runtime changes occurred.
    - Added built in confirmation option of unrestricted file start and/or RAA's policy modification. The implementation of the confirmation dialog is not perfect yet. TODO: The confirmation dialog can be closed by any window that become active. This must be corrected, only SHIFT+CTRL+ESC (task manager), CTRL+ALT+DEL (login window or task manager) or CTRL+ESC (start menu) should close our dialog.

    In RAAShellContextMenu
    - TASK FINISHED: #131949. You can add rule to RAA Policy for a given file based on it's path or hash to get the file always be started at a given startup restriction level. Simply use any of the 'Always run as' menu items from the context menu.
    - TASK FINISHED: #127552. Added implementation of priority policy. You can control startup priority of a given file just like for startup level, simply use any of the 'Always run with priority' menu items from the context menu. Note: Currently only executable files (.com;.exe) can be added to the policy as 'Always run with priority' rule this way!
    - Added new option to let paths to be copied automatically surrounded by double quotes. You can select the behavior this way of the CTRL key held down during the copy.
    - BUG 1491386 fixed: The 'New Folder' button now works fine in the Save (as) dialogs.

    In RAACommCtrls
    - FEATURE REQUEST IMPLEMENTED: #139070, the task manager will start by the configured hotkey at a restriction level depending on policy setting.
    - TASK FINISHED: #139069. The taskmanager started by winlogon under NT AUTHORITY\SYSTEM acc now disabled if required.
    - TASK FINISHED: #139068. The two old property priority-realtime-allow and priority-high-restrict finally not removed from the policy, they have global restriction meaning from now. The policy settings has priority over the user settings therefore if the policy restricts the priority level the user settings can add a more restrictive rule only. The state of the controls representing the user settings of the two startup priority restriction level now set also corresponding to the restriction level set in the policy. It means they can appear in disabled state or can be hidden depending on the global restriction level of the policy and depending on the state of the user settings. f.e. If the policy has priority-realtime-allow="0" priority-high-restrict="0" level setting then the user can only set the 'Priority high restricted' option and would not see the realtime priority level in the context menu or the command dialog of RAA. As earlier priority-realtime-allow="1" priority-high-restrict="1" means no restriction on level 'high', priority-realtime-allow has priority over priority-high-restrict if enabled, this is true in the options dialog also, which also signed by the state of the corresponding controls.
    - TASK FINISHED: #139097. Load and Save settings functions now handles admin options separately reads and stores admin settings under HKLM\SOFTWARE\RunAsAdmin\AdminSettings\%COMPUTERDOMAIN%\%USERNAME%. User settings stored at HKCU\SOFTWARE\RunAsAdmin\UserSettings. Any admin option presented will overwrites the usersettings at Load time and will be saved separately under the HKLM key at Save time. Via this new feature finally we can perfectly control access of admin options of RAA and protect settings of file startup with unrestricted level. The new sample at https://sourceforge.net/forum/forum.php?thread_id=1734421&forum_id=543633 shows you how to enable access of admin options and 'Run As Unrestricted' possibilities from menus and dialogs for specified users only.
    - TASK IMPLEMENTED: #127557 80% ready, Now you can choose privilege info to be shown in shell windows also. Actually you can select text to be shown just like for normal windows earlier (the same controls used for that) and can select if you'd like to change the colors of the shell window with admin privilege. The text would be ADMIN and NONADMIN (for the English version, your translator can change it). The colors itself now could not be customized from the program, turned this option on the admin shell background color changes to Bright White and the text color to Light Red. The non admin shell keeps the default color settings. If you'd like to change colors to a custom value please see: http://tinyurl.com/398hw5. RAA implements this feature very similar, just check the HKCU\SOFTWARE\Microsoft\Command Processor\AutoRun Value and the help of the 'color' command. Our shell command privilege info not set directly in the autoruns reg key, but using now 2 separated command files AutoRuns.cmd and RAAAutoRuns.cmd. They are stored at %APPDATA%\RunAsAdmin\Command Processor\. The first one is specified in autoruns and calls the other. Also merged into the first file at creation the previously defined autoruns if any. This way the user can henceforward customise autoruns and also RAA can call the required commands to support privilege caption info (till the user do not remove our reference from the first file) Enabling controls of the shell privilege info setting enhanced. Now you can not deselect 'Show text' if 'Show in shell window also' selected and 'Change shell window color' not selected, because that setting would not have affect on the shell window (neither caption nor color would have been changed). Also if both 'Show text', 'Show in shell window also' and 'Change shell window color' were deselected turning on 'Show in shell window also' will turn on 'Change shell window color' automatically.Currently only the built in windows shell modified, to get the modified a custom shell f.e. PowerShell please see http://tinyurl.com/2yzg23. Thanks for Aaron Margosis and other contributors write on his blog page for the FSUTIL trick.
    - Added new option to let paths to be copied automatically surrounded by double quotes. You can select the behavior this way of the CTRL key held down during the copy.
    - Added new option to let the user control which privileged action be confirmed. (Unrestricted file run, RAA's policy modification...)

    In Policy
    - Added handling of the new policy attribute allow-priority-override, which is by defult enabled. If allow-priority-override false then the priority policy checking functions does not let it's allowed priority return value to be set higher than defined by the priority-realtime-allow and priority-high-restrict attributes even if the examined subject has a priority rule with higher value allowed.
    - TASK FINISHED: #127552. Added implementation of priority policy. You can control startup priority just like startup level, just use 'priorities' element like 'levels' f.e.

    <priorities> 
    <belownormal> 
    <record groupName="AlwaysBelowNormalPriority"/> 
    </belownormal> 
    </priorities> 

    Note: If allow-priority-override is "0" in RAA's policy the 'priorities' elements still could not override the global priority-realtime-allow and priority-high-restrict level settings of policy. Any higher value than the allowed by priority-realtime-allow and priority-high-restrict fall back to that allowed maximum level.
    Note: The current implementation of this feature might cause a bit overall system performance overhead (because of periodical registry and file system reading) due to our policy not yet cached!
    You can turn off this feature at "Options\Performance options\Adjust all listed in policy"
    - Added two new signal element 'always-priority-rule' and 'always-level-rule' to handle the two corresponding policy modification requests.

Thursday, May 03, 2007

Programming, RunAsAdminExplorer Shim v2.0.0.Beta8

Finally we release the new beta which mainly contains bug fixes, but has some new features also please see detailed list below.

IMPORTANT!!! This release has a new installer which currently unable to detect previous installations of RAA! Please REMOVE any previous version of the software prior to install the new Beta8!

    Changes in v 2.0.0.Beta8

    Global changes
    - TASK FINISHED: #127580, solution and projects moved to MS Visual Studio 2005
    - Setup changed to Inno Setup. http://www.jrsoftware.org/isinfo.php You can use Quick Start Pack from http://www.jrsoftware.org/isdl.php#qsp The Inno Setup QuickStart Pack includes additional third-party add-ons such as the ISTool script editor and Inno Setup Preprocessor.
    - FEATURE REQUEST IMPLEMENTED: #1588941, RAA can be setup and run under Vista now.
    Current known limitations under vista are :
    - Privilege caption info not supported yet.
    - Beta 8 introduce a fix for 'Could not shutdown from the shell' problem. That fix is not working on Vista, so we have to use currently the original win API SaferCreateLevel to produce the normal user token, which has no shutdown privilege, so under vista you still have to use a shutdown tool.

    In Explorer.exe
    - Added support of recreation of tray status bar icon if the windows shell has been restarted.
    - Added handling of unnecessary single click events in case of a double click on our tray icon
    - BUG FIX: Do not know why but STATIC::WM_RUNASADMIM_MENU triggered in case of click events on the status area not owned by any tray icons?!!?!?!? (that causing RAA menus appear clicking on not owned tray icon area). Temporaly fix can be removed if found the reason.
    - BUG FIX: Main (CExplorerModule) message loop now handles modeless COptionsDialog and CAboutDialog acceleration messages.
    - BUG FIX: #1544086 fixed, CommandLineToArgvW has a special interpretation of backslash characters when they are followed by a quotation mark character (")
    - BUG FIX: #1500208 fixed, frequent calls of LoadImage without using LR_SHARED flag in ChangeTrayIcon eat GDI resources, later we can make a TTrayIcon class that would keep tracked the loaded resources.
    - Added silent (un)install option "-S"
    - BUG FIX: #1686842 fixed, Tasks run as normal user now have shutdown and undock privileges in their token.
    - BUG FIX: Options possibly changed at startup now saved correctly at RAA taskbar window creation.
    - Added new option WarnOptions::WarnOnUnsufficientPrivilege. If set RAA warns the user at startup about possibly insufficient privileges he/she owns and asks for if the warning must be shown at next time also. Stores the result of the answer as the newly added options. If the user has no enough privilege (using RAA without admin privilege) our new ComputeNormalTokenFromCurrent func might fail. In that case we are using the original SaferCreateLevel function to create the normal user token.
    - Added GetFullPathName bug workaround, the virtual folder path names produced by the function call, like ::\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\::{21EC2020-3AEA-1069-A2DD-08002B30309D}\::{E211B736-43FD-11D1-9EFB-0000F8757FCD} of 'Scanners and cameras' are could not be opened by the shell, the first '\' at the beginning of the directory name part is brakes the shellparser :-O

    In RunAsAdminHook
    - BUG FIX: Fixed annoying tray icon drag&drop bug mouse release events inside the TrayNotifyWindow did not triggered WM_MOUSELEAVE that is used to handle the end of a d&d operation in RAA explorer.
    - BUG FIX: In LowLevelMouseProc detection of WM_MOUSEMOVE, WM_MOUSELEAVE has run only when NoClickOnDragOverShowHide was not set. :$
    - TASK IMPLEMENTED: #137520 50% ready, offsets of privilege caption info can now be set in RAA OptionDlg.

    In Policy.exe
    - TASK FINISHED: #132820 implemented, Policy check scripts now can examine the parameters passed with the file to be started. Command parameters could be accessed from the policy script by using "context" named variable. Context is an array where the first element of the array (index 0) contain array of parameters, and the second element of the array contains XML node of the policy that fired the rule. NOTE: in some cases the first element of context will be VT_EMPTY.

    In Launcher.exe
    - BUG FIX: ParseCommandLine handled incorrectly the case when only 4 command line params were given with /p

    In RAACommCtrls
    - BUG FIX: When restoring dialog control states from the saved options IDC_SHOW_HIDDEN_TASKBAR_ICONS and IDC_SHOW_CMDDLG_ON_CTRLDOWN were exchanged :$
    - TASK IMPLEMENTED: #137520 50% ready, offsets of privilege caption info can now be set in RAA OptionDlg.
    - Added new option WarnOptions::WarnOnUnsufficientPrivilege in RAA OptionDlg.

    In RAAShellContextMenu
    - Added possibility of unix style, slash separated path copy to the 'Copy path to clipboard' context menu. If Shift held down the path copied in unix style. Of course you can combine the Ctrl and Shift keys to get the path in unix style and quoted at once.
    - BUG FIX: #1686842 fixed, Tasks started as normal user now have shutdown and undock privileges in their token.

    In ExecuteHook
    - Added handling of filenames without path and extension. We try to find runable files in the PATH with the given extension or extensions determined by PATHEXT and transform the unqualified filename to its fully qualified peer. Without that f.e. simple commands run from Win+R shell run dialog were not effected by the Policy.
    - Project node renamed to RAAExecuteHook

Monday, May 22, 2006

Programming, RunAsAdminExplorer Shim v2.0.0.Beta7

Bugfixes and some new interesting feature. Enjoy!

    v 2.0.0.Beta7
    In RAACommCtrl
    - BUG FIX: #1455711 temporaly fix: Dialog items reordered and replaced to fit into a 800x600 box. TODO: we have to make the dialog tabbed.
    - BUG FIX: #1455948 fixed, added new option PerfomanceOptions::AllowPriorityAdjust via RAA could maintain priority of itself and Windows Explorer.
    - BUG FIX: #1475406 fixed, added new option PerformanceOptions::AllExplorerInstances to allow automatic priority adjust of every running Windows Explorer instances.
    - BUG FIX: Fixed bug and prevent OptionDialog to modify other user's settings. If OptionDialog called from (e.g. ShellExt of) impersonated processes the caller should not have to allow OptionDialog to be used (like RAAShellContextMenu does now)
    - Added modeless dialog implementation of About and Option dialog. It eliminates the problem of modal dialogs does not handle RAA global events, therefore a lot of functions failed while modalboxes run.
    - About dialog now has active url links.

    In Explorer.exe
    - BUG FIX: #1455948 fixed, added nem option to let RAA adjust task priorities and RAA and Windows Explorer priority adjusted according to the selected option, also added code to always adjust the priority in idle time if changed.
    - Changed LoadIcon calls to LoadImage to load the correct size icons.
    - Detection if explorer.exe started enhanced in IsExplorerAvailable(), pre test-creation of the tray icon added
    - BUG FIX: #1447062 fixed, First instance now set the instance guard event security DACL to let access and some control of the instance event from another process, even in a terminal server environment.
    - BUG FIX: Fixed bug and prevent OptionDialog to modify other user's settings. If OptionDialog called from (e.g. ShellExt of) impersonated processes the caller should not have to allow OptionDialog to be used (like RAAShellContextMenu does now)
    - BUG FIX: #1475406 fixed, added new option PerformanceOptions::AllExplorerInstances to allow automatic priority adjust of every running Windows Explorer instances.
    - Still did not used the correct icon sizes for the big icon. :$
    - Added modeless dialog implementation of About and Option dialog. It eliminates the problem of modal dialogs does not handle RAA global events, therefore a lot of functions failed while modalboxes run.
    TODO: we still have one modal dialog Command Dialog!!! We have to replace it with a modeless version!!!
    - Removed some temporaly limitations after the modeless correction made.

    In RAAShellContextMenu
    - BUG FIX #1447065 fixed, Changed LoadIcon calls to LoadImage to load the correct size icons.

    In RunAsAdminHook
    - BUG FIX: - Using a new hook and message (WM_RAA_PRIVINFO_DRAW) to repaint our priv caption, not drawing directly in CallWndRetProc to let some time windows to process the paint of the original window caption first. It fix the bug that could be detected f.e. in windows explorer when just simply selected a different folder in the browser tree and priv caption has not been repainted.

Wednesday, March 08, 2006

Programming, RunAsAdminExplorer Shim

The project source has been moved to SVN, thanks to the SFNet team for the huge work they made on SVN support!!!
You can find the source at https://svn.sourceforge.net/svnroot/runasadmin in the feature. The lates beta6 branch is here https://svn.sourceforge.net/svnroot/runasadmin/branches/Beta6

CVS access now is read only and will be turned off completely in a few weeks.

Thursday, February 23, 2006

Programming, RunAsAdminExplorer Shim v2.0.0.Beta6

So the new beta release is here. We have made a lot of bug fixes and improvements, please check the change log below.

    v 2.0.0.Beta6
    Global changes
    - Added privileg level display in window captions and customizable option of it in OptionsDialog (a feature similar to Keith Brown's and Aaron Margosis's PrivBar. Thanks for both of them for the idea and the sample code!)
    - BUG FIX: Corrected memory leak (https://sourceforge.net/tracker/index.php?func=detail&aid=1371217&group_id=127612&atid=708978)
    - Added multiple changes to improve C++ compatibility and to resolve possible issues reported by code analyze, boundary checking and code coverage

    In Explorer.exe
    - BUG FIX: Fixed idle time processing BUG. idleCount not incremented :(
    - BUG FIX: Multiple open CCommandDialog prevented to stop RAA, now only one instance can exists of every run level type of Command Dialog, and the user must close each of them before exit
    - Added privileg caption support
    - szcwAppInstanceEventName moved to RAACommon to let help detection of running RAA Explorer in other modules
    - Added separate thread in CExplorerModule to send 'asynchronous' broadcast messages about RAA config changes and if privileg caption update required
    - Handling of HotKey changes made a bit more generalized (TODO: later must be enchance much more)
    - Localization added to browse (file open) dialog opened up from command dialogs
    - BUG FIX: Command enabling did not run right at command dialog initialization
    - Added D&D support on tray icon if the d&d source uses the old DragAcceptFiles, WM_DROPFILES method. (like Total Commander did)
    - WORKAROUND: D&D disabled on taskbar icon if any of the command dialogs are open see detailes in CRunAsAdminMenuWindow::OnMouseDrag
    - WORKAROUND: D&D on tray icon temporaly disabled if any of the command dialogs are open, see detailed reason CRunAsAdminMenuWindow::OnMouseDrag
    - WORKAROUND: Options and About menu items are temporaly disabled if any command dialog is open, see detailed reason in there
    - Added hint text to command and startup dialog items
    - The tray icon changes when the cursor enters in the TrayNotifyWindow during a D&D, it helps to find the RAA tray icon what can be a bit hard when there are a lot of icons in the tray
    - WORKAROUND: Still not able to change the cursor in both D&D version so simply changing the tray icon when D&D is forbidden
    - Starting another instance of RAA would be signaled as balloon tooltip on the tray icon
    - WORKAROUND: added of the case when quick mouse move during D&D can cause missed tray icon change (the workaround a bit resource consuming, later must find the real reason of the problem)
    - Added new feature of starting D&Ded files on a given startup level immediately if certain modifier key held down.
    Used keys are:
    - ALT means start the dropped file as administrator
    - SHIFT means start the dropped file as normal user
    You can use the modifiers in a combination of CTRL (as earlier implemented to enable or disable command dialog before run) but can NOT use both ALT and SHIFT, that case modifiers will be ignored and the startup level selection menu will be shown just like on the normal way.
    - Tray icon menu got the same icon set as RAAShellContextMenu has.

    In RAACommCtrl
    - BUG FIX: Command enabling did not run right at options dialog initialization
    - Added hint text to Option Dialog items
    - BUG FIX: CUserParametersStruct aligned to byte boundary, that corrected the bug of the incorrectly read CUserParametersStruct data in the marshalled COM COptionsDialog object (f.e. in the RAAShellExtension)

    In RAAShellContextMenu
    - Menu items Options, Run As..., Run At Priority are enabled only if RAA Explorer is running

    In RunAsAdminHook
    - Tiny d&d enhancement, in case of WM_MOUSEMOVE when no button is held down a WM_MOUSELEAVE posted to leave a possible 'nothing' d&d
    - BUG FIX: Fixed annoying tray icon drag&drop bugs
    - the TrayNotifyWindow show-hide button auto click sent on every move event over it, now only the entering into the icon's area triggers button auto click.
    - the TrayNotifyWindow show-hide button auto click sent when it wasn't even visible.


Enjoy.

Wednesday, October 26, 2005

Programming, RunAsAdminExplorer Shim v2.0.0.Beta4

Because of two ugly bug in beta3 we decided to release a quick new beta4 version.
Bugs fixed:
- Registering ExecuteHook.dll failed on machines RAA have never installed prior.(thanks for Jared Parsons pointed out that)
- Startup option 'non interactive fully trusted' mode did not work
Sorry for the bugs!

Tuesday, October 18, 2005

Programming, RunAsAdminExplorer Shim v2.0.0.Beta3

RunAsAdminExplorerShim 2.0.0.Beta3 Released!
Get your copy if you are using your XP as administrator and you'd like to feel in safe!

Wednesday, January 19, 2005

Programming, RunAsAdminExplorer Shim

    HShellExtPack will be merged into Valery Pryamikov's great program RunAsAdminExplorer Shim. More info and download here.

Programming, HShellExtPack v0.3.0

    - added launcher.exe instead of calling cmd for starting not 'runable' files (files that extension not in PATHEXT environment variable)
    - there is no limitation on starting a file at a given priority level
    - enchanced error reporting in case of file starting error
    - program stays more responsive while launching (e.g a long lasting DDE start could lock the program for which the context menu shown, thank's for Valery Pryamikov for pointing out that using MsgWaitForMultipleObjects is much more effective)
    - used BCB5 for building

Programming, HPathCopyShExt v1.2.0

    - quoted path not always worked
    - used BCB5 for building