远程注册表查询Powershell

时间:2015-07-09 17:26:42

标签: powershell

我正在尝试创建一个PowerShell脚本,该脚本从txt文件中获取计算机名称,检查注册表以查看当前版本的Flash的安装位置,如果它小于18.0.0.203,则运行卸载exe。这是我一直在尝试的:

appendChild

它可以很好地导出CSV,但是所有已安装的列都说"正在删除"即使它是当前版本。关于我做错了什么的任何想法?谢谢!

1 个答案:

答案 0 :(得分:0)

不是打开远程注册表项并运行cmd / c,而是为什么不创建[scriptblock]并将其传递给Invoke-Command。

AsJob然后回来查看结果。

[scriptblock]$code = {
$uninst = gci "C:\Windows\System32\Macromed\Flash" -Filter "*.exe" | ?{ $_.Name -ne "FlashUtil64_18_0_0_204_ActiveX.exe" -and $_.Name -like "FlashUtil64_18_0_0_*_ActiveX.exe" }
foreach($flash in $uninst) {
    Write-Host $flash.FullName
    $proc = New-Object System.Diagnostics.Process
    $proc.StartInfo.FileName = $flash.FullName
    $proc.StartInfo.Arguments = "-uninstall"
    $proc.Start()
    $proc.WaitForExit()
    Write-Host ("Uninstalling {0} from {1}" -f $flash.BaseName,$env:COMPUTERNAME)
}
}

Invoke-Command -ScriptBlock $code -ComputerName frmxncsge01 -AsJob

然后稍后回来和Get-Job |接收 - 工作 - 保持并查看结果。