Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien
Toon posts:

SCCM 2012 R2 | OSD: nieuwe server in RDS collectie toevoegen

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik ben bezig met het automatiseren van de uitrol van remote desktop servers middels SCCM. Het doel is om RDSH servers opnieuw te kunnen uitrollen en automatisch de gehele configuratie uit te voeren tot op het punt dat deze gereed is voor productie.

Het gehele proces is geregeld. De server wordt geïnstalleerd, ip-configuratie wordt ingesteld, aanmelden in het domein, toevoegen aan een aantal domain security groups, installeren van de RDS role, drivers enzovoorts enzovoorts.

Waar ik al een poos mee aan het stoeien ben, maar niet uit kom is dat ik de server tijdens het OSD proces wil laten toevoegen aan de RDS collectie.

Het gaat uiteindelijk om de volgende 2 powershell commando's.

code:
1
2
3
Add-RDServer -server "fqdnvanrdshost.domein.nl" -Role RDS-RD-SERVER -ConnectionBroker "fqdnvanConnectionBroker.domein.nl"

Add-RDSessionHost -CollectionName "RDS Collection 1" -SessionHost "fqdnvanrdshost.domein.nl" -ConnectionBroker "fqdnvanConnectionBroker.domein.nl"


Bij wijze van test heb ik bovenstaande in een aparte task sequence aangemaakt zodat ik ze zelf via Software Center kan starten. Dit werkt prima, echter zodra ik ze in de OSD task sequence zet om het tijdens de deployment uit te voeren, dan werkt dit niet.

De foutmelding die ik krijg is "The RD Connection Broker is not available". Ik weet niet precies hoe OSD werkt, maar volgens mij loopt het hele installatie proces onder het local system account. Dat zou verklaren waarom het scriptje niet werkt tijdens OSD, maar wel later in Software Center.

Voor een command-line kan je "run-as" opgeven, maar met powershell lukt dit niet. Ik ben bezig geweest om de commando's in een invoke-command te zetten en vervolgens met -credential de juiste credentials te laden, maar de foutmelding blijft helaas hetzelfde. Ik weet zeker dat deze code goed is, want als ik verkeerde credentials gebruikt werkt het hele block niet.

Iemand tips? :?

[ Voor 1% gewijzigd door Verwijderd op 03-10-2014 16:29 . Reden: verduidelijking code ]


  • Zoetjuh
  • Registratie: Oktober 2001
  • Laatst online: 10-01-2024
Zou het kunnen dat het vanuit OSD nog niet werkt, maar dat je dat daarna inderdaad wel kan doen?
Is het een idee om een package te maken waarin je deze regels uitvoert en die als Required je Collection van nieuwe RDP-servers deployed?

Echt mooi is het niet..

Alternatief:
- Plaats het script op de TS-server via OSD (dat lukt wel)
- Creëer een scheduled task die dit script uitvoert*

* Zie: http://letitknow.wordpres...-task-by-using-powershell

Verwijderd

Topicstarter
ja dat zou inderdaad kunnen. Ik heb geprobeerd om $error te laten wegschrijven naar een log file. Als ik het scriptje uitvoer via Software Center krijg ik keurig een logfile, maar na een OSD wordt het logfile niet eens aangemaakt. Het lijkt er dus op dat de task niet eens wordt uitgevoerd.

Het zit dus mogelijk niet eens in de code, danwel in het uberhaupt uitvoeren van het script.

ik heb 2 opties geprobeerd:
command-line met administrator account in "run-as"
powershell -noprofile -executionpolicy bypass -command "&{ start-process powershell -ArgumentList '-noprofile -file C:\TEMP\RDS\ADD-RDSColl1.ps1' -verb RunAs}"

Powershell:
powershell -noprofile -executionpolicy bypass C:\TEMP\RDS\ADD-RDSColl1.ps1

Beiden maken geen logfile aan, terwijl dit wel werkt als ik het handmatig uitvoer of via Software Center uitvoer.

Ik heb in de taak ervoor eerst de data naar de lokale disk laten kopieren en die data staat er netjes. Het is dus ook niet dat de OSD vroegtijdig wordt afgebroken.

Worden deze acties ergens gelogd?

  • Zoetjuh
  • Registratie: Oktober 2001
  • Laatst online: 10-01-2024
Ben dan toch benieuwd of er een c:\_SMSTaskSequence map overblijft met een logfile er in?
Als je die door CMTrace heen haalt?

PS. Mocht je voor dit script ook al Windows/Office updates proberen te installeren en daardoor moet je machine twee keer herstarten, dan wil dit nog wel eens je TS afbreken (waardoor de map op de C: ook blijft staan). Je zou ook eens kunnen kijken om updates NIET te installeren als onderdeel van je TS.

Verwijderd

Topicstarter
Als ik het script met OSD middels een command-line laat uitvoeren zonder een "runas" account te specificeren, wordt het logfile wel aangemaakt. Dus SCCM start nu het script netjes.

Wat ik dus nu nogmaals aan het bekijken ben is of ik vanuit het .ps1 script zelf de credentials mee kan geven. Dat heeft het volgende test scriptje opgeleverd:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
$error.clear()
import-module RemoteDesktop
$name = Get-Content env:computername
$name = "$name.domein.nl"

$MyClearTextPassword=’wachtwoordxxx’
$MyUsernameDomain='domein.nl\adminaccount'

$SecurePassword=Convertto-SecureString –String $MyClearTextPassword –AsPlainText –force

$MyCredentials=New-object System.Management.Automation.PSCredential($MyUsernameDomain,$SecurePassword)
$RDSPSSession = New-PSSession -Credential $MyCredentials;   
Write-Host "This PowerShell command is running under the current users context, $env:userdomain\$env:username" -f magenta  >> c:\temp\add-to-cb.test.log

Invoke-Command -Session $RDSPSSession -ScriptBlock {
$error.clear()
import-module RemoteDesktop
$name = Get-Content env:computername
$name = "$name.domein.nl"
Write-Host "This PowerShell command is running under the current users context, $env:userdomain\$env:username" -f magenta  >> c:\temp\add-to-cb.test.log
Add-RDServer -server $name -Role RDS-RD-SERVER -ConnectionBroker "RDGW1.domein.nl"
$Error  | out-file c:\temp\Add-RDServer.log
$error.clear()
Write-Host "This PowerShell command is running under the current users context, $env:userdomain\$env:username" -f magenta  >> c:\temp\add-to-cb.test.log
Add-RDSessionHost -CollectionName "RDS Collection 1" -SessionHost $name -ConnectionBroker "RDGW1.domein.nl"
$Error  | out-file c:\temp\Add-RDSessionHost.log
#Write-Host "This PowerShell command is running under the current users context, $env:userdomain\$env:username" -f magenta  
}
#Write-Host "This PowerShell command is running under the current users context, $env:userdomain\$env:username" -f magenta  
Write-Host "This PowerShell command is running under the current users context, $env:userdomain\$env:username" -f magenta  >> c:\temp\add-to-cb.test.log


Als ik dit script uitvoer krijg ik terug:
"The RD Connection Broker server is not available. Verify that you can connect to the RD Connection Broker server."

Als ik enkel de "add-rdserver" regel uitvoer, werkt het wel. Hoe kan het nu zijn dat ik dit zelf wel kan uitvoeren, maar als ik het middels een invoke-command wil doen met dezelfde credentials dan werkt het niet.
Het invoke-command lijkt wel te werken, want ik krijg voor $env:userdomain\$env:username keurig het account terug dat ik bovenin het gedeclareerd..

Verwijderd

Topicstarter
Hier iemand nog tips n.a.v. mijn laatste updates?

  • thefurryone
  • Registratie: September 2005
  • Laatst online: 24-11 13:22
Klinkt als credssp....

http://blogs.technet.com/...onality-with-credssp.aspx

Heb het idee dat de add-rdsessionhost onderwater iets met winrm naar de connection broker doet. Als je dat vanuit een winrm sessie doet (invoke-command) dan mag dat niet omdat je je credentials in winrm niet voor een tweede hop mag gebruiken.

Verwijderd

Topicstarter
Bedankt voor je reactie. Ik ga hier binnenkort eens naar kijken. Even wat andere prioriteiten nu. Ik laat nog weten wat er uit komt.
Pagina: 1