При извлечении этой строки установки из реестра появляется невидимый начальный символ.
Я не могу запустить строку удаления или удалить этот символ.Различные итерации 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](https://i.stack.imgur.com/aoXsu.jpg)