PowerShell: Karmen Kattai, VõrdleNimekirju.ps1
From ICO wiki
<#
.SYNOPSIS
Skript võrdleb kohalikus arvutis installeeritud programmide nimekirja
tekstifailis toodud programmide kontrollnimekirjaga.
.DESCRIPTION
Skript võrdleb kohalikus arvutis installeeritud programmide nimekirja
tekstifailis toodud programmide kontrollnimekirjaga. Tulemus, ühine ja
mitteühine osa, väljastatakse tekstifailis. Mitteühine osa jaotub omakorda
kaheks - programmid, mis on installeeritud, kuid pole toodud kontrollnimekirjas
ning vastupidi.
Kontrollnimekiri peab sisaldama programmide tervet DisplayName-i või osa sellest. Näide:
Mozilla
FileZilla Client 3.5.0
Oracle VM
Kontrollnimekiri ei tohi sisaldada tühje ridu.
.VERSION
0.1
.NOTES
Autor: Karmen Kattai
#>
# Loeme arvutisse installeeritud programmide nimed muutujasse
$list = Get-ItemProperty "hklm:\software\microsoft\windows\currentversion\uninstall\*" | Select-Object DisplayName
# Küsime kasutajalt kontrollnimekirja asukoha
$from = Read-Host "Kus asub kontrollnimekirja sisaldav fail?"
#Kontrollime, kas selline fail on olemas
$fileExists = Test-Path $from
If ($fileExists -eq $False) {
$a = new-object -comobject wscript.shell
$sonum = $a.popup("Ei leia sellist faili",0,"Error ",0)
}
Else {
#Loeme kontrollnimekirja andmed muutujasse
$kontr = Get-Content $from
$yhine = New-Object System.Collections.ArrayList
$puuduv = New-Object System.Collections.ArrayList
#Võrdleme nimekirjasid
Foreach ($first in $kontr)
{
if($list -match $first) {
$list = @($list | where-Object {$_-notMatch $first})
$yhine.Add($first) > $null
}
else {
$puuduv.Add($first) > $null
}
}
#Küsime kasutajalt, kuhu salvestada tulemus
$tulemus = Read-Host "Kuhu salvestada tulemus?"
#Väljastame tulemuse.
"-----------------------------------------------`n" |Out-File -Append $tulemus
"Need programmid on installeeritud (ühine osa):" |Out-File -Append $tulemus
$yhine |Out-File -Append $tulemus
"-----------------------------------------------`n" |Out-File -Append $tulemus
"Need programmid pole installeeritud:" |Out-File -Append $tulemus
$puuduv |Out-File -Append $tulemus
"-----------------------------------------------`n" |Out-File -Append $tulemus
"Neid programme pole kontrollnimekirjas märgitud:" |Out-File -Append $tulemus
$list |Out-File -Append $tulemus
}