{"id":13599474,"url":"https://github.com/NathanTheGr8/SCCMPackageAutomation","last_synced_at":"2025-04-10T12:32:54.992Z","repository":{"id":84181575,"uuid":"150161250","full_name":"NathanTheGr8/SCCMPackageAutomation","owner":"NathanTheGr8","description":"A Powershell Module for SCCM Package Automation","archived":false,"fork":false,"pushed_at":"2019-11-04T16:12:59.000Z","size":1487,"stargazers_count":30,"open_issues_count":1,"forks_count":3,"subscribers_count":4,"default_branch":"master","last_synced_at":"2024-11-07T00:43:02.041Z","etag":null,"topics":["powershell","sccm"],"latest_commit_sha":null,"homepage":"","language":"PowerShell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/NathanTheGr8.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-09-24T20:02:30.000Z","updated_at":"2024-11-03T03:59:48.000Z","dependencies_parsed_at":null,"dependency_job_id":"66bfdc69-1642-49c2-b9b6-4f69f09f6328","html_url":"https://github.com/NathanTheGr8/SCCMPackageAutomation","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NathanTheGr8%2FSCCMPackageAutomation","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NathanTheGr8%2FSCCMPackageAutomation/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NathanTheGr8%2FSCCMPackageAutomation/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NathanTheGr8%2FSCCMPackageAutomation/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/NathanTheGr8","download_url":"https://codeload.github.com/NathanTheGr8/SCCMPackageAutomation/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248217145,"owners_count":21066633,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["powershell","sccm"],"created_at":"2024-08-01T17:01:04.804Z","updated_at":"2025-04-10T12:32:52.964Z","avatar_url":"https://github.com/NathanTheGr8.png","language":"PowerShell","funding_links":[],"categories":["PowerShell"],"sub_categories":[],"readme":"# SCCMPackageAutomation\n\nA Powershell Module for SCCM Automation\n\nThe goal of this repo is to fully automate the maintaining of SCCM packages and applications. I mostly scrape the download websites directly and don't rely on 3rd Party services. All of the install binaries are downloaded directly from the vendor site.\n\nThere are three main functions Update-AppPackageSource, New-SCCMPackage, and New-SCCMApplication. The cmdlet names probally need to change to show they are related.\n\nUpdate-AppPackageSoruce accepts a app name from a predfined list of about a dozen apps. It then goes out and downloads the latest version of that app from the vendor's website. It then copies the latest source files for application x and makes a new folder called \"X Version# (R#)\". It then deletes all the install files in the \"X Version# (R#)\\Files\" directory and copies the new install files to that directory. It then updates the deploy-application.ps1's $appversion barible to the latest version. There are a lot of checks and error handling thrown in. The function is also pretty verbose and writes out what it is doing.\n```powershell\nPS C:\\Users\\davisn1\\Documents\\Projects\\HM-Functions\u003e Update-AppPackageSource -App Firefox\nP Drive to SCCM Exists already\nFirefox 62.0.2 package is already up to date\n\nPS C:\\Users\\davisn1\\Documents\\Projects\\HM-Functions\u003e Update-AppPackageSoruce -App Firefox -ForceUpdate\nP Drive to SCCM Exists already\nForcing update of Firefox from 62.0.2 to 62.0.2\n'Firefox 62.0.2 (R1)' already exists, auto incrementing the R#\nCreating folder 'Firefox 62.0.2 (R2)'\nCopying old package files to \\\\serversccm01\\Packages\\HOME OFFICE\\Mozilla FireFox\\Firefox 62.0.2 (R2)\nRemoving old install files\nCopying new install files\nVERBOSE: Performing the operation \"Copy File\" on target \"Item: C:\\Users\\davisn1\\Downloads\\AppUpdat\nes\\Firefox Setup 62.0.2-32bit.exe Destination: \\\\serversccm01\\Packages\\HOME OFFICE\\Mozilla FireFox\\F\nirefox 62.0.2 (R2)\\Files\\Firefox Setup 62.0.2-32bit.exe\".\nVERBOSE: Performing the operation \"Copy File\" on target \"Item: C:\\Users\\davisn1\\Downloads\\AppUpdat\nes\\Firefox Setup 62.0.2-64bit.exe Destination: \\\\serversccm01\\Packages\\HOME OFFICE\\Mozilla FireFox\\F\nirefox 62.0.2 (R2)\\Files\\Firefox Setup 62.0.2-64bit.exe\".\nUpdating version numbers from 62.0.2 to 62.0.2\n```\nThe next function is New-SCCMPackage. This function creates an SCCM package from the latest folder for a give app, makes the install program, distributes the package to DPs, moves it to a give folder in SCCM, and deploys it to a test collection. \n\n### Installation\n\nEdit the GlobalVariablesExample.ps1 and GlobalVariblesExample.json files in project root to work with your enviroment. Rename it to GlobalVariables.ps1 and GlobalVaribles.json\n - $SCCM_Site : Your SCCM Site Code\n - $SCCM_Share : A UNC path to the newtork share where your SCCM packages are.\n - $SCCM_Share_Test_Folder : A Folder Name (Not full path) that should exist on your SCCM share\n - $SCCM_Share_Letter : What drive letter do you want your SCCM share mounted under?\n - $SCCM_ALL_DP_Group : The DP Name that you want your applications and packages distrubuted to.\n - $SCCM_SourceFolderRegex : A regext that matches your source folder naming convention. All files and folders that don't match will be ignored.\n\n\nSCCM-PackageAutomation requires the following Powershell Modules\n\n - For SCCM functions you also need\n    - The SCCM Management console installed\n    - The SCCM cmdlet library\n\n  Note tested with SCCM 1906, not sure if it works in other versions.\n\nThese imports should be handled automatically when running the New-SCCMPackage and New-SCCMApplication functions.\n\nPowershell App Deployment Toolkit (PSADT)\n  - I assume all packages are PSADT packages and install files are in the files directory.\n  - I asssume you have Deploy-Application.ps1 at the root folder of the package.\n  - I assume you have a script called SCCMApplicationDetection.ps1 in the SupportFiles directory.\n\n\n### Sources\n\nCredit to the following\n\n* [r/Powershell](https://www.reddit.com/r/PowerShell)- provided a lot of help creating functions.\n* [auberginehill](https://github.com/auberginehill/update-adobe-flash-player/blob/master/Update-AdobeFlashPlayer.ps1) - Learned how to get current flash versions from his GitHub\n* [jasonadsit](https://gist.github.com/jasonadsit/c77340fe385fe953f9c54436b926cf83) - Was a big help writing the Download-LatestAppVersion -App Flash function\n* [James C.](https://stackoverflow.com/questions/48867426/script-to-download-latest-adobe-reader-dc-update) - Used his stackoverflow example to write the Adobe Reader function\n* [DexterPOSH](http://www.dexterposh.com/2015/08/powershell-sccm-2012-create-packages.html) - His blog post was the inspiration for the New-StandardChangeSCCMPackage function\n* [Lee_Dailey](https://www.reddit.com/user/Lee_Dailey) - Provided a lot code style and formatting comments.\n\n### Todos\n\n - Write [Pester](https://github.com/pester/Pester) Tests for functions\n - Handle downloads of Java\n\nLicense\n----\n\nMIT\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FNathanTheGr8%2FSCCMPackageAutomation","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FNathanTheGr8%2FSCCMPackageAutomation","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FNathanTheGr8%2FSCCMPackageAutomation/lists"}