Testing MS Software Rollout with Python ,WMI, and LDAP3

Most MS (Microsoft) software roll-out are release via SCCM to all Project Infrastructure (DC, AD, Application Servers, Application Clients). Usually testers are using Standards MS Tools like Powershell, MS CMD (tools: like netsh, wmic, etc) for validating Installation results on targets.

This article describe how the same tasks solve with python scripting using WMI & LDAP3 library.

Common Test Task & Rollout Workflow:

  1. Rollout related Packages will be distributed to MS SCCM
  2. Over SCCM Application GUI Testers trigger the release processes for target environment (Server/Client PC)
  3. On target environments testers mock up the sccm client update sequence to push roll-up update for related Packages.
  4. After SCCM agent invoke successfully SW update, the validation steps starting, Testers use common  MS OS GUI like “Software Information GUI” or “Service Information GUI ” for validating Installation status. Some Testers also used Powershell commands for Validating installations.

 Just daily tasks for MS Administrator , as test analyst , I try to find out more efficient way.

After  some investigation  I find out, the way validating MS SW status over WMI Interfaces are much easier than any Powershell or Dos Batch command, especially  with pywmi.  

These following WMI class Objects  are interesting for SW Installations
Validation :

  • Win32_OperatingSystem
  • Win32_Product
  • Win32_BaseService
  • Win32_Service
  • Win32_NTDomain
  • win32_optionalfeature
  • win32_ComputerSystem
  • Win32_PingStatus

Using pywmi, ldap3, winkerberos and common Excel library on python, I created scripts which extract the installed SW, Services Status, Drive Mapping , Domain configuration and AD Application User Accounts. All as excel files containing  Tabs related to the mentions check Topics.

Status, Drive Mapping , Domain configuration and AD Application User Accounts. All as excel files containing  Tabs related to the mentions check Topics

I Run it before SW update and after Update, find out the delta Information’s I got in my excel sheet and cross check if all Items match to release roll-out specifications.  

Added Value:

  • The script can be pointed for remote Target using WMI remote functionality.
  • Limited scripts to do only wmi-get  / LDAP show action (under executable) , to guaranties that no system or installation change cause by test action.
  • Validating more easier than with MS Scripting( I created “.exe” files for each test with py2exe)
  • I don’t mess any test object, because no installation for python needed (all checks are run as “.exe” files and can easily remove after test)


MS Powershell 6 dengan Raspberry Pi2 / Pi3

Untuk rekan rekan yang bergerak(bekerja) sebagai windows system administrator tentu anda mengenal Powershell yang selama ini digunakan untuk mengadministrasikan MS Windows OS.

Sejak Versi Powershell 6 (Core) tertanggal
23.08.2018 anda dapat menjalankan semua Powershell script (.PS1) tidak saja dari Windows PC tetapi dari semua system OS (Lin(x) atau MAC).

coba bayangkan betapa besar kemungkinan implementasi yang anda dapatkan (administrasi  & test MS-SCCM, -SCOM ,dll lewat raspberry) ! 

limitasi: untuk saat ini Powershell 6 (Core) hanya berfungsi dengan pi2 atau pi3, tidak pada Pi Zero.

Untuk informasi instalasi di OS Rasbian(Stretch) silahkan lihat disini

Untuk informasi instalasi wmic id lin(x) silahkan lihat di sini

Untuk informasi instalasi python winRM silahkan lihat di sini