0

The scenario is installing Windows applications with Puppet on a Windows RDP server. I have Puppet install the applications without problem, but per the best practice, you're supposed to be in install mode when doing so, and switching back to execute mode.

I can do the following and it works:

package {'Adobe AIR':
  ensure          => '15.0.0.356',
  source          => '\\myserver\adobeair.exe',
  install_options => ['-silent', '-eulaAccepted'],
  require         => Exec['installmode'],
  before          => Exec['executemode'],
}

exec {'installmode':
  command => 'c:/Windows/System32/change.exe user /install',
}
exec {'executemode':
  command => 'c:/Windows/System32/change.exe user /execute',
}

What I'm trying to solve here is that everytime Puppet runs, it considers that something was done as the two Exec run each time regardless if the application really install or not.

I would like to silence the execution of Exec, or find a better way to switch between install and execute mode.

1
  • Interesting. Perhaps it is something that can be added to package as an enhancement. Feb 8, 2015 at 14:34

1 Answer 1

0

I created PUP-3979 for you.

This would need to run when a server is configured with Remote Desktop Services (whether executing install locally or from a remote session):

To ensure that an application is installed correctly to work in a multiuser environment, you must put the RD Session Host server into a special installation mode before you install the application on the RD Session Host server. This special installation mode ensures that the correct registry entries and .ini files that are needed to support running the application in a multiuser environment are created during the installation process.

From TechNet: Install Programs on an RD Session Host Server

4
  • I'm guessing that is the use case where this would be necessary. Feb 8, 2015 at 14:50
  • change.exe is to set the mode of the RDP server, whether your local admin or not. It triggers Windows to monitor for Registry changes that are not compatible with multi-user environment. See technet.microsoft.com/en-us/library/cc742815.aspx
    – ETL
    Feb 8, 2015 at 15:06
  • @ETL Quite a bit of editing to my answer there - lost an important discussion point. Does this apply to the locally running services and users? Or not? Puppet agent normally runs as a local service so we're trying to figure out if this is a necessary change or not. Feb 8, 2015 at 15:47
  • Nevermind, you commented on the ticket with that information. Which is YES, it doesn't matter if local or remote. Feb 8, 2015 at 15:53

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .