Skip to main content
Ousmane Salifou Lankoandé

Québec Ministry of Cybersecurity and Digital Technology (MCN) and La Poste du Burkina Faso

SUP-01 — Automating Windows support and diagnostics with PowerShell

Read-only automation of Windows checks: connectivity, services, logs, software inventory, versions, SCCM/MECM client and Windows Update. The project builds on documented work — silent installs, inventory, version checks, patches and remediation scripts.

Period
2015 – present
My role
Systems and infrastructure administrator / IT support N2-N3
Organization
Québec Ministry of Cybersecurity and Digital Technology (MCN) and La Poste du Burkina Faso

Technologies

  • PowerShell
  • Windows 10/11
  • Active Directory
  • SCCM / MECM
  • WinRM
  • Windows Update
On this page
  1. Summary
  2. Business and technical context
  3. Automation objectives
  4. Documented responsibilities
  5. Logical architecture
  6. Diagnostic process
  7. Technical demonstration: Windows-Support-Toolkit
  8. Technical accomplishments in the demonstration
  9. Demonstrated skills
  10. Verifiable results
  11. Documentation and publication

Summary

SUP-01 turns Windows support and administration activities I carried out at the Québec Ministry of Cybersecurity and Digital Technology and La Poste du Burkina Faso into a PowerShell demonstration toolkit: silent application installs, application version checks, software inventory, patch application and remediation scripting. The toolkit automates N2/N3 first-line checks — connectivity, services, logs, SCCM/MECM and Windows Update — and returns structured results in an HTML report. It is deliberately read-only: it diagnoses and recommends, but never applies a correction without human validation.

Important distinction. The administration tasks and remediation scripting named above are documented professional experience. The Windows-Support-Toolkit repository, its ten functions, diagrams and HTML report are a personal technical demonstration created for this portfolio. It contains no employer code, settings or data.

Business and technical context

In a Windows estate managed through Active Directory and SCCM/MECM, an endpoint incident is rarely one question. An application may not deploy because the endpoint is unreachable, WinRM is closed, a service has stopped, the SCCM client has no management point, the update source cannot be reached, or the application version is non-compliant.

The N2/N3 support problem is therefore not a lack of commands: it is their fragmentation and the lack of a consistent record. SUP-01 runs checks in diagnostic order, returns one result format for every check and produces a report that can be attached to an incident.

Automation objectives

  • Turn repeated manual checks into a readable, repeatable sequence.
  • Distinguish an unreachable endpoint from a check that genuinely failed, using Ignore.
  • Verify access prerequisites before querying a remote endpoint.
  • Inventory software and compare versions against a required minimum.
  • Diagnose conditions preventing an SCCM/MECM client from receiving policy or deployments.
  • Produce useful support output without disclosing passwords or running destructive remediation.

Documented responsibilities

  • Silent application installation.
  • Application version checks.
  • Software inventory.
  • Patch application.
  • Development of remediation scripts.

These activities are the professional foundation of SUP-01. The toolkit does not claim to be a production script used by either organization; it makes the method visible: prerequisites, controlled collection, readable results, recommendations and traceability.

Logical architecture

Conceptual architecture: an administration workstation authenticates through Active Directory, receives the necessary authorization and queries Windows endpoints through WinRM. Modules read services, logs, SCCM client, registry and Windows Update; results generate an HTML report and a log.
Remote access and read-only collection. Access conditions are explicit: elevated session, Kerberos authentication, an Active Directory group granting local administrator rights and reachable WinRM. Open full-size diagram

Access conditions and security

  1. The operator opens an elevated PowerShell session with an authorized account.
  2. Active Directory authenticates that account; no password is written into code or logs.
  3. The account must be a local administrator on the target endpoint, preferably through a dedicated AD group.
  4. WinRM / PowerShell Remoting must be enabled and permitted by firewall. Port 5985 is typical inside a trusted network; port 5986 is preferred where HTTPS is required.
  5. The toolkit reads information only; it changes no service, policy or firewall rule.

Diagnostic process

Diagnostic process: select checks, verify prerequisites, test connectivity, run read-only checks, consolidate results, create report and recommendations. If the endpoint is unreachable, later checks are ignored. Remediation is a human decision outside the toolkit.
Diagnostics before remediation. The Ignore status avoids interpreting lack of access as a failure of the component being checked. The toolkit stops at recommendations. Open full-size diagram

Technical demonstration: Windows-Support-Toolkit

Toolkit architecture: a main script loads a PowerShell module. Windows and fleet management functions return a Wst.Resultat object; the module produces an HTML report and operation log.
Independent repository organization. The eight checks return a common object, so HTML reporting does not depend on which function produced each result. Open full-size diagram

The local repository is ready for publication: C:\Users\Utilisateur\Documents\Windows-Support-Toolkit.

GitHub link to complete after publication: Windows-Support-Toolkit

# Interactive menu, local computer
.\Invoke-SupportToolkit.ps1

# Targeted diagnostic linked to an incident
.\Invoke-SupportToolkit.ps1 -ComputerName PC-0042 `
  -Check Connectivite,Services,SCCM `
  -Context 'INC0012345'
AreaFunctionWhat it checks
AccessTest-WstConnectivityDNS, ICMP, WinRM and SMB ports
WindowsGet-WstServiceStateStopped or disabled services
WindowsGet-WstEventSummaryGrouped errors and critical events
FleetGet-WstInstalledSoftware32/64-bit registry and per-user installs, never Win32_Product
FleetTest-WstApplicationVersionCompliance with a minimum version
SCCMTest-WstSccmClientCcmExec, version, site, management point and log
SCCMGet-WstSccmCycleStatusClient logs and documented cycles, not executed
PatchingTest-WstWindowsUpdateWSUS/SCCM source, scan and patches
OutputNew-WstHtmlReportSelf-contained HTML report
TraceabilityWrite-WstLogTimestamped daily log

Example report

The report is generated from fictional laboratory data only: PC-0042, PC-0043, LABO domain and 192.0.2.0/24, a documentation-only address range. No real endpoint, account or address is published.

HTML report generated by the toolkit. The example shows normalized statuses, details and recommendations without exposing a real diagnostic. Open example report in a new tab.

Technical accomplishments in the demonstration

  • PowerShell 5.1 and 7 compatible module, without external dependency.
  • Ten documented functions, one per file.
  • Prerequisite verification; an inaccessible endpoint returns an actionable state rather than a raw exception.
  • Common Wst.Resultat object: endpoint, check, status, summary, details, recommendations and timestamp.
  • Registry-based software inventory — never Win32_Product, which can trigger MSI reconfiguration.
  • Self-contained HTML report with encoded content.
  • Operation logging with no password or real demonstration data in the repository.
  • Real local validation: module import, all ten functions, fictional report generation and reproducibility check.

Demonstrated skills

AreaDemonstration
PowerShellModule, advanced functions, error handling, structured objects and orchestration script
Windows 10/11Services, logging, registry, patches and Windows Update
Active DirectoryKerberos authentication and group-based authorization
N2/N3 supportDiagnostic order, failure versus unperformed check, actionable recommendations
SCCM/MECMClient health, management point, logs, cycles and software inventory
Administration securityElevation, WinRM, no embedded password, no automatic remediation
DocumentationGitHub README, diagrams, PowerShell help and example HTML report

Verifiable results

  • Independent local Git repository created: Windows-Support-Toolkit.
  • 10 PowerShell functions exported; every script parsed successfully by the PowerShell parser.
  • Read-only controls executed locally in a lab: connectivity, services, logs, inventory, SCCM client, SCCM logs, Windows Update and version comparison.
  • Fictional HTML report generated twice with identical SHA-256 hash: reproducible result.
  • No quantified productivity claim: it would depend on estate size, permissions, SCCM maturity and support process.

Documentation and publication

Diagrams, README and the example HTML report are the demonstration documentation. Before GitHub publication, replace [TO-COMPLETE] with your GitHub identifier; never add organization data to the repository.