PowerShell 找不到以 .EXE 结尾的文件
PowerShell cannot find files ending in .EXE
我有一个 PowerShell 脚本程序,它可以在我的计算机上找到一个文件,一旦找到就会显示结果。相关文件可以是全名或部分文件。如果文件不存在,则输出一条消息。
问题:似乎可以找到以.msi 结尾的files/application,但如果以.exe 结尾的files/application 将找不到。我该如何解决这个问题?
$ADObjects = Get-ADComputer -filter {(name -like "Your PC Name goes here")};
$ADObjects | ForEach {
$computerName = $_.name;
Write-Output $computerName;
$Versions = (Get-WmiObject -Class Win32_Product -ComputerName $computerName| Where-Object {$_.name -like "FireFox"}); # Finds all versions of the program
$Count = ($Versions | Measure-object).count;
if ($Count -eq 0) {
Write-Output "$computerName does not have this application.";
}
else {
Write-Output $Versions;
#$Versions.unistall(); # Uncommenting this line will uninstall the versions listed by the line above
}
}
这是一种快速查找计算机 Program Files 文件夹中所有 .exe 文件的方法:
$gci *.exe -path 'C:\Program Files\' -recurse
您可以优化它以仅搜索包含单词“Firefox”的文件。
但是,看来您并不是真的要查找文件,而是要查找 WIN32 产品。它们不是同一件事。如果您不知道自己在寻找什么,将很难告诉您如何寻找。
这是找到以exe结尾的文件添加到你的代码行
Where-Object { $_.Name -Match '.*\.exe$' }
Get-package 更快并且会列出 msi 和程序安装。 Msi 安装可以通过管道传输到 uninstall-package。您必须使用 invoke-command 到 运行 远程并行。
invoke-command comp1,comp1,comp3 { get-package *firefox* }
我有一个 PowerShell 脚本程序,它可以在我的计算机上找到一个文件,一旦找到就会显示结果。相关文件可以是全名或部分文件。如果文件不存在,则输出一条消息。
问题:似乎可以找到以.msi 结尾的files/application,但如果以.exe 结尾的files/application 将找不到。我该如何解决这个问题?
$ADObjects = Get-ADComputer -filter {(name -like "Your PC Name goes here")};
$ADObjects | ForEach {
$computerName = $_.name;
Write-Output $computerName;
$Versions = (Get-WmiObject -Class Win32_Product -ComputerName $computerName| Where-Object {$_.name -like "FireFox"}); # Finds all versions of the program
$Count = ($Versions | Measure-object).count;
if ($Count -eq 0) {
Write-Output "$computerName does not have this application.";
}
else {
Write-Output $Versions;
#$Versions.unistall(); # Uncommenting this line will uninstall the versions listed by the line above
}
}
这是一种快速查找计算机 Program Files 文件夹中所有 .exe 文件的方法:
$gci *.exe -path 'C:\Program Files\' -recurse
您可以优化它以仅搜索包含单词“Firefox”的文件。
但是,看来您并不是真的要查找文件,而是要查找 WIN32 产品。它们不是同一件事。如果您不知道自己在寻找什么,将很难告诉您如何寻找。
这是找到以exe结尾的文件添加到你的代码行
Where-Object { $_.Name -Match '.*\.exe$' }
Get-package 更快并且会列出 msi 和程序安装。 Msi 安装可以通过管道传输到 uninstall-package。您必须使用 invoke-command 到 运行 远程并行。
invoke-command comp1,comp1,comp3 { get-package *firefox* }