我想問您如何使用正則運算式列出未從陣列安裝的應用程式。貝婁是我的代碼。
- 我想列出與 $programy_zjisteni 匹配的所有安裝應用程式。是否有效
- 我想列出所有與 $programy_zjisteni 不匹配的非安裝應用程式。不作業。
也許我應該使用 soma 過濾器?或者?
謝謝您的幫助。
$nainstalovane_programy = (Get-WmiObject -Class Win32_Product).name
#Programy, ktere kontroluji
$programy_zjisteni = @(
"landesk.*Agent"
"Logmanager Event Sender"
)
$installed_programs = @()
$not_installed_programs = @()
foreach ($program in $nainstalovane_programy)
{
foreach ($x in $programy_zjisteni)
{
if ($program -match $x)
{
$installed_programs = $program
}
else
{
$not_installed_programs = $program
}
}
}
$installed_programs
$not_installed_programs
uj5u.com熱心網友回復:
如果我對您的理解正確,那么這樣的事情應該可以作業:
$nainstalovane_programy = (Get-WmiObject -Class Win32_Product).name
#Programy, ktere kontroluji
$programy_zjisteni = @(
"landesk.*Agent"
"Logmanager Event Sender"
)
$installed_programs = $nainstalovane_programy | Where-Object {
$program = $_
$is_installed = @($programy_zjisteni | Where-Object { $program -match $_ }).Length -gt 0
$is_installed
}
$not_installed_programs = $nainstalovane_programy | Where-Object {
$installed_programs -notcontains $_
}
$installed_programs
$not_installed_programs
如果您確實想$not_installed_applications成為與任何已安裝應用程式都不匹配的模式串列,請嘗試:
$not_installed_programs = $programy_zjisteni | Where-Object {
$pattern = $_
$is_not_installed = @($nainstalovane_programy | Where-Object { $_ -match $pattern }).Length -eq 0
$is_not_installed
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/408159.html
標籤:
