Upload
digicomp-academy-ag
View
690
Download
3
Embed Size (px)
Citation preview
Configuration Manager Community Event Switzerland 2014
Automating OSD and Post-OSD Configuration with Powershell and OrchestratorTriggering 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.
Demo
Preparing the environment
Demos
• The following demos contain plenty of powershell examples ofquerying WMI, looking up datastores or SQL tables andcommunicationg with Webservices and Orchestrator.
• The commands are included in slides after the demos.
Demo
Using Powershell to trigger local and remote WMI queries and methods
Demo
Using Powershell to access a datastore
Demo
Using Powershell to trigger web services
Demo
Using Powershell to add data to tables
Demo
Using Powershell to trigger Orchestrator runbooks
Powershell Commands – local WMI
• $macAddress = (gwmi -Namespace root\cimv2 -Class Win32_NetworkAdapterConfiguration -Filter "ipenabled = 'true'").MACAddress
• $smBIOSGUID = (gwmi -Namespace root\cimv2 -Class Win32_ComputerSystemProduct).UUID
Powershell Commands – lookup xml
• [xml]$configScript = (New-ObjectSystem.Net.WebClient).DownloadString("http://server:86/filename.xml")
• $dhcpServer = $configScript.Config.dhcpServer
Powershel Commands – write to SMSTS
• $tsenv = New-Object -ComObjectMicrosoft.SMS.TSEnvironment
• $tsenv.Value("DHCPServer") = $dhcpServer
• $log = "$env:windir\Maintenance\Logs\PreExecutionHook.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}
Powershell Commands – storingCredentials• #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:\Windows\Temp" -Name "pwFile.txt"-ItemType File -Force
• $userFile = New-Item -Path "c:\Windows\Temp" -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)
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
Pete Zerger’s blog
• http://www.systemcentercentral.com/how-to-initiate-a-runbook-from-powershell-and-orchestrator-web-service-the-easy-way/
• Leverage PowerPivot in Excel to get the Runbook and RunbookParameter GUIDs
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 toprogramatically add the computers
• Update the status in the database
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:\Windows\ccmsetup\ccmsetup.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
Questions & AnswersThank you!
Kontakt aufnehme
• www.configmgr.ch
• andrewdcraig.wordpress.com
• Twitter: @mracraig