Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Powershell脚本,用于使用Quicktime扫描域中的PC并使用日志卸载_Powershell - Fatal编程技术网

Powershell脚本,用于使用Quicktime扫描域中的PC并使用日志卸载

Powershell脚本,用于使用Quicktime扫描域中的PC并使用日志卸载,powershell,Powershell,我知道这一定是一个简单的脚本,但我对Powershell有点不熟悉。我喜欢学,但要想弄明白这一点却非常困难。我在这里到处搜索过,但我只有一套hodge podge脚本,它们可以工作,也可以不工作,尤其是当它们放在一起时 我正试图想出一个Powershell脚本来扫描我们的域中安装了任何Quicktime版本的PC。如果找到它,然后卸载,无论哪种方式,我都希望将它导出到具有计算机名的日志文件中,如果它已卸载或无法连接。下面的脚本可以工作,但是它显示了属信息,并且没有任何东西可以将它与运行它的PC进

我知道这一定是一个简单的脚本,但我对Powershell有点不熟悉。我喜欢学,但要想弄明白这一点却非常困难。我在这里到处搜索过,但我只有一套hodge podge脚本,它们可以工作,也可以不工作,尤其是当它们放在一起时

我正试图想出一个Powershell脚本来扫描我们的域中安装了任何Quicktime版本的PC。如果找到它,然后卸载,无论哪种方式,我都希望将它导出到具有计算机名的日志文件中,如果它已卸载或无法连接。下面的脚本可以工作,但是它显示了属信息,并且没有任何东西可以将它与运行它的PC进行识别。如果软件不在上面,脚本会在第二行告诉我“不能对空值表达式调用方法”

$app = Get-WmiObject -Class Win32_Product -ComputerName (Get-Content "C:\Users\name\Desktop\pstest\test2list.txt") | Where-Object {$_.Name -like “*Quicktime*”}
$app.Uninstall() | Out-File C:\Users\name\Desktop\pstest\test2listout.txt

安东尼给出了答案

使用

gwmi win32|U产品| ft名称、版本、标识*

我可以找到所有安装的软件。我使用了foreach卸载程序,并与我找到的其他脚本混合使用。我让所有的计算机同时运行它,但手动运行,它工作了,至少对我来说是这样

$qtVer=获取子项-路径 HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall, HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall | 获取ItemProperty| 其中对象{$\.DisplayName-匹配“quicktime”}| 选择对象-属性DisplayName,卸载字符串

ForEach($ver,单位为$qtVer){


安东尼给出了答案

使用

gwmi win32|U产品| ft名称、版本、标识*

我可以找到所有安装的软件。我使用了foreach卸载程序,并与我找到的其他脚本混合使用。我让所有计算机同时运行它,但手动运行它,至少对我来说是有效的

$qtVer=获取子项-路径 HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall, HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall | 获取ItemProperty| 其中对象{$\.DisplayName-匹配“quicktime”}| 选择对象-属性DisplayName,卸载字符串

ForEach($ver,单位为$qtVer){


这看起来是一个开始感谢的好地方,我来看看。这看起来是一个开始感谢的好地方,我来看看。欢迎来到StackOverflow。我们希望在这里扩展答案,使它们独立,而不是依赖可能随时间消失的外部URL。欢迎来到StackOverflow。我们希望有答案在这里扩展,使他们独立,而不是依赖于外部网址,随着时间的推移可能消失。
If ($ver.UninstallString) {

    $uninst = $ver.UninstallString
    $uninst = $uninst -replace "/I", "/x "
    Start-Process cmd -ArgumentList "/c $uninst /quiet /norestart" -NoNewWindow
} }