jim
2013-Apr-03 15:39 UTC
[Puppet Users] Windows Remote Desktop Services Custom Facts HELP, please
Hello all,
I recently posted a question about a Windows Feature Remote Desktop
Services (formaly known as Terminal Services)
https://groups.google.com/forum/?fromgroups=#!searchin/puppet-users/remote$20desktop/puppet-users/q71sP3TZZXQ/ymuAMqX5OTsJ
the basic problem is
fresh installed version of windows 2008 r2
use puppet to install remote desktop services
requires reboot
when server comes back online, its in protected mode (so no one can install
applications without issuing the following command "change user /install)
puppet agent fails to run
what I discovered was, once remote desktop services was installed
if you run
change user /install
then run puppet agent it runs fine
then exit out of install mode
change user /execute
everything works how it should.
so i''ve tried to come up with something, but its not working can anyone
help or advice
1.) create custom fact, to see if TerminalServer service is running equal
true
Facter.add("remote_desktop") do
setcode do
Facter::Util::Resolution.exec(''C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
-ExecutionPolicy remotesigned -File
C:\installs\Scripts\remote_desktop_installed_fact.ps1'')
end
end
1.1) Powershell Script remote_desktop_installed_fact.ps1
Function remote-desktop()
{
$Service=Get-Service TermService -ComputerName localhost
if ($Service.status -eq "Running")
{
write-host "true"
}
else
{
Write-host "false"
}
}
remote-desktop
Then i thought the following would work but it doesn''t, can you please
help
if $::remote_desktop == true {
exec { ''change_user_install'':
command => ''C:\Windows\System32\cmd.exe /c "change user
/install"'',
}->
exec { ''remote_desktop_services_install'':
command =>
''C:/Windows\System32\WindowsPowerShell\v1.0\powershell.exe
-executionpolicy remotesigned -file
C:\Installs\Scripts\remote_desktop_services.ps1'',
creates =>
''c:/Installs/Puppet_Confirmation/Remote_Desktop_Services_Installed.txt'',
require => Class [ ''roles::base::dot_net'' ],
}->
exec { ''change_user_execute'':
command => ''C:\Windows\System32\cmd.exe /c "change user
/execute"'',
require => exec[''remote_desktop_services_install'']
}
}
else {
exec { ''remote_desktop_services_install_1'':
command =>
''C:/Windows\System32\WindowsPowerShell\v1.0\powershell.exe
-executionpolicy remotesigned -file
C:\Installs\Scripts\remote_desktop_services.ps1'',
creates =>
''c:/Installs/Puppet_Confirmation/Remote_Desktop_Services_Installed.txt'',
require => Class [ ''roles::base::dot_net'' ],
}
}}
Here is the powershellscript - remote_desktop_services.ps1
$strFileName = "c:\ProgramData\PuppetLabs\Puppet
Enterprise\var\state\puppetlockd"
Import-Module Servermanager
Add-WindowsFeature -Name RDS-RD-Server -IncludeAllSubFeature
Add-Content
"c:\Installs\Puppet_Confirmation\Remote_Desktop_Services_Installed.txt"
"Windows has finished installing Remote Desktop Services"
start-sleep -s 60
IF (Test-Path $strFileName){
Remove-Item $strFileName }
shutdown /r /t 60
Could it be becuase i''ve used
creates =>
''c:/Installs/Puppet_Confirmation/Remote_Desktop_Services_Installed.txt'',
on both scripts and one blocks out the other from running
hope this make sense
regards
James
--
You received this message because you are subscribed to the Google Groups
"Puppet Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to puppet-users+unsubscribe@googlegroups.com.
To post to this group, send email to puppet-users@googlegroups.com.
Visit this group at http://groups.google.com/group/puppet-users?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.