Detection Methods

Uygulamaların hedef bilgisayarda yüklü, yüklenebilir, superseded vb. durumlarını kontrol eden methodlardır. Buradaki tüm methodların çalışma prensibi aynı olmakla, kullanıldıklara yere göre amaçları farklılaşır. isInstalled başlığı altındakiler yüklü olup olmadığının kontrolünü yaoar. isInstallable ise programın yüklenebilir olup olmadığını kontrol edecektir. Amacından bağımsız olarak methodların kullanım şekiller anlatılmıştır.

File System

Dosya sistemi üzerinde bir uygulamanın dosya yolu ile birlikte sürüm, Date Modified, Date Created ve boyut (byte) kontrollerini yapabilir. 32bit/64bit kontrolü ile uygulamanın yapısını belirler.

Type

File: Form içinde belirtilen dosya ile ilgili sorgulamalar yapılacağını belirtir.

Folder: Form içinde belirtilen klasör ile ilgili sorgulamalar yapılacağını belirtir. Bu özellik kullanılmamaktadır.

Path

Kontrolü sağlanacak uygulamanın klasörü yolu bilgisi girilir. Program Files / Program Files (x86) gibi bilgiler burada yer almaz. Özet path bilgisi yer alır. Örn:

  1. C:\Program Files\Everyting\Everything.exe yolunda bulunan uygulama için Path=Everything yazılır. Program Files kısmı eklenmez.

  2. C:\Program Files (x86)\Arksoft A.S.\SessionLimit\SessionLimit.exe yolunca bulunan uygulama için Path= Arksoft A.S.\SessionLimit yazılır. Diğer kısımlar yazılmaz.

File or Folder Name

Kontrolü sağlanacak uygulamanın dosya adı bu alanda yazılır. Bu alanda path bilgisi yer almaz. Sadece dosya adı belirtilir. Örn:

  1. C:\Program Files\Everyting\Everything.exe yolunda bulunan uygulama için File= Everything.exe yazılır. Diğer kısımlar eklenmez.

  2. C:\Program Files (x86)\Arksoft A.S.\SessionLimit\SessionLimit.exe yolunca bulunan uygulama için Path= SessionLimit.exe yazılır. Diğer kısımlar yazılmaz.

  • This file or folder is associated with a 32-bit application on 64-bit systems: The client first checks 32-bit file locations for the specified file or folder. If the file or folder isn't found, the client then searches 64-bit locations.

https://docs.microsoft.com/en-us/mem/configmgr/apps/deploy-use/create-applications#bkmk_create-dt

32Bit/64Bit

Kontrolü sağlanacak uygulamanın hangi platform için olduğu belirtilir. Eğer browse ile dosya seçilirken Program Files altından seçilmişse bu kutu işaretlenmez. Eğer browse düğmesi ile seçilen uygulama Program Files (x86) altında ise otomatik olarak işaretlenir. İşaretli kalması da önerilir. Bu kutucuk bulunduğu Program Files klasöründen bağımsız olarak bellir bir mantıkta çalışır. Bu işaretin mantığı aşağıdaki gibidir;

  • İşletim Sistemi 64 bit, Uygulama 64 bit: İşaretlenmez,

  • İşletim Sistemi 32 bit, Uygulama 32 bit: İşaretlenmez,

  • İşletim Sistemi 64 bit, Uygulama 32 bit: İşaretlenir,

Bu kutucuk işaretlendiği zaman ClsID 42, işaretlenmediği zaman 38 değerini alır.

Existence

  • The file system setting must exist on the target to indicate presence of this application

Bu seçenek ile belirtilen dosyanın belirtilen path içerisinde bulunup bulunmadığı kontrolü yapılmış olunur.

  • The file system setting must satisfy the following rule to indicate the presence of this application

Bu seçenekte hem uygulamanın dosya olarak belirtilen yolda olup olmadığı kontrol edilir hem de belirtilen koşulların sağlanıp sağlanmadığı kontrol edilir. Bu bilgiler dosya seçildiğinde RAM de saklanır ve otomatik olarak doldurulur. Bu ekrana tekrar gelindiğinde bu bilgilerin elde edilmesi için tekrar dosyanın seçilmesi gerekir. Alanların elle doldurulduğu senaryoda bu bilgilerin yine elle girilmesi gerekmektedir.

    • Date Created/Modified: Belirtilen dosyanın oluşturulma/değiştirme tarihinin kontrol edilmesini sağlar.

    • Size: Belirtilen dosyanın byte cinsinden boyutunun kontrol edilmesini sağlar.

    • Version: Belirtilen dosyanın sürüm bilgisi girilir. 4 basamaktan oluşur. 19.0.0.0 gibi bir gösterim söz konusu olur.

Örnekler

Örnek1: Program Files altında ilgili uygulamanın varlığı kontrolü;

<bar:FileExists Path="Everything\Everything.exe" Csidl="38" />

Örnek2: Program Files altında ilgili uygulamanın varlığı ve sürüm kontrolü;

<lar:And>

<bar:FileExists Path="Everything\Everything.exe" Csidl="38" />

<bar:FileVersion Path="Everything\Everything.exe" Comparison="GreaterThanOrEqualTo" Version="1.4.1.1009" Csidl="38" />

</lar:And>

Örnek3: Program Files (x86) altında ilgili uygulamanın varlığı ve sürüm kontrolü;

<lar:And>

<bar:FileExists Path="Everything\Everything.exe" Csidl="42" />

<bar:FileCreated Path="Everything\Everything.exe" Comparison="GreaterThanOrEqualTo" Created="5/12/2021 4:19:14 PM" Csidl="42" />

</lar:And>

Registry – RegValueExist

Hive

Registry temel kümesi seçimi yapılır. HKLM (Local Machine) en çok kullanılan kümedir. Yerel makine üzerindeki registry değerlerini temsil eder. HKCU (Current User) geçerli kullanıcı iken, HKU (Users) tüm kullanıcıların registry değerlerini içeren kümedir.

Örn:

HKEY_LOCAL_MACHINE\SOFTWARE\dotnet\Setup\InstalledVersions\x64\sharedhost\Version değerinin HIVE bölümü “HKEY_LOCAL_MACHINE” olacaktır.

Key

Sorgulanacak registry değerinin bulunduğu anahtarın yolu yazılır. Bu alana yazılan anahtar yolunda Hive gösterilmez. Ayrıca kontrol edilmek istenen değer de yine burada yer almaz.

Örn:

HKEY_LOCAL_MACHINE\SOFTWARE\dotnet\Setup\InstalledVersions\x64\sharedhost\Version değerinin kontrolü yapılmak istendiğinde Key alanına “SOFTWARE\dotnet\Setup\InstalledVersions\x64\sharedhost” yazılır. Browse düğmesi bu işlemi bizim yerimize yapacaktır.

Value

Bu alana seçilmiş HIVE ve KEY altında kontrol edilmek istenen değerin adı girilir. Browse düğmesi bu seçimi yapmayı kolaylaştırır. Seçilen değer, string (tümce), integer (sayısal değer), dword (32 bit barındıran alan) vb. olabilir. Dword (Double Word) 32 bitlik bir değerdir. Decimal veya hexadecimal değer alır. True/False (1/0) değerlerini kullanmak için sıklıkla kullanılır. Örn:

HKEY_LOCAL_MACHINE\SOFTWARE\dotnet\Setup\InstalledVersions\x64\sharedhost\Version değerinin kontrolü yapılmak istendiğinde value alanına “Version” yazılır. Browse düğmesi bu işlemi bizim yerimize yapacaktır.

Use (Default) registry key value for detection kutucuğu işaretlenirse belirlenen Key – Anahtar altındaki (Default) isimli değerin okunacağı belirtilmiş olur. Bu durumda Value alanı pasif hale gelir ve dikkate alınmaz.

32Bit/64Bit

Kontrolü sağlanacak registry anahtarının hangi platform için olduğu belirtilir. Bu kutucuğun işaretlenip işaretlenmemesi seçilen registry anahtarının bulunduğu alanla belirlenebilir. Eğer registry anahtarı “WOW6432Node” altında ise kuvvetle muhtemel işaretlenmesi uygun olacaktır. Bu kutucuk bulunduğu registry kümesinden bağımsız olarak belirli bir mantıkta çalışır. Bu işaretin mantığı aşağıdaki gibidir;

  • İşletim Sistemi 64 bit, Uygulama / Registry Değeri 64 bit: İşaretlenmez,

  • İşletim Sistemi 32 bit, Uygulama / Registry 32 bit: İşaretlenmez,

  • İşletim Sistemi 64 bit, Uygulama / Registry 32 bit: İşaretlenir,

Bu kutucuk işaretlendiği zaman RegType32="true" değeri eklenir. İşaretlenmediği zaman XML içerisine bir şey eklenmez.

Data Type

String (sözel değer), Integer (Sayısal Değer) ve Version (Sürüm) olmak üzere 3 farklı değer sorgulaması yapılabilir. Belirtilen registry değerinin tipinin ne olduğu belirtilir. Data Type, varlık kontrolünde işe yaramaz. Data Type varlık kontrolü ile birlikte karşılaştırma yapılacağı zaman kullanılır. Yani “The registry setting must satisfy the following rule to indicate the presence of this application” radyo düğmesi seçili olduğunda işe yarar.

Existence

  • The registry setting must exist on the target to indicate presence of this application

Bu seçenek ile belirtilen registry değerinin sistemde bulunup bulunmadığı kontrolü yapılmış olunur (RegValueExists).

  • The registry setting must satisfy the following rule to indicate the presence of this application

Bu seçenekte hem registry değerinin belirtilen yolda olup olmadığı kontrol edilir hem de belirtilen koşulların sağlanıp sağlanmadığı kontrol edilir. Bu bilgiler değer seçildiğinde RAM de saklanır ve otomatik olarak doldurulur. Bu ekrana tekrar gelindiğinde bu bilgilerin elde edilmesi için tekrar dosyanın seçilmesi gerekir. Alanların elle doldurulduğu senaryoda bu bilgilerin yine elle girilmesi gerekmektedir (RegValueExists ve RegSzToVersion / RegSz / RegDword).

    • String: Belirtilen değerin kontrol edilmesini sağlar.

    • Integer: Belirtilen değerin sayısal değerinin kontrol edilmesini sağlar.

    • Version: Belirtilen registry değerini sürüm olarak değerlendirir ve bu şekilde karşılaştırma yapılmasını sağlar. 4 basamaktan oluşur. 19.0.0.0 gibi bir gösterim söz konusu olur.

Örnekler

Örnek1:

Last updated