Windows Server

Server 2019 Group Policy ile Yazılım Kaldırma – GPO Software Uninstall

Merhaba bu makalemizde Windows Server 2019 işletim sistemi üzerinde, Active Directory ortamlarında Group Policy kullanarak yazılım kaldırma işlemini ele alıyor olacağız. GPO ile genelde msi uzantılı dosyaların dağıtımı yapılmakta olup bu bağlamda yazılımlar yine GPO üzerinden sorunsuz olarak kaldırılmaktadır. GPO üzerinden dağıtılmayan veya GPO üzerinden dağıtılıp kaldırılmasında sorun olan uygulamalar olmaktadır. Bu nedenle GPO üzerinden script ile yazılım kaldırma işlemini ele alıyor olacağız.

Biz sözü uzatmadan adımlarımıza geçelim öncelikle ortamımızı tanıyalım. Bir domain Controller sunucumuz var üzerinde Windows Server 2019 Datacenter işletim sistemi ve üzerinde Active Directory rolü kurulu durumda. DC ismini verdiğimiz sunucu rizasahan.lokal isimli domainin sahibi.

Active directory yapımız aşağıdaki gibi. Test işlemlerimizde kullanabileceğimiz hesaplara sahip durumdayız.

Biz test işlemleri sırasında düzenli bir iş yapmak adına, uygulayacağımız group policy ilkesinin sadece istediğimiz kullanıcı ve bilgisayarları etkilemesi ayrıca bu durumu rahat yönetmemiz adına bir Organization Unit oluşturalım. Bu işlem için Domain ürün ağacı üzerinde sağ tıklatıp açılan menüden New->Organization Unit açılır menüsünü tıklayalım.

Oluşturacak olduğumuz Organization Unit için bir isim verip OK ile Organization Unit’imizi oluşturalım.

TEST isimli Organization Unit’imiz  oluştu ve içerisine test işlemlerinde kullanmak için bir kullanıcı ve bu kullanıcıya ait computer ojbesini taşıdık.

Yine test işlemlerimizde kullanılmak üzere mevcut Domain yapımıza üye edilmiş, Windows 10 Pro işletim sistemine sahip RIZAS isimli bir bilgisayarımız var.

Ortam hakkında bilgi verdikten sonra, Group Policy Management konsolumuzu açalım ve işlemlerimize başlayalım.

Biz mevcut olan policy üzerinden yazılım dağıtım işlemi yapmayacağız. Her zaman farklı türden işlemler için yeni policy tanımlamak ve mevcut sistem policy öğelerine hiç dokunmamak önerilen ve sağlıklı olan metottur. Bu nedenle yeni bir group policy ilkesi tanımlayacağız.

Test işlemleri yapacak olduğumuz, kullanıcı ve bilgisayarı içerisine taşıdığımız TEST organization unit’i üzerinde sağ tıklayalım ve açılan menüden Create a GPO in this domain, and Link it here… açılır menüsüne tıklayalım.

Oluşturulacak olan GPO ilkenize bir isim verip OK butonuna tıklayarak oluşmasını sağlayalım.

Gpo ilkemiz oluştu.

Şimdi yazlım dağıtımı için GPO üzerinde işlemlerimize başlayabiliriz. Bu işlem için GPO ilkesi üzerinde sağ tıklayarak açılan menüden Edit’e tıklayalım.

Gpo editör ekranımız açıldı. Biz yazılım kaldırma işlemi için script çalıştıracağımız için bu işi aşağıdaki konsol üzerinde yapacağız. Bu nedenle Computer Configuration->Policies->Software Settings->Name Resoluation Policy öğesi altında yer alan Scripts (Startup/ Shutdown) konsoluna gelelim.

Script tanımlamadan önce denetim masasında Programlar ve Özellikler konsolundan kaldıracağımız programı görelim.

Programı script ile kaldırmanın birçok yöntemi var ancak biz MsiExec.exe parametresi ile kaldıracağımız için programın id bilgisini almamız gerekmekte. Bunun birçok yöntemi var ben iki tanesinden bahsedeceğim ve bu metotlar ile id bilgilerini alacağız. Regedit üzerinde HKEY_LOCAL_MACHINE_SOFTWARE\Microsoft\CurrentVersion\Uninstall\ başlığı altından programımızın klasörüne tıklayalım. Açılan ekranda UninstallString parametresi içindeki değer bize gerekli olan ID bilgisini barındırıyor.

Bu değeri çift tıklayarak açılan ekrandaki ID bilgisini kopyalayarak alabiliriz.

Sonrasında MsiExec.exe parametresi ile program kaldırmak için aşağıdaki komut setini kullanabiliriz.

MsiExec.exe /X {Program_ID_Bilgisi}

Bu işlemlerden sonra dosyamızı kaydedelim.

Dosyamızı script file olarak kullanacağımız için uzantısını bat olarak değiştirelim.

Bu işlem sırasında gelen uyarıyı Evet ile geçelim.

Diğer bir yöntem olarak ise denetim masası Programlar ve Özellikle konsolu üzerinden Kaynak alanını görünüm üzerinden aktive ederek program ID bilgisine ulaşabiliriz.

Sunucu tarafında GPO üzerinde işlemlere başlamadan önce script doğru çalışıyor mu sorusuna yanıt almamız gerekli. Bu nedenle çift tıklayarak veya CMD üzerinde scriptimizi çalıştıralım.

Script sorunsuz çalışıyor programımız kaldırılmaya başladı.

Bilgisayarımız yeniden başlatılıyor.

Programımız kaldırıldı.

Script testimiz sorunsuz çalıştı. Onlarda bilgisayardan bu şekilde kaldırılacak olan bir uygulama için sisteme basılacak olan bir GPO ilkesi öncesi bu şekilde  test yapmakta yarar var. Tabi kullanıcıya aksiyon gerektirmeyen parametreler ile bu işlemi full otomatize duruma getirmek mümkün. GPO tarafında bu işlemi ele alacağız. Şimdi sunucu üzerinde programı GPO ile kaldırmak adına programımızı tekrardan kuralım. Programımız kuruldu ve durum aşağıdaki gibi.

Şimdi GPO üzerinde kaldığımız yerden devam edebiliriz. GPO üzerinde Startup, Shutdown, Log Off, Log On gibi birçok farklı script uygulama yöntemi var. Biz bu işlemimizde Startup metodunu uygulayacağız. Bilgisayar açılışında GPO uygulanan hesap veya bilgisayar öğeleri bu scripti çalıştırma durumuna gelecek. Startup’u çift tıklayarak açalım.

Öncelikle script dosyasının bulunmak zorunda olduğu yeri görmek için Show Files… butonuna tıklayalım.

Açılan klasöre oluşturduğumuz script dosyasını kopyalayalım.

Biz kaldırma işleminin arka planda olmasını istediğimiz, kullanıcı müdahalesi gerekmesin istediğimiz için sonuna /qn parametresi ekledik. Komut setimiz aşağıdaki gibi.

MsiExec.exe /X{Program_ID_Bilgisi} /qn ayrıca programı kaldıracak olan kullanıcı user yetkisinde bir kullanıcı ise gerekli yetkilendirme için buna göre parametre girmeniz gerekmekte. MsiExec.exe parametrelerine aşağıdaki sayfadan erişim sağlayabilirsiniz.

https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/msiexec

Script doğru alanda olduğuna göre bu script kullanılabilir durumda. Ana ekrandan Add… butonuna tıklayarak scriptimizi seçelim.

Açılan ekranımızda Browse… butonuna tıklayalım.

Scriptimizi seçip OK butonuna tıklayalım.

Apply butonuna tıklayarak ekranı kapatalım.

Kullanıcı tarafında GPO uygulanma süresini beklemeden süreci tetiklemek için gpupdate /force komutunu çalıştıralım.

Bilgisayarımızı yeniden başlatalım.

Login olduğumuzda arka planda startup script’in çalışması gerekli.

Arka planda script sorunsuz çalışmış ve programımızı kaldırmış.

Olay görüntüleyici üzerinde durum aşağıdaki gibi gözükmüş durumda.

Bu makalemizin de sonuna geldik. Umarım yararlı olur. Bir başka makalede görüşmek dileğiyle.

Rıza ŞAHAN

www.rizasahan.com

İlgili Makaleler

5 Yorum

  1. Hocam Merhaba;
    Öncelikle elinize sağlık. Denediğimde gerçekten msiexec olan uygulamaları kaldırıyor fakat o regeditte belirttiğiniz yolda bazı uygulamalar msiexec şeklinde gelmiyor da “C:\Program Files (x86)\………..” şeklinde oluyor, ben onları kaldırmak istersem de haliyle kaldırmıyor çünkü o silmek istediğim uygulamanın msiexec.exe li hali yok. Bunun için bir çözümünüz var mıdır?

  2. Her yazılım ne yazık ki bu şekilde uninstall etmeye uygun değildir, bu nedenle zaten bu tür işler için SCCM başta pek çok uygulama kullanılır. Yani GPO bedava, ama banka, telekom, gsm ve benzeri büyük kurumlar bahsettiğiniz sorunlar nedeni ile bu işi GPO ile değil 3.parti deployment ve management yazılımları ile yönetmektedir. GPO ile her şeyi yapamazsınız.

Bir yanıt yazın

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

Başa dön tuşu