{"id":14063729,"url":"https://github.com/PowerShellCrack/PSAutopilotOfflineOSDUI","last_synced_at":"2025-07-29T16:31:29.115Z","repository":{"id":218499918,"uuid":"660682888","full_name":"PowerShellCrack/PSAutopilotOfflineOSDUI","owner":"PowerShellCrack","description":"A PowerShell UI used in the MECM Autopilot task sequence","archived":false,"fork":false,"pushed_at":"2023-06-30T15:17:42.000Z","size":0,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-04-10T15:26:24.951Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/PowerShellCrack.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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}},"created_at":"2023-06-30T15:17:42.000Z","updated_at":"2023-08-09T19:26:23.000Z","dependencies_parsed_at":null,"dependency_job_id":"c721ce7d-d767-4940-bc23-a5bbeeced21e","html_url":"https://github.com/PowerShellCrack/PSAutopilotOfflineOSDUI","commit_stats":null,"previous_names":["powershellcrack/psautopilotofflineosdui"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PowerShellCrack%2FPSAutopilotOfflineOSDUI","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PowerShellCrack%2FPSAutopilotOfflineOSDUI/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PowerShellCrack%2FPSAutopilotOfflineOSDUI/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PowerShellCrack%2FPSAutopilotOfflineOSDUI/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/PowerShellCrack","download_url":"https://codeload.github.com/PowerShellCrack/PSAutopilotOfflineOSDUI/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":228028620,"owners_count":17858419,"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":[],"created_at":"2024-08-13T07:03:28.825Z","updated_at":"2024-12-04T01:31:23.243Z","avatar_url":"https://github.com/PowerShellCrack.png","language":null,"funding_links":[],"categories":["PowerShell"],"sub_categories":[],"readme":"# PSAutopilotOfflineOSDUI\nA Autopilot UI used in the MECM task sequence\n\n## Description\n\nA PowerShell driven UI to present options to generate a Autopilot configuration file for Autopilot OSD task Sequence used in baremetal provisioning\n\n## How To Use\n\nUsing MDT:\n```bash\n\"%DEPLOYROOT%\\tools\\%architecture%\\ServiceUI.exe\" -process:TSProgressUI.exe \"%Windir%\\System32\\WindowsPowerShell\\v1.0\\powershell.exe\" -ExecutionPolicy Bypass -NoLogo -File \"%SCRIPTROOT%\\Custom\\AutoPilotOSDUI.ps1\"\n```\n\nUsing MECM\nCopy code in Powershell script \n\n![osd](.images/mecm_osdtasksequence.png)\n\n## What it looks like:\n\nThe UI is configurable to meet the needs of the organizations. You can configure the background, foreground and inputs. \n\n![ui](.images/startnodata.png)\n\n![hide](.images/filledindata.png)\n\n![hide](.images/hidealloptions.png)\n\n![hide](.images/advancedoptions.png)\n\n![hide](.images/graycolorerromsg.png)\n\n## Additional Variables\n\nThere are some addition variables that need to be set that is not part of the parameters. \n\n```powershell\n$AutoPilotProfileCategories = [ordered]@{\n    \n}\n\n$languageList = [ordered]@{'os-default'=\"OS Default\";'en-US'=\"English (USA)\";'en-ES'=\"Spanish (USA)\" }\n\n$LogoBase64 = \"\"\n```\n\nThe _$AutoPilotProfileCategories_ are the different Autopilot Deployment profiles in your Intune tenant. This is a nested habitable (where one hashtable is the value of another) and they need these properties\n\nMain Hashtable needs a Key; this is the friendly name that is displayed in UI\n\nThe value of the main hashtable will need these properties\n\n- **AutopilotProfileName** --\u003e Typically the name of the Autopilot profile. \n- **DomainJoinMethod** --\u003e 0 or 1. If hte deployment profile is hybrid then it is _1_. Azure AD joined is _0_\n- **CorrelationId** --\u003e this is the guid from the Autopilot Deployment profile. This can be retrieved from either the Intune portal:\n\n![portal](.images/correlationid_portal.png)\n\nor using the module _WindowsAutoPilotIntune_ and running command **Get-AutopilotProfile | ConvertTo-AutopilotConfigurationJSON**\n\n![module](.images/correlationid_module.png)\n\n- **Default** --\u003e True of false (at least one should be true otherwise UI will default to first one in the list)\n\n#an example of what it would look like:\n\n```powershell\n$AutoPilotProfileCategories = [ordered]@{\n    \"Modern Device\" = @{AutopilotProfileName =\"Autopilot Profile for AAD Devices\";DomainJoinMethod = 0;CorrelationId='6cc1a6a4-6b3c-471f-a69d-86d1ffe421ec';default=$false}\n    \"Developer Device\" = @{AutopilotProfileName =\"Autopilot Profile for AAD Devices\";DomainJoinMethod = 0;CorrelationId='6cc1a6a4-6b3c-471f-a69d-86d1ffe421ec';default=$false}\n    \"Kiosk Device\" = @{AutopilotProfileName =\"Autopilot Profile for Kiosk Devices\";DomainJoinMethod = 0;CorrelationId='4bfe3b9c-04da-4425-8cc3-70e875f71d71';default=$false}\n}\n```\n\n$LogoBase64 is a variable that holds an embedded image. This image must be converted to base64. TO do that follow these instructions:\n```powershell\n[convert]::ToBase64String((Get-Content \"\u003cpath to image\u003e\\check.png\" -Encoding byte))\n```\n\nTo size the text to fit in script (wrapping):\n1. Load the image binary in Notepad++. \n2. Reduce the window size of Notepad++ to your preferred size (move the right window margin). \n3. Then select all + Ctrl + I (Edit \u003e Line Operations \u003e Split Lines).\n4. copy/paste binary back to powershell script\n\n\n\n## Advanced Menu\nPress _F12_ to initiate the advanced options. Hit again to close the menu\n\n![advanced](.images/advancedoptions.png)\n\n# DISCLAIMER\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,\nWHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FPowerShellCrack%2FPSAutopilotOfflineOSDUI","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FPowerShellCrack%2FPSAutopilotOfflineOSDUI","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FPowerShellCrack%2FPSAutopilotOfflineOSDUI/lists"}