Link to home
Start Free TrialLog in
Avatar of ITMystery
ITMystery

asked on

Can Windows Terminal Server run a GPO to install a program -- as a standard (non-admin) user?

This occurs on Windows 2003 Servers, with the Terminal Services role activated, in a corporate environment.

The following error occurs:
This installation is forbidden by system policy.  Contact your system administrator.

The error occurs when a non-administrator runs an MSI package on any of our Windows 2003 Terminal Servers.

The error does NOT occur when an administrator runs the MSI package.

The error does NOT occur on workstations (XP, Vista, Win7-32, Win7-64) for any user.

More Detail:
The Group Policy containing a software installation package (MSI) successfully installs a program shortcut, but when the shortcut is clicked, the above error occurs.

The GPO has "Computer Configuration Settings" disabled - so it can only apply "User Configuration Settings".

The MSI places three files (.exe .ico .ini) in the user's "AppData" folder (within their roaming profile) plus a program shortcut pointing to the .exe - no other files, no registry entries.

The shortcut gets installed, the other 3 files do not get installed.

The error occurs when the shortcut is clicked.
Avatar of Irwin W.
Irwin W.
Flag of Canada image

Non admin users should not be installing apps and admins should not be installing apps when the server is in execute mode on terminal servers.

Please put your terminal server into install mode prior to installation of additional apps.

Also, youncould give your non admins elevated permissions to install apps, nutni wouldn't do this.
Avatar of ITMystery
ITMystery

ASKER

The user was unable to do "Change User /Install" (it complains that only admins can do that).
So I did "Change User /Install" in an admin, then had the user logon. Same problem,
 - install MSI starts up
 - MSI verifies and/or installs the shortcut in the user's "Programs" profile folder
 - MSI does NOT install the 3 files it should in the user's "AppData" folder
 - then the error: "Installation Forbidden by System Policy" pops up
And, the MSI still runs fine as the administrator, or on any workstation the GPO is applied to
That's right only an admin can perform that action.  If the user is NOT part of the admin group, such administrative action cannot and should not be performed by a non admin user.
Is there a Local Security Policy setting that enforces this restriction on regular users?  Is there a GPO setting I can use to override it?  Note: since the MSI only places files in the AppData folder of the user's profile, no harm can come to the terminal server.
The problem s that if you allow it for one, you allow it for all installers the user can run. Just be warned!!


Enter gpedit.msc at the command line.
Enable elevated privileges for the computer.
Click on Computer Configuration –> Administrative Templates –>Windows Components –> Windows Installer.
Enable the following Group Policy settings:
Always install with elevated privileges (mandatory)
Enable user control over installs (mandatory)
Disable Windows Installer. Then set it to Never.
Enable user to patch elevated products (optional)
Enable user to use media source while elevated (optional)
Enable user to browse for source while elevated (optional for new installations, mandatory for fix pack upgrades)
Enable elevated privileges for the user account that will be performing the installation.
Click on User Configuration –> Administrative Templates –>Windows Components –> Windows Installer.
Enter the following Group Policy settings:
Enable: Always install with elevated privileges (mandatory)
Thanks so much for getting me into the correct area.  I did each setting you explained, and now I get a different error message saying:
Only administrators have permission to add, remove, or configure server software during a Terminal services remote session.  If you want to install or configure software on the server, contact your network administrator.
You can't do it thru a remote session the server needs to be in admin mode.

The only way our users use the Terminal Servers is through remote desktop connections (RDP).  Having a GPO linked to the Users OU in our Active Directory (so they could run the program whether they are on a workstation or a terminal server) would be so convenient - especially since the program only requires an .ico, .ini, .exe (all placed in the user's AppData folder so there are no UAC issues with C:\Program Files in Windows 7). This seems so simple, but it's now sounding impossible!
ASKER CERTIFIED SOLUTION
Avatar of Irwin W.
Irwin W.
Flag of Canada image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Fantastic idea - thanks for thinking outside the box!
I'll experiment with it and reply tomorrow with the results.
Your thinking outside the box has served me well.  Wrote a nice little VB Script that I can call from a login script.  It works perfectly on WinXP, WinVista, Win7-32, Win7-64, Windows 2003 Terminal Server, Windows 2008 Terminal Server - and that's all I need!  I really appreciate your getting me out of the corner I was banging my head in...