Automating OSD and Post-OSD Configuration with Powershell and Orchestrator

1,264 views

Published on

Andrew Craig präsentierte in seinem Referat Möglichkeiten, wie Runbooks und Webservices mit Powershell und Orchstrator ausgelöst werden können.

Published in: Business, Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,264
On SlideShare
0
From Embeds
0
Number of Embeds
20
Actions
Shares
0
Downloads
12
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Automating OSD and Post-OSD Configuration with Powershell and Orchestrator

  1. 1. Configuration Manager Community Event Switzerland 2014
  2. 2. Automating OSD and PostOSD Configuration with Powershell and Orchestrator Triggering Runbooks and Webservices with Powershell in Pre- and Post-Execution to conform with Asset Details in the CMDB, allowing complex zero touch deployments throughout the Desktop life cycle.
  3. 3. Preparing the environment Demo
  4. 4. Demos • The following demos contain plenty of powershell examples of querying WMI, looking up datastores or SQL tables and communicationg with Webservices and Orchestrator. • The commands are included in slides after the demos.
  5. 5. Using Powershell to trigger local and remote WMI queries and methods Demo
  6. 6. Using Powershell to access a datastore Demo
  7. 7. Using Powershell to trigger web services Demo
  8. 8. Using Powershell to add data to tables Demo
  9. 9. Using Powershell to trigger Orchestrator runbooks Demo
  10. 10. Powershell Commands – local WMI • $macAddress = (gwmi -Namespace rootcimv2 -Class Win32_NetworkAdapterConfiguration -Filter "ipenabled = 'true'").MACAddress • $smBIOSGUID = (gwmi -Namespace rootcimv2 -Class Win32_ComputerSystemProduct).UUID
  11. 11. Powershell Commands – lookup xml • [xml]$configScript = (New-Object System.Net.WebClient).DownloadString("http://server:86/filena me.xml") • $dhcpServer = $configScript.Config.dhcpServer
  12. 12. Powershel Commands – write to SMSTS • $tsenv = New-Object -ComObject Microsoft.SMS.TSEnvironment • $tsenv.Value("DHCPServer") = $dhcpServer • $log = "$env:windirMaintenanceLogsPreExecutionHook.log" • if(!(Test-Path $log)){New-Item -Path $log -ItemType File Force} • "TS Variables:" | Out-File $log -Append • $tsenv.GetVariables() | %{"$_ = $($tsenv.Value($_))" | Out-File $log -Append}
  13. 13. Powershell Commands – storing Credentials • #Enter credential and save to file • $key = (2,3,56,34,254,222,1,1,2,23,42,54,33,233,1,34,2,7,6,5,35,43,6,6,6,6,6,6,31,33,60,23) • $cred = Get-Credential • $pwFile = New-Item -Path "c:WindowsTemp" -Name "pwFile.txt"-ItemType File -Force • $userFile = New-Item -Path "c:WindowsTemp" -Name "userFile.txt"-ItemType File -Force • $cred.UserName | Set-Content -Path $userFile • $cred.Password | ConvertFrom-SecureString -Key $key | Set-Content -Path $pwFile • #Retrieve credentials from text file • $userFile = "userfile.txt" • $pwFile = "pwfile.txt" • $user = Get-Content $userFile • $pw = Get-Content $pwFile • $password = $pw | ConvertTo-SecureString -Key $key • $credential = New-Object System.Management.Automation.PsCredential($user,$password)
  14. 14. Powershell commands – call webservice # Create a webservice connection try{ $svc = New-WebServiceProxy –Uri 'http://aclabcm01:88/ConfigMgrWebService.asmx' }catch{ $err = $_ } if($err -ne $null){ "$err - exiting" | Out-File $log -Append exit } Get methods: $svc | gm –MemberType Method Get method parameters: $svc | gm –MemberType Method –Name GetComputerRessourceID | select Definition
  15. 15. Pete Zerger’s blog • http://www.systemcentercentral.com/how-to-initiate-a-runbookfrom-powershell-and-orchestrator-web-service-the-easy-way/ • Leverage PowerPivot in Excel to get the Runbook and Runbook Parameter GUIDs
  16. 16. Use Orchestrator to add computers • Set up a database to store requests • Write to the database via Powershell in the Pre-Execution Hook • Schedule Runbook to read from the database every 5 – 10 minutes • Use either an Integration Pack or a Powershell script to programatically add the computers • Update the status in the database
  17. 17. What can we automate after OSD? • Configuration post-OSD of a computer is by design carried out by ConfigMgr • What cannot be accomplished in the TS can be deployed as configuration settings in a baseline, or installed as an application • Triggering post-install tasks really only affects VDI situations where the ConfigMgr client may be removed after staging • SMSTSPostAction: • C:Windowsccmsetupccmsetup.exe /uninstall • Only one command possible • postConfig.ps1 • Wrap commands like ccmsetup uninstall in a script • Other actions • • • • • Prepare disk for Hyper-V Citrix PVS prepare machine for P2V XenDesktop prepare disk as master Other third party virtualisation products Remove from domain
  18. 18. Questions & Answers Thank you!
  19. 19. Kontakt aufnehme • www.configmgr.ch • andrewdcraig.wordpress.com • Twitter: @mracraig

×