#Requires -Version 5.1 #Requires -RunAsAdministrator # PACKETHUB_VERSION 1.1.0 [CmdletBinding()] param([switch]$SkipDebloat) $ErrorActionPreference = 'Stop' $identity = [Security.Principal.WindowsIdentity]::GetCurrent() $principal = New-Object Security.Principal.WindowsPrincipal($identity) if (-not $principal.IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)) { throw 'Run PowerShell as administrator.' } $embeddedConfig = '77u/ew0KICAgICJBcHBzIjogIFsNCiAgICAgICAgICAgICAgICAgIk1pY3Jvc29mdC4zREJ1aWxkZXIiLA0KICAgICAgICAgICAgICAgICAiTWljcm9zb2Z0Lk1pY3Jvc29mdDNEVmlld2VyIiwNCiAgICAgICAgICAgICAgICAgIkFDR01lZGlhUGxheWVyIiwNCiAgICAgICAgICAgICAgICAgIkFjdGlwcm9Tb2Z0d2FyZUxMQyIsDQogICAgICAgICAgICAgICAgICJBZG9iZVN5c3RlbXNJbmNvcnBvcmF0ZWQuQWRvYmVQaG90b3Nob3BFeHByZXNzIiwNCiAgICAgICAgICAgICAgICAgIk1pY3Jvc29mdC5XaW5kb3dzQWxhcm1zIiwNCiAgICAgICAgICAgICAgICAgIkFtYXpvbi5jb20uQW1hem9uIiwNCiAgICAgICAgICAgICAgICAgIkFzcGhhbHQ4QWlyYm9ybmUiLA0KICAgICAgICAgICAgICAgICAiQXV0b2Rlc2tTa2V0Y2hCb29rIiwNCiAgICAgICAgICAgICAgICAgIk1pY3Jvc29mdC5CaW5nRmluYW5jZSIsDQogICAgICAgICAgICAgICAgICJNaWNyb3NvZnQuQmluZ0Zvb2RBbmREcmluayIsDQogICAgICAgICAgICAgICAgICJNaWNyb3NvZnQuQmluZ0hlYWx0aEFuZEZpdG5lc3MiLA0KICAgICAgICAgICAgICAgICAiTWljcm9zb2Z0LkJpbmdOZXdzIiwNCiAgICAgICAgICAgICAgICAgIk1pY3Jvc29mdC5CaW5nU2VhcmNoIiwNCiAgICAgICAgICAgICAgICAgIk1pY3Jvc29mdC5CaW5nU3BvcnRzIiwNCiAgICAgICAgICAgICAgICAgIk1pY3Jvc29mdC5CaW5nVHJhbnNsYXRvciIsDQogICAgICAgICAgICAgICAgICJNaWNyb3NvZnQuQmluZ1RyYXZlbCIsDQogICAgICAgICAgICAgICAgICJNaWNyb3NvZnQuQmluZ1dlYXRoZXIiLA0KICAgICAgICAgICAgICAgICAia2luZy5jb20uQnViYmxlV2l0Y2gzU2FnYSIsDQogICAgICAgICAgICAgICAgICJDYWVzYXJzU2xvdHNGcmVlQ2FzaW5vIiwNCiAgICAgICAgICAgICAgICAgIk1pY3Jvc29mdC5XaW5kb3dzQ2FsY3VsYXRvciIsDQogICAgICAgICAgICAgICAgICJNaWNyb3NvZnQuV2luZG93c0NhbWVyYSIsDQogICAgICAgICAgICAgICAgICJraW5nLmNvbS5DYW5keUNydXNoU2FnYSIsDQogICAgICAgICAgICAgICAgICJraW5nLmNvbS5DYW5keUNydXNoU29kYVNhZ2EiLA0KICAgICAgICAgICAgICAgICAiQ2xpcGNoYW1wLkNsaXBjaGFtcCIsDQogICAgICAgICAgICAgICAgICJDT09LSU5HRkVWRVIiLA0KICAgICAgICAgICAgICAgICAiTWljcm9zb2Z0LldpbmRvd3MuQUlIdWIiLA0KICAgICAgICAgICAgICAgICAiTWljcm9zb2Z0LjU0OTk4MUMzRjVGMTAiLA0KICAgICAgICAgICAgICAgICAiTWljcm9zb2Z0V2luZG93cy5Dcm9zc0RldmljZSIsDQogICAgICAgICAgICAgICAgICJDeWJlckxpbmtNZWRpYVN1aXRlRXNzZW50aWFscyIsDQogICAgICAgICAgICAgICAgICJEZWxsSW5jLkRlbGxEaWdpdGFsRGVsaXZlcnkiLA0KICAgICAgICAgICAgICAgICAiRGVsbEluYy5EZWxsTW9iaWxlQ29ubmVjdCIsDQogICAgICAgICAgICAgICAgICJEZWxsSW5jLkRlbGxTdXBwb3J0QXNzaXN0Zm9yUENzIiwNCiAgICAgICAgICAgICAgICAgIk1pY3Jvc29mdC5XaW5kb3dzLkRldkhvbWUiLA0KICAgICAgICAgICAgICAgICAiRGlzbmV5TWFnaWNLaW5nZG9tcyIsDQogICAgICAgICAgICAgICAgICJEaXNuZXkuMzc4NTNGQzIyQjJDRSIsDQogICAgICAgICAgICAgICAgICJEcmF3Ym9hcmRQREYiLA0KICAgICAgICAgICAgICAgICAiRHVvbGluZ28tTGVhcm5MYW5ndWFnZXNmb3JGcmVlIiwNCiAgICAgICAgICAgICAgICAgIkVjbGlwc2VNYW5hZ2VyIiwNCiAgICAgICAgICAgICAgICAgIkZBQ0VCT09LLkZBQ0VCT09LIiwNCiAgICAgICAgICAgICAgICAgIk1pY3Jvc29mdENvcnBvcmF0aW9uSUkuTWljcm9zb2Z0RmFtaWx5IiwNCiAgICAgICAgICAgICAgICAgIkZhcm1WaWxsZTJDb3VudHJ5RXNjYXBlIiwNCiAgICAgICAgICAgICAgICAgIk1pY3Jvc29mdC5XaW5kb3dzRmVlZGJhY2tIdWIiLA0KICAgICAgICAgICAgICAgICAiRmxpcGJvYXJkIiwNCiAgICAgICAgICAgICAgICAgIk1pY3Jvc29mdC5HZXRIZWxwIiwNCiAgICAgICAgICAgICAgICAgIk1pY3Jvc29mdC5HZXRzdGFydGVkIiwNCiAgICAgICAgICAgICAgICAgIkhpZGRlbkNpdHkiLA0KICAgICAgICAgICAgICAgICAiQUQyRjE4MzcuSFBBSUV4cGVyaWVuY2VDZW50ZXIiLA0KICAgICAgICAgICAgICAgICAiQUQyRjE4MzcuSFBDb25uZWN0ZWRNdXNpYyIsDQogICAgICAgICAgICAgICAgICJBRDJGMTgzNy5IUENvbm5lY3RlZFBob3RvcG93ZXJlZGJ5U25hcGZpc2giLA0KICAgICAgICAgICAgICAgICAiQUQyRjE4MzcuSFBEZXNrdG9wU3VwcG9ydFV0aWxpdGllcyIsDQogICAgICAgICAgICAgICAgICJBRDJGMTgzNy5IUEVhc3lDbGVhbiIsDQogICAgICAgICAgICAgICAgICJBRDJGMTgzNy5IUEZpbGVWaWV3ZXIiLA0KICAgICAgICAgICAgICAgICAiQUQyRjE4MzcuSFBKdW1wU3RhcnRzIiwNCiAgICAgICAgICAgICAgICAgIkFEMkYxODM3LkhQUENIYXJkd2FyZURpYWdub3N0aWNzV2luZG93cyIsDQogICAgICAgICAgICAgICAgICJBRDJGMTgzNy5IUFBvd2VyTWFuYWdlciIsDQogICAgICAgICAgICAgICAgICJBRDJGMTgzNy5IUFByaW50ZXJDb250cm9sIiwNCiAgICAgICAgICAgICAgICAgIkFEMkYxODM3LkhQUHJpdmFjeVNldHRpbmdzIiwNCiAgICAgICAgICAgICAgICAgIkFEMkYxODM3LkhQUXVpY2tEcm9wIiwNCiAgICAgICAgICAgICAgICAgIkFEMkYxODM3LkhQUXVpY2tUb3VjaCIsDQogICAgICAgICAgICAgICAgICJBRDJGMTgzNy5IUFJlZ2lzdHJhdGlvbiIsDQogICAgICAgICAgICAgICAgICJBRDJGMTgzNy5IUFN1cHBvcnRBc3Npc3RhbnQiLA0KICAgICAgICAgICAgICAgICAiQUQyRjE4MzcuSFBTdXJlU2hpZWxkQUkiLA0KICAgICAgICAgICAgICAgICAiQUQyRjE4MzcuSFBTeXN0ZW1JbmZvcm1hdGlvbiIsDQogICAgICAgICAgICAgICAgICJBRDJGMTgzNy5IUFdlbGNvbWUiLA0KICAgICAgICAgICAgICAgICAiQUQyRjE4MzcuSFBXb3JrV2VsbCIsDQogICAgICAgICAgICAgICAgICJIVUxVTExDLkhVTFVQTFVTIiwNCiAgICAgICAgICAgICAgICAgImlIZWFydFJhZGlvIiwNCiAgICAgICAgICAgICAgICAgIkZhY2Vib29rLkluc3RhZ3JhbSIsDQogICAgICAgICAgICAgICAgICJFMDQ2OTYzRi5MZW5vdm9Db21wYW5pb24iLA0KICAgICAgICAgICAgICAgICAiTGVub3ZvQ29tcGFueUxpbWl0ZWQuTGVub3ZvVmFudGFnZVNlcnZpY2UiLA0KICAgICAgICAgICAgICAgICAiTEdFbGVjdHJvbmljcy5MR01vbml0b3JBcHAiLA0KICAgICAgICAgICAgICAgICAiTGlua2VkSW5mb3JXaW5kb3dzIiwNCiAgICAgICAgICAgICAgICAgIlNpZGlhLkxpdmVXYWxscGFwZXIiLA0KICAgICAgICAgICAgICAgICAiTWljcm9zb2Z0LndpbmRvd3Njb21tdW5pY2F0aW9uc2FwcHMiLA0KICAgICAgICAgICAgICAgICAiTWFyY2hvZkVtcGlyZXMiLA0KICAgICAgICAgICAgICAgICAiTWljcm9zb2Z0Lk1lc3NhZ2luZyIsDQogICAgICAgICAgICAgICAgICJNaWNyb3NvZnQuTTM2NUNvbXBhbmlvbnMiLA0KICAgICAgICAgICAgICAgICAiWFA5Q1hOR1BQSjk3WFgiLA0KICAgICAgICAgICAgICAgICAiTWljcm9zb2Z0Lk1pY3Jvc29mdEpvdXJuYWwiLA0KICAgICAgICAgICAgICAgICAiTWljcm9zb2Z0Lk5ld3MiLA0KICAgICAgICAgICAgICAgICAiTWljcm9zb2Z0LlBDTWFuYWdlciIsDQogICAgICAgICAgICAgICAgICJNU1RlYW1zIiwNCiAgICAgICAgICAgICAgICAgIk1pY3Jvc29mdFRlYW1zIiwNCiAgICAgICAgICAgICAgICAgIk1pY3Jvc29mdC5Ub2RvcyIsDQogICAgICAgICAgICAgICAgICJNaWNyb3NvZnQuTWl4ZWRSZWFsaXR5LlBvcnRhbCIsDQogICAgICAgICAgICAgICAgICJNaWNyb3NvZnQuWnVuZVZpZGVvIiwNCiAgICAgICAgICAgICAgICAgIkFEMkYxODM3Lm15SFAiLA0KICAgICAgICAgICAgICAgICAiNERGOUUwRjguTmV0ZmxpeCIsDQogICAgICAgICAgICAgICAgICJNaWNyb3NvZnQuTmV0d29ya1NwZWVkVGVzdCIsDQogICAgICAgICAgICAgICAgICJOWVRDcm9zc3dvcmQiLA0KICAgICAgICAgICAgICAgICAiTWljcm9zb2Z0Lk1pY3Jvc29mdE9mZmljZUh1YiIsDQogICAgICAgICAgICAgICAgICJPbmVDYWxlbmRhciIsDQogICAgICAgICAgICAgICAgICJNaWNyb3NvZnQuT25lQ29ubmVjdCIsDQogICAgICAgICAgICAgICAgICJNaWNyb3NvZnQuT25lRHJpdmUiLA0KICAgICAgICAgICAgICAgICAiTWljcm9zb2Z0Lk9mZmljZS5PbmVOb3RlIiwNCiAgICAgICAgICAgICAgICAgIk1pY3Jvc29mdC5PdXRsb29rRm9yV2luZG93cyIsDQogICAgICAgICAgICAgICAgICJNaWNyb3NvZnQuUGFpbnQiLA0KICAgICAgICAgICAgICAgICAiTWljcm9zb2Z0Lk1TUGFpbnQiLA0KICAgICAgICAgICAgICAgICAiUGFuZG9yYU1lZGlhSW5jIiwNCiAgICAgICAgICAgICAgICAgIk1pY3Jvc29mdC5QZW9wbGUiLA0KICAgICAgICAgICAgICAgICAiTWljcm9zb2Z0LllvdXJQaG9uZSIsDQogICAgICAgICAgICAgICAgICJNaWNyb3NvZnQuV2luZG93cy5QaG90b3MiLA0KICAgICAgICAgICAgICAgICAiUGhvdG90YXN0aWNDb2xsYWdlIiwNCiAgICAgICAgICAgICAgICAgIlBpY3NBcnQtUGhvdG9TdHVkaW8iLA0KICAgICAgICAgICAgICAgICAiUG9sYXJyUGhvdG9FZGl0b3JBY2FkZW1pY0VkaXRpb24iLA0KICAgICAgICAgICAgICAgICAiTWljcm9zb2Z0LlBvd2VyQXV0b21hdGVEZXNrdG9wIiwNCiAgICAgICAgICAgICAgICAgIk1pY3Jvc29mdC5NaWNyb3NvZnRQb3dlckJJRm9yV2luZG93cyIsDQogICAgICAgICAgICAgICAgICJBbWF6b25WaWRlby5QcmltZVZpZGVvIiwNCiAgICAgICAgICAgICAgICAgIk1pY3Jvc29mdC5QcmludDNEIiwNCiAgICAgICAgICAgICAgICAgIk1pY3Jvc29mdENvcnBvcmF0aW9uSUkuUXVpY2tBc3Npc3QiLA0KICAgICAgICAgICAgICAgICAiZmxhcmVnYW1lc0dtYkguUm95YWxSZXZvbHQiLA0KICAgICAgICAgICAgICAgICAiTWljcm9zb2Z0LlNreXBlQXBwIiwNCiAgICAgICAgICAgICAgICAgIlNsaW5nVFYiLA0KICAgICAgICAgICAgICAgICAiTWljcm9zb2Z0Lk1pY3Jvc29mdFNvbGl0YWlyZUNvbGxlY3Rpb24iLA0KICAgICAgICAgICAgICAgICAiTWljcm9zb2Z0LldpbmRvd3NTb3VuZFJlY29yZGVyIiwNCiAgICAgICAgICAgICAgICAgIlNwb3RpZnlBQi5TcG90aWZ5TXVzaWMiLA0KICAgICAgICAgICAgICAgICAiTWljcm9zb2Z0Lk1pY3Jvc29mdFN0aWNreU5vdGVzIiwNCiAgICAgICAgICAgICAgICAgIk1pY3Jvc29mdC5PZmZpY2UuU3dheSIsDQogICAgICAgICAgICAgICAgICJCeXRlZGFuY2VQdGUuTHRkLlRpa1RvayIsDQogICAgICAgICAgICAgICAgICJUdW5lSW5SYWRpbyIsDQogICAgICAgICAgICAgICAgICJNaWNyb3NvZnQuV2hpdGVib2FyZCIsDQogICAgICAgICAgICAgICAgICJNaWNyb3NvZnQuU3RhcnRFeHBlcmllbmNlc0FwcCIsDQogICAgICAgICAgICAgICAgICJNaWNyb3NvZnQuV2lkZ2V0c1BsYXRmb3JtUnVudGltZSIsDQogICAgICAgICAgICAgICAgICJNaWNyb3NvZnQuV2luZG93c01hcHMiLA0KICAgICAgICAgICAgICAgICAiTWljcm9zb2Z0V2luZG93cy5DbGllbnQuV2ViRXhwZXJpZW5jZSIsDQogICAgICAgICAgICAgICAgICJXaW5aaXBVbml2ZXJzYWwiLA0KICAgICAgICAgICAgICAgICAiTWljcm9zb2Z0Llhib3hBcHAiLA0KICAgICAgICAgICAgICAgICAiTWljcm9zb2Z0Llhib3hHYW1lT3ZlcmxheSIsDQogICAgICAgICAgICAgICAgICJNaWNyb3NvZnQuR2FtaW5nQXBwIiwNCiAgICAgICAgICAgICAgICAgIk1pY3Jvc29mdC5YYm94R2FtaW5nT3ZlcmxheSIsDQogICAgICAgICAgICAgICAgICJNaWNyb3NvZnQuWGJveElkZW50aXR5UHJvdmlkZXIiLA0KICAgICAgICAgICAgICAgICAiTWljcm9zb2Z0Llhib3hTcGVlY2hUb1RleHRPdmVybGF5IiwNCiAgICAgICAgICAgICAgICAgIk1pY3Jvc29mdC5YYm94LlRDVUkiDQogICAgICAgICAgICAgXSwNCiAgICAiVHdlYWtzIjogIFsNCiAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICJWYWx1ZSI6ICB0cnVlLA0KICAgICAgICAgICAgICAgICAgICAgICAiTmFtZSI6ICAiRGlzYWJsZURldmljZUF1dG9BcHBEb3dubG9hZCINCiAgICAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIlZhbHVlIjogIHRydWUsDQogICAgICAgICAgICAgICAgICAgICAgICJOYW1lIjogICJEaXNhYmxlU2V0dGluZ3MzNjVBZHMiDQogICAgICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICJWYWx1ZSI6ICB0cnVlLA0KICAgICAgICAgICAgICAgICAgICAgICAiTmFtZSI6ICAiRW5hYmxlRGFya01vZGUiDQogICAgICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICJWYWx1ZSI6ICB0cnVlLA0KICAgICAgICAgICAgICAgICAgICAgICAiTmFtZSI6ICAiU2hvd1NlYXJjaEJveFRiIg0KICAgICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAiVmFsdWUiOiAgdHJ1ZSwNCiAgICAgICAgICAgICAgICAgICAgICAgIk5hbWUiOiAgIkRpc2FibGVUZWxlbWV0cnkiDQogICAgICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICJWYWx1ZSI6ICB0cnVlLA0KICAgICAgICAgICAgICAgICAgICAgICAiTmFtZSI6ICAiRGlzYWJsZVdpZGdldHMiDQogICAgICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICJWYWx1ZSI6ICB0cnVlLA0KICAgICAgICAgICAgICAgICAgICAgICAiTmFtZSI6ICAiRGlzYWJsZUxvY2tzY3JlZW5UaXBzIg0KICAgICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAiVmFsdWUiOiAgdHJ1ZSwNCiAgICAgICAgICAgICAgICAgICAgICAgIk5hbWUiOiAgIkRpc2FibGVBSVN2Y0F1dG9TdGFydCINCiAgICAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIlZhbHVlIjogIHRydWUsDQogICAgICAgICAgICAgICAgICAgICAgICJOYW1lIjogICJEaXNhYmxlU3RhcnRQaG9uZUxpbmsiDQogICAgICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICJWYWx1ZSI6ICB0cnVlLA0KICAgICAgICAgICAgICAgICAgICAgICAiTmFtZSI6ICAiRGlzYWJsZUJyYXZlQmxvYXQiDQogICAgICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICJWYWx1ZSI6ICB0cnVlLA0KICAgICAgICAgICAgICAgICAgICAgICAiTmFtZSI6ICAiRGlzYWJsZVN0YXJ0UmVjb21tZW5kZWQiDQogICAgICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICJWYWx1ZSI6ICB0cnVlLA0KICAgICAgICAgICAgICAgICAgICAgICAiTmFtZSI6ICAiRGlzYWJsZVN0b3JlU2VhcmNoU3VnZ2VzdGlvbnMiDQogICAgICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICJWYWx1ZSI6ICB0cnVlLA0KICAgICAgICAgICAgICAgICAgICAgICAiTmFtZSI6ICAiQWRkRm9sZGVyc1RvVGhpc1BDIg0KICAgICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAiVmFsdWUiOiAgdHJ1ZSwNCiAgICAgICAgICAgICAgICAgICAgICAgIk5hbWUiOiAgIlByZXZlbnRVcGRhdGVBdXRvUmVib290Ig0KICAgICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAiVmFsdWUiOiAgdHJ1ZSwNCiAgICAgICAgICAgICAgICAgICAgICAgIk5hbWUiOiAgIkRpc2FibGVEZWxpdmVyeU9wdGltaXphdGlvbiINCiAgICAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIlZhbHVlIjogIHRydWUsDQogICAgICAgICAgICAgICAgICAgICAgICJOYW1lIjogICJIaWRlVGFza3ZpZXciDQogICAgICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICJWYWx1ZSI6ICB0cnVlLA0KICAgICAgICAgICAgICAgICAgICAgICAiTmFtZSI6ICAiRGlzYWJsZVRyYW5zcGFyZW5jeSINCiAgICAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIlZhbHVlIjogIHRydWUsDQogICAgICAgICAgICAgICAgICAgICAgICJOYW1lIjogICJEaXNhYmxlR2FtZUJhckludGVncmF0aW9uIg0KICAgICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAiVmFsdWUiOiAgdHJ1ZSwNCiAgICAgICAgICAgICAgICAgICAgICAgIk5hbWUiOiAgIkRpc2FibGVOb3RpZmljYXRpb25zIg0KICAgICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAiVmFsdWUiOiAgdHJ1ZSwNCiAgICAgICAgICAgICAgICAgICAgICAgIk5hbWUiOiAgIkRpc2FibGVTdWdnZXN0aW9ucyINCiAgICAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIlZhbHVlIjogIHRydWUsDQogICAgICAgICAgICAgICAgICAgICAgICJOYW1lIjogICJTaG93S25vd25GaWxlRXh0Ig0KICAgICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAiVmFsdWUiOiAgdHJ1ZSwNCiAgICAgICAgICAgICAgICAgICAgICAgIk5hbWUiOiAgIkNsZWFyU3RhcnRBbGxVc2VycyINCiAgICAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIlZhbHVlIjogIHRydWUsDQogICAgICAgICAgICAgICAgICAgICAgICJOYW1lIjogICJIaWRlT25lZHJpdmUiDQogICAgICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICJWYWx1ZSI6ICB0cnVlLA0KICAgICAgICAgICAgICAgICAgICAgICAiTmFtZSI6ICAiSGlkZUdhbGxlcnkiDQogICAgICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICJWYWx1ZSI6ICB0cnVlLA0KICAgICAgICAgICAgICAgICAgICAgICAiTmFtZSI6ICAiU2hvd0hpZGRlbkZvbGRlcnMiDQogICAgICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICJWYWx1ZSI6ICB0cnVlLA0KICAgICAgICAgICAgICAgICAgICAgICAiTmFtZSI6ICAiRGlzYWJsZUVkZ2VBSSINCiAgICAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIlZhbHVlIjogIHRydWUsDQogICAgICAgICAgICAgICAgICAgICAgICJOYW1lIjogICJEaXNhYmxlRFZSIg0KICAgICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAiVmFsdWUiOiAgdHJ1ZSwNCiAgICAgICAgICAgICAgICAgICAgICAgIk5hbWUiOiAgIkRpc2FibGVOb3RlcGFkQUkiDQogICAgICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICJWYWx1ZSI6ICB0cnVlLA0KICAgICAgICAgICAgICAgICAgICAgICAiTmFtZSI6ICAiRGlzYWJsZVN0aWNreUtleXMiDQogICAgICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICJWYWx1ZSI6ICB0cnVlLA0KICAgICAgICAgICAgICAgICAgICAgICAiTmFtZSI6ICAiRGlzYWJsZUZpbmRNeURldmljZSINCiAgICAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIlZhbHVlIjogIHRydWUsDQogICAgICAgICAgICAgICAgICAgICAgICJOYW1lIjogICJEaXNhYmxlVXBkYXRlQVNBUCINCiAgICAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIlZhbHVlIjogIHRydWUsDQogICAgICAgICAgICAgICAgICAgICAgICJOYW1lIjogICJEaXNhYmxlQ29waWxvdCINCiAgICAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIlZhbHVlIjogIHRydWUsDQogICAgICAgICAgICAgICAgICAgICAgICJOYW1lIjogICJEaXNhYmxlQ2xpY2tUb0RvIg0KICAgICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAiVmFsdWUiOiAgdHJ1ZSwNCiAgICAgICAgICAgICAgICAgICAgICAgIk5hbWUiOiAgIkRpc2FibGVTdG9yYWdlU2Vuc2UiDQogICAgICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICJWYWx1ZSI6ICB0cnVlLA0KICAgICAgICAgICAgICAgICAgICAgICAiTmFtZSI6ICAiRGlzYWJsZUJpbmciDQogICAgICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICJWYWx1ZSI6ICB0cnVlLA0KICAgICAgICAgICAgICAgICAgICAgICAiTmFtZSI6ICAiRGlzYWJsZURlc2t0b3BTcG90bGlnaHQiDQogICAgICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICJWYWx1ZSI6ICB0cnVlLA0KICAgICAgICAgICAgICAgICAgICAgICAiTmFtZSI6ICAiRGlzYWJsZVJlY2FsbCINCiAgICAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIlZhbHVlIjogIHRydWUsDQogICAgICAgICAgICAgICAgICAgICAgICJOYW1lIjogICJEaXNhYmxlRWRnZUFkcyINCiAgICAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIlZhbHVlIjogIHRydWUsDQogICAgICAgICAgICAgICAgICAgICAgICJOYW1lIjogICJEaXNhYmxlTG9jYXRpb25TZXJ2aWNlcyINCiAgICAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIlZhbHVlIjogIHRydWUsDQogICAgICAgICAgICAgICAgICAgICAgICJOYW1lIjogICJEaXNhYmxlUGFpbnRBSSINCiAgICAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIlZhbHVlIjogIHRydWUsDQogICAgICAgICAgICAgICAgICAgICAgICJOYW1lIjogICJEaXNhYmxlQW5pbWF0aW9ucyINCiAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICBdLA0KICAgICJEZXBsb3ltZW50IjogIFsNCiAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIlZhbHVlIjogIDAsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAiTmFtZSI6ICAiVXNlclNlbGVjdGlvbkluZGV4Ig0KICAgICAgICAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAiVmFsdWUiOiAgMCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICJOYW1lIjogICJBcHBSZW1vdmFsU2NvcGVJbmRleCINCiAgICAgICAgICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIlZhbHVlIjogIHRydWUsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAiTmFtZSI6ICAiQ3JlYXRlUmVzdG9yZVBvaW50Ig0KICAgICAgICAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAiVmFsdWUiOiAgZmFsc2UsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAiTmFtZSI6ICAiU2tpcFJlZ2lzdHJ5QmFja3VwIg0KICAgICAgICAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAiVmFsdWUiOiAgdHJ1ZSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICJOYW1lIjogICJSZXN0YXJ0RXhwbG9yZXIiDQogICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICBdLA0KICAgICJWZXJzaW9uIjogICIxLjAiDQp9DQo=' $workPath = Join-Path ([IO.Path]::GetTempPath()) ('PacketHub-' + [guid]::NewGuid().ToString('N')) $logDirectory = Join-Path $env:LOCALAPPDATA 'PacketHub\Logs' $transcribing = $false $powershellExe = Join-Path $env:SystemRoot 'System32\WindowsPowerShell\v1.0\powershell.exe' if ([Environment]::Is64BitOperatingSystem -and -not [Environment]::Is64BitProcess) { $powershellExe = Join-Path $env:SystemRoot 'Sysnative\WindowsPowerShell\v1.0\powershell.exe' } function Invoke-PacketHubStage { param([string]$Name, [string]$Path, [string[]]$StageArguments = @()) # Native invocation shares the console and waits, but confines upstream Exit # statements and changes to preference variables to the child process. $originalModulePath = $env:PSModulePath try { $env:PSModulePath = ($originalModulePath -split ';' | Where-Object { $_ -like '*WindowsPowerShell*' }) -join ';' & $powershellExe -NoProfile -ExecutionPolicy Bypass -File $Path @StageArguments $stageExitCode = $LASTEXITCODE if ($stageExitCode -ne 0) { throw "$Name exited with code $stageExitCode. Setup stopped." } } finally { $env:PSModulePath = $originalModulePath } } try { $null = New-Item -ItemType Directory -Path $workPath -Force $null = New-Item -ItemType Directory -Path $logDirectory -Force $logPath = Join-Path $logDirectory ('setup-' + (Get-Date -Format 'yyyyMMdd-HHmmss-fff') + '.log') try { $null = Start-Transcript -Path $logPath -Force $transcribing = $true } catch { Write-Warning "Could not start setup log: $_" } [Net.ServicePointManager]::SecurityProtocol = [Net.ServicePointManager]::SecurityProtocol -bor [Net.SecurityProtocolType]::Tls12 $configPath = Join-Path $workPath 'preset.json' [IO.File]::WriteAllBytes($configPath, [Convert]::FromBase64String($embeddedConfig)) # PACKETHUB_STAGE debloat | Win11Debloat | Exported preset. Silent execution. if (-not $SkipDebloat) { Write-Host '[1/3] Win11Debloat' $bootstrapPath = Join-Path $workPath 'Win11Debloat-launcher.ps1' Invoke-RestMethod -Uri 'https://debloat.raphi.re/' -OutFile $bootstrapPath Invoke-PacketHubStage -Name 'Win11Debloat' -Path $bootstrapPath -StageArguments @('-Config', $configPath, '-Silent') } else { Write-Host '[1/3] Win11Debloat skipped.' } # PACKETHUB_STAGE massgrave | Massgrave | Opens the interactive activation menu. No unattended options. Write-Host '[2/3] Massgrave' $massgravePath = Join-Path $workPath 'Massgrave-launcher.ps1' [IO.File]::WriteAllText($massgravePath, "[Net.ServicePointManager]::SecurityProtocol = [Net.ServicePointManager]::SecurityProtocol -bor [Net.SecurityProtocolType]::Tls12`r`nirm https://get.activated.win | iex`r`n", [Text.UTF8Encoding]::new($false)) Invoke-PacketHubStage -Name 'Massgrave' -Path $massgravePath # PACKETHUB_STAGE desktop | Black desktop | Clears the current user's wallpaper and sets a solid black background. Write-Host '[3/3] Black desktop' if (-not ('FreshWindowsSetup.Desktop' -as [type])) { Add-Type -TypeDefinition @" using System; using System.Runtime.InteropServices; namespace FreshWindowsSetup { public static class Desktop { [DllImport("user32.dll", CharSet = CharSet.Unicode, SetLastError = true)] [return: MarshalAs(UnmanagedType.Bool)] public static extern bool SystemParametersInfo(uint action, uint param, string value, uint flags); [DllImport("user32.dll", SetLastError = true)] [return: MarshalAs(UnmanagedType.Bool)] public static extern bool SetSysColors(int count, int[] elements, int[] colors); } } "@ } Set-ItemProperty -LiteralPath 'HKCU:\Control Panel\Desktop' -Name Wallpaper -Value '' Set-ItemProperty -LiteralPath 'HKCU:\Control Panel\Colors' -Name Background -Value '0 0 0' $wallpaperKey = 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Wallpapers' $null = New-Item -Path $wallpaperKey -Force New-ItemProperty -LiteralPath $wallpaperKey -Name BackgroundType -PropertyType DWord -Value 1 -Force | Out-Null if (-not [FreshWindowsSetup.Desktop]::SetSysColors(1, [int[]]@(1), [int[]]@(0))) { throw 'Windows could not set the background color.' } if (-not [FreshWindowsSetup.Desktop]::SystemParametersInfo(20, 0, '', 3)) { throw 'Windows could not clear the wallpaper.' } Write-Host 'Setup complete.' } catch { Write-Warning "Setup stopped: $($_.Exception.Message)" if ($logPath) { Write-Host "Log: $logPath" } throw } finally { if ($transcribing) { Stop-Transcript | Out-Null } # Delete only the per-run folder created directly inside the temp directory. $resolvedWork = [IO.Path]::GetFullPath($workPath) $tempParent = [IO.Path]::GetFullPath([IO.Path]::GetTempPath()).TrimEnd('\') if (([IO.Path]::GetDirectoryName($resolvedWork) -eq $tempParent) -and ([IO.Path]::GetFileName($resolvedWork) -match '^PacketHub-[0-9a-f]{32}$')) { Remove-Item -LiteralPath $resolvedWork -Recurse -Force -ErrorAction SilentlyContinue } }