PowerShell остаток символа из реестра тянуть - PullRequest
0 голосов
/ 03 февраля 2019

При извлечении этой строки установки из реестра появляется невидимый начальный символ.

Я не могу запустить строку удаления или удалить этот символ.Различные итерации split, replace, join и т. Д. Работают со строкой, но ничего не делают для изменения ошибочного поведения.Я пытался в PowerShell или консоли Windows.

Write-Output $uninst показывает правильную строку:

MsiExec.exe  /x {1F4D7BAB-E816-43DF-B4B1-5A41A2DA13E8} /qn

При выполнении этой строки в PowerShell всплывает всплывающая подсказка msiexec.При выполнении этой строки в оболочке Windows CMD в начале строки появляется символ белого квадрата.

# pull ESET uninstall string

$esetVer = Get-ChildItem -Path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall, HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall |
           Get-ItemProperty |
           Where-Object { $_.DisplayName -match "ESET Endpoint Antivirus" } |
           Select-Object -Property DisplayName, UninstallString

foreach ($ver in $esetVer) {
    if ($ver.UninstallString) {
        $uninst = $ver.UninstallString
        $uninst = $uninst.Replace('/I{',' /x {').Replace('}','} /qn')
        Invoke-Expression $uninst
        Write-Output $uninst
    }
}

Удаление первого символа только удаляет M.

Bad character

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...