STERKIN_RU Telegram 1009
​​▶️ Маленькая функция #PowerShell для преобразования кодов ошибок в понятный текст

На форум пришел человек с проблемой установки MS Office MSI. Коллеги запросили лог и увидели там:
Note: 1: 2203 2: C:\Windows\Installer\inprogressinstallinfo.ipi 3: -2147287037
Такие коды с отрицательным значением попадаются в ошибках приложений, журналах событий, логах Windows Installer и т.п.

У меня в профиле PowerShell ($profile) давно лежала функция Convert-Error для преобразования кодов ошибок с помощью утилиты certutil, я рассказывал про нее в блоге.

После публикации первой версии этого поста Вадимс Поданс доставил, что в функции лишняя конвертация в шестнадцатеричное значение, поскольку это встроено в PowerShell. Оптимальный вариант:
Function Convert-Error
([int]$Err)
{certutil -error $Err}


Вызывается так:
Convert-Error -2147287037

Результат на картинке↓ Windows Installer ожидал наличия папки %windir%\Installer, но ее не оказалось. Особо талантливый пользователь удалил за ненадобностью 🙉 После создания папки Office установился.

Применение функции не ограничивается кодами с отрицательным значением, попробуйте:
Convert-Error 0x80070005
Convert-Error 5

(Для чисел до 9999 по умолчанию предполагается префикс 0х8007)

Мне также доставили, что можно обойтись без certutil:
$iErrorCode = -2147287037
(New-Object -TypeName System.ComponentModel.Win32Exception($iErrorCode)).Message


Однако certutil универсальнее, поскольку умеет обрабатывать ошибки из других библиотек, например, wininet.dll. Если очень хочется без certutil, у Поданса есть и такой скрипт, но это уже above my paygrade ✌️



tgoop.com/sterkin_ru/1009
Create:
Last Update:

​​▶️ Маленькая функция #PowerShell для преобразования кодов ошибок в понятный текст

На форум пришел человек с проблемой установки MS Office MSI. Коллеги запросили лог и увидели там:
Note: 1: 2203 2: C:\Windows\Installer\inprogressinstallinfo.ipi 3: -2147287037
Такие коды с отрицательным значением попадаются в ошибках приложений, журналах событий, логах Windows Installer и т.п.

У меня в профиле PowerShell ($profile) давно лежала функция Convert-Error для преобразования кодов ошибок с помощью утилиты certutil, я рассказывал про нее в блоге.

После публикации первой версии этого поста Вадимс Поданс доставил, что в функции лишняя конвертация в шестнадцатеричное значение, поскольку это встроено в PowerShell. Оптимальный вариант:
Function Convert-Error
([int]$Err)
{certutil -error $Err}


Вызывается так:
Convert-Error -2147287037

Результат на картинке↓ Windows Installer ожидал наличия папки %windir%\Installer, но ее не оказалось. Особо талантливый пользователь удалил за ненадобностью 🙉 После создания папки Office установился.

Применение функции не ограничивается кодами с отрицательным значением, попробуйте:
Convert-Error 0x80070005
Convert-Error 5

(Для чисел до 9999 по умолчанию предполагается префикс 0х8007)

Мне также доставили, что можно обойтись без certutil:
$iErrorCode = -2147287037
(New-Object -TypeName System.ComponentModel.Win32Exception($iErrorCode)).Message


Однако certutil универсальнее, поскольку умеет обрабатывать ошибки из других библиотек, например, wininet.dll. Если очень хочется без certutil, у Поданса есть и такой скрипт, но это уже above my paygrade ✌️

BY Windows 11, 10, etc - Вадим Стеркин




Share with your friend now:
tgoop.com/sterkin_ru/1009

View MORE
Open in Telegram


Telegram News

Date: |

How to create a business channel on Telegram? (Tutorial) Content is editable within two days of publishing You can invite up to 200 people from your contacts to join your channel as the next step. Select the users you want to add and click “Invite.” You can skip this step altogether. To edit your name or bio, click the Menu icon and select “Manage Channel.” Find your optimal posting schedule and stick to it. The peak posting times include 8 am, 6 pm, and 8 pm on social media. Try to publish serious stuff in the morning and leave less demanding content later in the day.
from us


Telegram Windows 11, 10, etc - Вадим Стеркин
FROM American