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