Integrating vPro KVM feature to ConfigMgr 2007
Alright, first some background. If you’ve not yet heard, in versions 6.x and 7.x of Intel vPro there is a feature called Remote KVM. Yes, that’s Keyboard-Video-Mouse! It’s the ability to take control of the remote computer’s keyboard, video and mouse just like how you’d do it using Remote Desktop; except that you can do this out-of-band. Previously we’ve been able to do this using Serial Over LAN (SoL) in earlier versions of vPro but it was limited to only displaying text. Now, you get full graphics and best of all it can automatically adjusts its quality based on the detected available bandwidth. Cool hey!
Let’s get to it! I’m assuming you’ve got your vPro computers provisioned and managed by SCCM. Let’s leave that as a pre-requisite to start. In ConfigMgr, we would have to use RealVNC to perform the remote KVM session specifically the Viewer Plus. The question is how do we get it integrated right into the ConfigMgr Administrator Console. Here’s how.
Downloading and Installing RealVNC Viewer Plus
- This part should be pretty straight forward. Here’s the where you’d go to download it.
- Install RealVNC Viewer Plus. Make sure you install it on a computer that is running the Administrator Console and where you would perform a remote KVM session on.
- Remember the path that you’ve installed it. The default would be at c:\Program Files\RealVNC\VNCViewerPlus.
Extending the Administrator Console
This is so that you are able to get an additional option to launch the Remote KVM from the context menu when you right-click on a computer resource in a collection. To do this you need an .XML file with the following contents. Change the DisplayName as desired. The .XML file calls a .VBS file which I will explain further down the post.
- Create a .XML file with the below contents.
- Name the file as vPro_Client.xml
- Copy the file to the “c:\Program Files\Microsoft Configuration Manager\AdminUI\XMLStorage\Extensions\Actions\7ba8bf44-2344-4035-bdb4-16630291dcf6” location. If the folder does not exist, create it.
- Close and open the ConfigMgr Administrator Console if it was currently open.
<ActionDescription Class="Group" DisplayName="vPro" MnemonicDisplayName="vPro" Description="PRO Client Tools" SqmDataPoint="53">
<ActionDescription Class="Executable" DisplayName="AMT KVM" MnemonicDisplayName="Mnemonic" Description="AMT KVM">
<Parameters>/C cscript c:\KVM\launch_AMT_KVM.vbs ##SUB:Name## ##SUB:__Server##</Parameters>
Calling the VNC Viewer
This is the .VBS script that the right-click option will call. The script basically retrieves the FQDN of the computer from the database and launches VNC passing the parameters to it.
- Create the C:\KVM folder. This can be in any other path as long as you change the path in the .XML file.
- Create a .VBS file with the contents below.
- Copy the file into the C:\KVM folder.
Set objShell = CreateObject("WScript.Shell")
objShell.CurrentDirectory = wscript.scriptfullname & "\.."
hostname = WScript.Arguments(0)
strServer = WScript.Arguments(1)
Set objLocator = CreateObject("WbemScripting.SWbemLocator")
Set objSMS = objLocator.ConnectServer(strServer, "Root/SMS") ‘connect to sms
objSMS.Security_.ImpersonationLevel = 3
set colSiteDetails=objSMS.ExecQuery("select Machine, SiteCode from SMS_ProviderLocation where ProviderForLocalSite=True")
For Each insSiteDetails In colSiteDetails
set objSMS=objLocator.ConnectServer(strServer, "root/SMS/site_" & strSiteCode)
strQuery = "Select * From SMS_R_System where Name=’" & hostname & "’"
Set objEnumerator1 = objSMS.ExecQuery(strQuery)
if not isnull(objEnumerator1) then
for each instance1 in objEnumerator1
set oExec = objShell.Exec( "c:\Program Files\RealVNC\VNCViewerPlus\vncviewerplus.exe ConnectionMode=IntelAMT AmtSecurity=TLS " & FQDN )
wscript.echo("Not a valid machine.")