• tux7350@lemmy.world
    link
    fedilink
    arrow-up
    0
    ·
    3 months ago

    I can create tools for my company that launches right out of ConfigMgr Software Center and other technicians can contribute without needing a programming background.

    Now this is a bit of magic I would like to learn. I read through PowerShell in a month of lunches a couple of years ago and it’s saved my butt a couple of times. I’m due for a re-read though. Would you have a source on where I could go to learn more about creating GUI applications in PowerShell?

    • discusseded@programming.dev
      link
      fedilink
      arrow-up
      0
      ·
      edit-2
      3 months ago

      This blog does a fairly straight-forward job on explaining the basics. For me, I learn best in an interactive 1:1 or well-constructed video, so ChatGPT was priceless. I could ask it stupid questions all day long, and after throwing some different ideas around I started to see the essential parts and just let my prior knowledge of PS, .NET, and C# WPF take it from there.

      At the end of the day, all that really matters is using the PresentationFramework assembly and creating a window:

      • Add-Type -AssemblyName PresentationFramework
      • Either use Visual Studio > WPF Project and make the UI you want. Take the XAML file and use PowerShell to get the raw content:
        • $Xaml = Get-Content -Path MainWindow.xaml -Raw
        • $SanitizedXaml = $Xaml -replace “bad syntax e.g. Foreground={x:Null}” "Foreground=“Transparent” # Certain XAML syntax is incompatible with PS XML
        • [xml]$XmlReader = [System.Xml.XmlNodeReader]::new($SanitizedXaml)
        • $Window = [Windows.Markup.XamlReader]::Load($XmlReader)
      • Or, use .NET-style syntax in PS directly:
      • Then show the window:
        • $Window.ShowDialog() | Out-Null