PSADT+ : Using a JSON file for deployment

I wanted PSADT to be even easier to use by having it deploy applications from a single config (JSON) file. It downloads a file, checks dependencies and other fun stuff but most importantly, the only file that needs to be edited for each application is a JSON file.

It is open source on GitLab: https://gitlab.com/cybermoloch/psappdeploytoolkit-plus/

In case you might need help to get going with it: https://www.magitekai.com/#/blog/powershell/2020/psadt-plus-introduction/

A very interesting extension. Do you add updates from our repository or do you keep working on your own fork? Also is this a solo project or a team project?

I have been merging in updates periodically from the main repo and would continue to do so. (Sometimes I question why I did GitLab instead of GitHub as that would make it easier…)

I did try to maintain as close as possible to the original for that purpose. I do have some thoughts how it could be changed to be even more inline with the original… (Not much in actuality.)

Lastly, it is a solo project but doesn’t have to be. :slight_smile:

I have been making some tweaks so that it is closer to the original. The only two files modified now are the Deploy-Application.ps1 and AppDeployToolkitExtensions.ps1 now.

If the importing of PS modules from the $ScriptRoot\Modules was added as a standard thing, I could move the extra functions to a psm1 instead and not be changing that too.

The other part I use frequently is the converted AdminGuide to markdown.

I was keeping the repo cloned because it made it easier to build the zip file manually. I’ll be updating it to use GitLab’s CI pipeline to build the zip after cloning upstream soon to it will ensure that I am actually taking upstream fixes and not doing periodic merges.

I do something very similar to this. I use 3 text files and a csv file for my deployments. Csv file has all the info about the app. Name, icon, path, collection, detection method, description, etc… The three text files are labeled 1. Preinstall.txt, 2. Install.txt, 3. Uninstall.txt.
All the preinstall commands go in the preinstall text file and so on. Then when psadt runs, it reads all three text files and the csv then executes the commands within each text file under each category on the main deploy-application.ps1. Doing it this way as increased my deployment productivity 10 times as I can use a special powershell script I made to import the app into sccm by simply reading the csv file. I also have a removal powershell script when its time to remove outdated apps. The main benefit is the ease of replacing outdated psadt versions as when a new version comes out, all I need to do is make my changes to a few pieces and use that as a template for every app. Then use powershell to remove outdated psadt apps from sccm and replace them with the new updated apps. Its pretty sweet. Was thinking about starting some tutorials on youtube on how to do stuff with psadt but not sure how much value they would be.

2 Likes

Hey, i am trying to build something similiar, this appears do exactly what i need.

It’s just that i can’t find any documentation about this anywhere, neither on github or gitlab. i spent at least half an hour and am mildly frustrated.

Like, how do i use this at all? Is there a reference for the JSON file? The 5 lines on the readme page left me with more questions then i started with, and all the links just point to the official PSADT website and stuff. Am i blind? Am i missing something obvious here?

I forgot to note that i also read the second introduction link you posted, unfortunately that didn’t really help me either.