1

希望有人能给我一个关于如何继续执行剩余脚本的想法。该脚本是从该构建中获取已安装 Chrome 的版本号为卸载构建一个字符串,如下所示。

我被困在第二部分,获得版本号很好。

  1. 接下来的逻辑是什么,然后遍历每个用户配置文件以从 C:\Users[username]\appdata\Local\Google\Chrome\Application\90.0.4430.72\Installer 运行 setup.exe。我得到的错误是 { & $unin} 上无法识别的 cmdlet

谢谢

#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}
                 
                 }
            
        }
4

1 回答 1

0

文档中引用:

调用运算符不解析字符串。这意味着当您使用调用运算符时,您不能在字符串中使用命令参数。

分别传递参数:

$uninArgs = "--uninstall", "--Channel", "--chrome", "--force-uninstall"
$uninExe = "$UserProfile\Google\Chrome\Application\$VersionInstalled\Installer\setup.exe"
if ($VersionInstalled) {
    & $uninExe $uninArgs
}
于 2021-04-20T21:08:58.373 回答