Private/Get-ADTWinGetExitCodeTable.ps1
#----------------------------------------------------------------------------- # # MARK: Get-ADTWinGetExitCodeTable # #----------------------------------------------------------------------------- function Get-ADTWinGetExitCodeTable { [CmdletBinding()] param ( [Parameter(Mandatory = $false)] [System.Management.Automation.SwitchParameter]$Dynamic ) # If dynamic, get all WinGet exit codes from the source code and munge it into a PSCustomObject for lookups. if ($Dynamic) { # Open object for returning to the caller. $obj = [ordered]@{} # Process the source code for its exit codes. (Invoke-RestMethod -UseBasicParsing -Uri 'https://raw.githubusercontent.com/microsoft/winget-cli/master/src/AppInstallerSharedLib/Public/AppInstallerErrors.h').Split("`n") | & { process { if ($_ -match '^.+_ERROR_.+0x\w{8}') { $obj.Add(($_ -replace '^.+_ERROR_(\w+).+$', '$1'), [System.Int32]($_ -replace '^.+(0x\w{8}).+$', '$1')) } } } # Throw if we somehow have a zero count in our object. if (!$obj.Count) { $naerParams = @{ Exception = [System.IO.InvalidDataException]::new("Failed to retrieve exit codes from WinGet's source code. The source code may have changed and can no longer be parsed.") Category = [System.Management.Automation.ErrorCategory]::InvalidResult ErrorId = 'WinGetExitCodeParsingError' TargetObject = $obj RecommendedAction = "Please review the source code at [https://raw.githubusercontent.com/microsoft/winget-cli/master/src/AppInstallerSharedLib/Public/AppInstallerErrors.h] for changes, then try again." } $PSCmdlet.ThrowTerminatingError((New-ADTErrorRecord @naerParams)) } return [pscustomobject]$obj } # If we're here, return a hard coded list in case generating the below lookup table fails on unstable internet connections. return [pscustomobject]@{ INTERNAL_ERROR = -1978335231 INVALID_CL_ARGUMENTS = -1978335230 COMMAND_FAILED = -1978335229 MANIFEST_FAILED = -1978335228 CTRL_SIGNAL_RECEIVED = -1978335227 SHELLEXEC_INSTALL_FAILED = -1978335226 UNSUPPORTED_MANIFESTVERSION = -1978335225 DOWNLOAD_FAILED = -1978335224 CANNOT_WRITE_TO_UPLEVEL_INDEX = -1978335223 INDEX_INTEGRITY_COMPROMISED = -1978335222 SOURCES_INVALID = -1978335221 SOURCE_NAME_ALREADY_EXISTS = -1978335220 INVALID_SOURCE_TYPE = -1978335219 PACKAGE_IS_BUNDLE = -1978335218 SOURCE_DATA_MISSING = -1978335217 NO_APPLICABLE_INSTALLER = -1978335216 INSTALLER_HASH_MISMATCH = -1978335215 SOURCE_NAME_DOES_NOT_EXIST = -1978335214 SOURCE_ARG_ALREADY_EXISTS = -1978335213 NO_APPLICATIONS_FOUND = -1978335212 NO_SOURCES_DEFINED = -1978335211 MULTIPLE_APPLICATIONS_FOUND = -1978335210 NO_MANIFEST_FOUND = -1978335209 EXTENSION_PUBLIC_FAILED = -1978335208 COMMAND_REQUIRES_ADMIN = -1978335207 SOURCE_NOT_SECURE = -1978335206 MSSTORE_BLOCKED_BY_POLICY = -1978335205 MSSTORE_APP_BLOCKED_BY_POLICY = -1978335204 EXPERIMENTAL_FEATURE_DISABLED = -1978335203 MSSTORE_INSTALL_FAILED = -1978335202 COMPLETE_INPUT_BAD = -1978335201 YAML_INIT_FAILED = -1978335200 YAML_INVALID_MAPPING_KEY = -1978335199 YAML_DUPLICATE_MAPPING_KEY = -1978335198 YAML_INVALID_OPERATION = -1978335197 YAML_DOC_BUILD_FAILED = -1978335196 YAML_INVALID_EMITTER_STATE = -1978335195 YAML_INVALID_DATA = -1978335194 LIBYAML_ERROR = -1978335193 MANIFEST_VALIDATION_WARNING = -1978335192 MANIFEST_VALIDATION_FAILURE = -1978335191 INVALID_MANIFEST = -1978335190 UPDATE_NOT_APPLICABLE = -1978335189 UPDATE_ALL_HAS_FAILURE = -1978335188 INSTALLER_SECURITY_CHECK_FAILED = -1978335187 DOWNLOAD_SIZE_MISMATCH = -1978335186 NO_UNINSTALL_INFO_FOUND = -1978335185 EXEC_UNINSTALL_COMMAND_FAILED = -1978335184 ICU_BREAK_ITERATOR_ERROR = -1978335183 ICU_CASEMAP_ERROR = -1978335182 ICU_REGEX_ERROR = -1978335181 IMPORT_INSTALL_FAILED = -1978335180 NOT_ALL_PACKAGES_FOUND = -1978335179 JSON_INVALID_FILE = -1978335178 SOURCE_NOT_REMOTE = -1978335177 UNSUPPORTED_RESTSOURCE = -1978335176 RESTSOURCE_INVALID_DATA = -1978335175 BLOCKED_BY_POLICY = -1978335174 RESTAPI_INTERNAL_ERROR = -1978335173 RESTSOURCE_INVALID_URL = -1978335172 RESTAPI_UNSUPPORTED_MIME_TYPE = -1978335171 RESTSOURCE_INVALID_VERSION = -1978335170 SOURCE_DATA_INTEGRITY_FAILURE = -1978335169 STREAM_READ_FAILURE = -1978335168 PACKAGE_AGREEMENTS_NOT_ACCEPTED = -1978335167 PROMPT_INPUT_ERROR = -1978335166 UNSUPPORTED_SOURCE_REQUEST = -1978335165 RESTAPI_ENDPOINT_NOT_FOUND = -1978335164 SOURCE_OPEN_FAILED = -1978335163 SOURCE_AGREEMENTS_NOT_ACCEPTED = -1978335162 CUSTOMHEADER_EXCEEDS_MAXLENGTH = -1978335161 MISSING_RESOURCE_FILE = -1978335160 MSI_INSTALL_FAILED = -1978335159 INVALID_MSIEXEC_ARGUMENT = -1978335158 FAILED_TO_OPEN_ALL_SOURCES = -1978335157 DEPENDENCIES_VALIDATION_FAILED = -1978335156 MISSING_PACKAGE = -1978335155 INVALID_TABLE_COLUMN = -1978335154 UPGRADE_VERSION_NOT_NEWER = -1978335153 UPGRADE_VERSION_UNKNOWN = -1978335152 ICU_CONVERSION_ERROR = -1978335151 PORTABLE_INSTALL_FAILED = -1978335150 PORTABLE_REPARSE_POINT_NOT_SUPPORTED = -1978335149 PORTABLE_PACKAGE_ALREADY_EXISTS = -1978335148 PORTABLE_SYMLINK_PATH_IS_DIRECTORY = -1978335147 INSTALLER_PROHIBITS_ELEVATION = -1978335146 PORTABLE_UNINSTALL_FAILED = -1978335145 ARP_VERSION_VALIDATION_FAILED = -1978335144 UNSUPPORTED_ARGUMENT = -1978335143 BIND_WITH_EMBEDDED_NULL = -1978335142 NESTEDINSTALLER_NOT_FOUND = -1978335141 EXTRACT_ARCHIVE_FAILED = -1978335140 NESTEDINSTALLER_INVALID_PATH = -1978335139 PINNED_CERTIFICATE_MISMATCH = -1978335138 INSTALL_LOCATION_REQUIRED = -1978335137 ARCHIVE_SCAN_FAILED = -1978335136 PACKAGE_ALREADY_INSTALLED = -1978335135 PIN_ALREADY_EXISTS = -1978335134 PIN_DOES_NOT_EXIST = -1978335133 CANNOT_OPEN_PINNING_INDEX = -1978335132 MULTIPLE_INSTALL_FAILED = -1978335131 MULTIPLE_UNINSTALL_FAILED = -1978335130 NOT_ALL_QUERIES_FOUND_SINGLE = -1978335129 PACKAGE_IS_PINNED = -1978335128 PACKAGE_IS_STUB = -1978335127 APPTERMINATION_RECEIVED = -1978335126 DOWNLOAD_DEPENDENCIES = -1978335125 DOWNLOAD_COMMAND_PROHIBITED = -1978335124 SERVICE_UNAVAILABLE = -1978335123 RESUME_ID_NOT_FOUND = -1978335122 CLIENT_VERSION_MISMATCH = -1978335121 INVALID_RESUME_STATE = -1978335120 CANNOT_OPEN_CHECKPOINT_INDEX = -1978335119 RESUME_LIMIT_EXCEEDED = -1978335118 INVALID_AUTHENTICATION_INFO = -1978335117 AUTHENTICATION_TYPE_NOT_SUPPORTED = -1978335116 AUTHENTICATION_FAILED = -1978335115 AUTHENTICATION_INTERACTIVE_REQUIRED = -1978335114 AUTHENTICATION_CANCELLED_BY_USER = -1978335113 AUTHENTICATION_INCORRECT_ACCOUNT = -1978335112 NO_REPAIR_INFO_FOUND = -1978335111 REPAIR_NOT_APPLICABLE = -1978335110 EXEC_REPAIR_FAILED = -1978335109 REPAIR_NOT_SUPPORTED = -1978335108 ADMIN_CONTEXT_REPAIR_PROHIBITED = -1978335107 SQLITE_CONNECTION_TERMINATED = -1978335106 DISPLAYCATALOG_API_FAILED = -1978335105 NO_APPLICABLE_DISPLAYCATALOG_PACKAGE = -1978335104 SFSCLIENT_API_FAILED = -1978335103 NO_APPLICABLE_SFSCLIENT_PACKAGE = -1978335102 LICENSING_API_FAILED = -1978335101 INSTALL_PACKAGE_IN_USE = -1978334975 INSTALL_INSTALL_IN_PROGRESS = -1978334974 INSTALL_FILE_IN_USE = -1978334973 INSTALL_MISSING_DEPENDENCY = -1978334972 INSTALL_DISK_FULL = -1978334971 INSTALL_INSUFFICIENT_MEMORY = -1978334970 INSTALL_NO_NETWORK = -1978334969 INSTALL_CONTACT_SUPPORT = -1978334968 INSTALL_REBOOT_REQUIRED_TO_FINISH = -1978334967 INSTALL_REBOOT_REQUIRED_FOR_INSTALL = -1978334966 INSTALL_REBOOT_INITIATED = -1978334965 INSTALL_CANCELLED_BY_USER = -1978334964 INSTALL_ALREADY_INSTALLED = -1978334963 INSTALL_DOWNGRADE = -1978334962 INSTALL_BLOCKED_BY_POLICY = -1978334961 INSTALL_DEPENDENCIES = -1978334960 INSTALL_PACKAGE_IN_USE_BY_APPLICATION = -1978334959 INSTALL_INVALID_PARAMETER = -1978334958 INSTALL_SYSTEM_NOT_SUPPORTED = -1978334957 INSTALL_UPGRADE_NOT_SUPPORTED = -1978334956 INVALID_CONFIGURATION_FILE = -1978286079 INVALID_YAML = -1978286078 INVALID_FIELD_TYPE = -1978286077 UNKNOWN_CONFIGURATION_FILE_VERSION = -1978286076 SET_APPLY_FAILED = -1978286075 DUPLICATE_IDENTIFIER = -1978286074 MISSING_DEPENDENCY = -1978286073 DEPENDENCY_UNSATISFIED = -1978286072 ASSERTION_FAILED = -1978286071 MANUALLY_SKIPPED = -1978286070 WARNING_NOT_ACCEPTED = -1978286069 SET_DEPENDENCY_CYCLE = -1978286068 INVALID_FIELD_VALUE = -1978286067 MISSING_FIELD = -1978286066 TEST_FAILED = -1978286065 TEST_NOT_RUN = -1978286064 GET_FAILED = -1978286063 UNIT_NOT_INSTALLED = -1978285823 UNIT_NOT_FOUND_REPOSITORY = -1978285822 UNIT_MULTIPLE_MATCHES = -1978285821 UNIT_INVOKE_GET = -1978285820 UNIT_INVOKE_TEST = -1978285819 UNIT_INVOKE_SET = -1978285818 UNIT_MODULE_CONFLICT = -1978285817 UNIT_IMPORT_MODULE = -1978285816 UNIT_INVOKE_INVALID_RESULT = -1978285815 UNIT_SETTING_CONFIG_ROOT = -1978285808 UNIT_IMPORT_MODULE_ADMIN = -1978285807 NOT_SUPPORTED_BY_PROCESSOR = -1978285806 } } |