Blog

PowerShell ile SCCM için EXE Uygulama Hazırlama

İlk yazıda uygulama ve paket hazırlamak için genel bilgileri paylaşmıştık. Daha sonra MSI dosya kullanarak bir uygulama hazırlamıştık, bu yazıda da bir EXE dosya kullanarak uygulama hazırlayacağız.

Bu örnekte, “Oracle Java Runtime” exe dosyası kullanılacaktır. Pek çok seçenek, MSI uygulama hazırlama işlemi ile hemen hemen aynıdır, sadece 2. aşamada “Add-CMMsiDeploymentType” komutu yerine “Add-CMScriptDeploymentType” komutu kullanılacaktır.

Java exe, “Kayıt defterine (Registry)” MSI kod ve uygulama kaldırma bilgisi de eklediği için, bu bilgileri biz de kullanacağız. Bu bilgileri almak için yapmak gerekenleri ilk yazıda bulabilirsiniz. Komutlar ile kullanılacak değişkenler, şu şekildedir:

$uygulama=”Oracle Java RE 8u341 – ENG – EXE – x64″
$onceki_uygulama=”Oracle Java RE 8u301 – ENG – EXE – x64″
$MSI_kod=”{26A24AE4-039D-4CA4-87B4-2F64180341F0}”
$adm_Aciklama=”Java Runtime”
$bilgi=””
$adres=”\\sunucu_adiniz\deployment\Oracle\Java_x64\8u341\”
$exe=”jre-8u341-windows-x64.exe”
$simge=”\\sunucu_adiniz\Deployment\Kisayollar\Simgeler\Java.ico”
$firma=”Oracle”
$surum=(get-item ‘C:\Program Files\Java\jre1.8.0_341\bin\java.exe’).VersionInfo.FileVersionraw | % {(“{0}.{1}.{2}.{3}” -f $_.Major,$_.Minor,$_.Build,$_.Revision)}### yukarıdaki komutun hatasız çalışması için paket hazırladığınız makinada ilgili sürümün kurulu olması gerek, aksi takdirde kurulu başka bir makinada çalıştırarak, sadece sürüm numarası yazınız ($surum=”8.0.3410.10″ gibi.) $yukle=$exe+’ INSTALL_SILENT=Enable AUTO_UPDATE=Disable WEB_JAVA_SECURITY_LEVEL=H WEB_ANALYTICS=Disable EULA=Disable REBOOT=Disable’
$kaldir=’msiexec /x’+$MSI_kod+’ /qn’
$EstimatedRuntimeMins=10
$MaximumRuntimeMins=15
$yerel_aciklama=”Java Runtime ortamı”
$kural = New-CMDetectionClauseWindowsInstaller -Existence -ProductCode $MSI_kod
$UserInteractionMode=”Hidden”   ### [Normal | Minimized | Maximized | Hidden] $LogonRequirementType=”WhetherOrNotUserLoggedOn” ### [ OnlyWhenUserLoggedOn | WhereOrNotUserLoggedOn | OnlyWhenNoUserLoggedOn ] $InstallationBehaviorType=”InstallForSystemIfResourceIsDeviceOtherwiseInstallForUser”  ### [ InstallForUser | InstallForSystem | InstallForSystemIfResourceIsDeviceOtherwiseInstallForUser ]

$DeployAction=”Install” ### [ Install | Uninstall ]
$DeployPurpose=”Required” ### [ Available | Required ]
$UserNotification=”DisplaySoftwareCenterOnly” ### [ DisplayAll | DisplaySoftwareCenterOnly | HideAll ]

Aşamalara geçmeden önce “$kural” değişkeni ile ilgili ek bir bilgi vermek isterim. Java dosyası, EXE olmasına rağmen kurulum için MSI dosya kullanılması nedeniyle, uygulama yüklü mü değil mi “Tespit Kuralı / Detection Type” kuralı değişkeninde, aşağıdaki kuralı tercih etmiştik:

$kural = New-CMDetectionClauseWindowsInstaller -Existence -ProductCode $MSI_kod

Peki, MSI olmasaydı ve MSI kod kullanma durumu olmasaydı, bu tespit işlemi nasıl olmalıydı, bu durumda kullanılabilecek seçeneklerden bir tanesi, dosya sürüm numarası belirlemek olabilir, bunu da şu şekilde yapabiliriz.

$kural = New-CMDetectionClauseFile -Path “C:\Program Files\Java\jre1.8.0_341\bin\” -FileName java.exe -Value -PropertyType Version -ExpressionOperator GreaterEquals -ExpectedValue $surum

Bir sonraki CMD ile uygulama örneğinde, bu şekilde bir kural kullanılacağı için daha da anlaşılabilir olacaktır.

Bu arada denemek istereniz, ikinci kuralı da tercih edebilirsiniz.

İlk aşamada temel uygulamayı oluşturarak devam edelim:

New-CMApplication -Name $uygulama -Description $adm_Aciklama -Publisher $firma -SoftwareVersion $surum -IconLocationFile $simge -AutoInstall $true -LocalizedDescription $yerel_aciklama

2. aşamada kurulum, kaldırma ve diğer seçeneklerini ekliyoruz:

Add-CMScriptDeploymentType -ApplicationName $uygulama -DeploymentTypeName $uygulama -InstallCommand $yukle -UninstallCommand $kaldir -AddDetectionClause $kural -ContentLocation $adres -InstallationBehaviorType $InstallationBehaviorType -UserInteractionMode $UserInteractionMode -EstimatedRuntimeMins $EstimatedRuntimeMins -MaximumRuntimeMins $MaximumRuntimeMins -LogonRequirementType $LogonRequirementType -SourceUpdateProductCode $MSI_kod -Comment $adm_aciklama

3. aşamada dağıtım noktasına gönderiyoruz:

Start-CMContentDistribution -ApplicationName $uygulama -DistributionPointName "sunucu_adiniz.etkialani.com.tr"

Son aşamada, kurulum yapılacak cihazların bulunduğu dağıtım gruplarına uygulamayı ekliyoruz:

New-CMApplicationDeployment -ApplicationName $uygulama -CollectionName "Test_Kurulum" -DeployAction $DeployAction -DeployPurpose $DeployPurpose -UserNotification $UserNotification

Temel aşamaları tamamlayarak uygulamayı oluşturduk, ihtiyaç duyabileceğiniz diğer ek komutları ilk yazıda bulabilirsiniz.

İyi çalışmalar.

Hüseyin Çağlar

Emekli sistem yöeticisi :-)

İlgili Makaleler

2 Yorum

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Başa dön tuşu