Powershell для прокрутки каждого профиля пользователя, чтобы получить номер версии программного обеспечения, а затем создать строку удаления и запустить команду

Надеюсь, что кто-то может дать мне представление о том, как продолжить работу с оставшимся сценарием. Сценарий должен получить номер версии установленного Chrome из этой сборки. Создайте строку для удаления, как показано ниже.

Я застрял на второй части, нормально получить номер версии.

  1. Какая логика будет следующей, чтобы затем перебрать каждый профиль пользователя для запуска setup.exe из C: \ Users [имя пользователя] \ appdata \ Local \ Google \ Chrome \ Application \ 90.0.4430.72 \ Installer. Я получаю ошибку: нераспознанный командлет на {& $unin}

Спасибо

      #UserHives - Find all the user profiles in the registry
$UserHives = Get-ChildItem Registry::HKEY_USERS\ |Where-Object {$_.Name -match '^HKEY_USERS\\S-1-5-21-[\d\-]+$'}
$UserProfile = $Env:USERPROFILE

#
foreach($user in $UserHives)


{
    #1.Get Version Of chrome
     
     #1. PATH TO SEARCH FOR
     $Path = Join-Path $user.PSPath "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Google Chrome"

            If (Test-Path $Path){
                 $GetVersion = Get-ItemProperty -Path $Path | Select-Object -Property Version
                 $VersionInstalled = $GetVersion.Version

                 

                 #create uninstallstring
                 $UninString = "\Google\Chrome\Application\$VersionInstalled\Installer\setup.exe --uninstall --Channel --chrome --force-uninstall"
                 $unin = $UserProfile + "" + $UninString

                 If($VersionInstalled){ & $unin}
                 
                 }
            
        }

1 ответ

Цитата из документов :

Оператор вызова не анализирует строки. Это означает, что вы не можете использовать параметры команды в строке при использовании оператора вызова.

Передайте аргументы отдельно:

      $uninArgs = "--uninstall", "--Channel", "--chrome", "--force-uninstall"
$uninExe = "$UserProfile\Google\Chrome\Application\$VersionInstalled\Installer\setup.exe"
if ($VersionInstalled) {
    & $uninExe $uninArgs
}
Другие вопросы по тегам