PowerShell ile SCCM için CMD Uygulama Hazırlama
İlk yazıda uygulama ve paket hazırlamak için genel bilgileri paylaşmıştık. Daha sonra MSI ve EXE dosyaları kullanarak birer uygulama hazırlamıştık, bu yazıda da bir CMD dosya kullanarak uygulama hazırlayacağız.
Bu örnekte Notepad++ EXE uygulamasını “.cmd” yardımı ile kurulumunu ve kaldırılması işlemini yapacağız.
Bunun nedeni, bir taşla 2 kuş vurmaya çalışmak. Hem CMD dosyasını kullanmak hem de bir önceki yazıda bahsedilen EXE dosyası türünün, bir başka kurulum örneğini vermek. Bir başka neden de; NotePad++, kurulum esnasında çalışmakta olan önceki sürüm uygulamasını kapatmaması ve uygulama kaldırma işlemi sonrasında kurulu bulunduğu klasörün silinmemesidir.
Dosyalar sunucu üzerinde şu şekilde görünecektir:
Resimde görülen 2 adet CMD dosyanın içerikleri sırayla aşağıdaki gibidir:
“NPP_kur.cmd” içeriği:
:::: Çalışmakta olan NotePad++ kapatılacak::
TASKKILL /IM notepad++.exe
Timeout /T 5
npp.8.4.4.Installer.x64.exe /S
Exit 0
Uygulama kaldırma için kullanılacak CMD içeriği şu şekilde:
“NPP_uninstall.cmd” içeriği:
:::: Uninstall ve sonrasi kalan klasörün silinmesi için::
"C:\Program Files\Notepad++\uninstall.exe" /S
Timeout /T 3
rmdir "c:\Program Files\Notepad++" /s /q
Timeout /T 3
Exit 0
Komutlar ile kullanılacak değişkenler, şu şekildedir:
$uygulama=”Notepad++ 8.4.4 – ENG – EXE – X64″
$onceki_uygulama=”Notepad++ 8.4.3 – ENG – EXE – X64″
$adm_Aciklama=””
$bilgi=””$adres=”\sunucu_adiniz\Deployment\NotePadPlusPlus\Npp_8_4_4\”
$simge=”\sunucu_adiniz\Deployment\Kisayollar\Simgeler\Notepad++.ico”
$firma=”Don HO [email protected]“
$surum=(get-item ‘C:\Program Files\Notepad++\notepad++.exe’).VersionInfo.FileVersionraw | % {(“{0}.{1}.{2}.{3}” -f $_.Major,$_.Minor,$_.Build,$_.Revision)}
$yukle=’Npp_kur.cmd‘
$kaldir=’Npp_uninstall.cmd‘
$EstimatedRuntimeMins=10
$MaximumRuntimeMins=15
$yerel_aciklama=”Notepad++ x64 Metin Editoru”
$kural = New-CMDetectionClauseFile -Path “C:\Program Files\Notepad++\” -FileName notepad++.exe -Value -PropertyType Version -ExpressionOperator GreaterEquals -ExpectedValue $surum
$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 ]
Önceki yazılarda da olduğı gibi, temel 4 aşama şu şekilde:
New-CMApplication -Name $uygulama -Description $adm_Aciklama -Publisher $firma -SoftwareVersion $surum -IconLocationFile $simge -AutoInstall $true -LocalizedDescription $yerel_aciklama
Add-CMScriptDeploymentType -ApplicationName $uygulama -DeploymentTypeName $uygulama -InstallCommand $yukle -UninstallCommand $kaldir -AddDetectionClause $kural -ContentLocation $adres -InstallationBehaviorType $InstallationBehaviorType -UserInteractionMode $UserInteractionMode -EstimatedRuntimeMins $EstimatedRuntimeMins -MaximumRuntimeMins $MaximumRuntimeMins -LogonRequirementType $LogonRequirementType -Comment $adm_aciklama
Start-CMContentDistribution -ApplicationName $uygulama -DistributionPointName "sunucu_adiniz.etkialani.com.tr"
New-CMApplicationDeployment -ApplicationName $uygulama -CollectionName "Test_Kurulum" -DeployAction $DeployAction -DeployPurpose $DeployPurpose -UserNotification $UserNotification
Temel aşamaları tamamlayarak CMD türünde bir uygulama oluşturduk, diğer ihtiyaç duyabileceğiniz ek komutları ilk yazıda bulabilirsiniz. Bir sonraki yazıda, oldukça basit bir PS Betik örneği yapacağız.
İyi Çalışmalar.
Eline sağlık.
🙂