13 Aralık 2023 Çarşamba

PowerShell kullanarak SCCM koleksiyonuna Birden Fazla Cihaz Ekleme.

 

Merhaba,

Bilindiği üzere SCCM / MECM ürününde User ve Device Collection’lar aracılığıyla yapımızda dağıtımları ve SCCM ürününün yönetimini gerçekleştiririz. Bazen bir uygulama bazen işletim sistemi bazen Security Baseline vb uygular ve yaygınlaştırırız. Bunları yaparken çoğunlukla Collectionlar dan faydalanırız. Collection oluşturma mantığında yine bilindiği üzere bazı Query Rule setlerinden faydalanırız örneğin bir Device Collection oluşturur ve Windows 10 Cihazları o Collection altında toplarız bunu yaparken doğru işletim sistemine sahip cihazları listelemesi ve gerçek veriyi yansıtması adına Query Rule ile süreci sonlandırırız. Peki ya belli bir Query’e karşılık gelmeyen elimizde bir cihaz listesi mevcutsa Örneğin Bir TXT dosyasında ismi yazılı olan PC Hostname’ler için Device Collection oluşturmamız gerekirse.

İşte çözümü yazının devamında. 

Öncelikle bildiğimiz Klasik yöntemler ile bir Device Collection oluşturalım.

\Assets and Compliance\Overview\Device Collections à alanına gelerek Sağ Click à Create Device Collection seçimi ile ilerleyelim.

Collection için bir isim belirleyip Limiting Collection kısmını All Systems olarak bırakmanızı tavsiye ederim.

Biz örneğimizde Herhangi bir Query Rule veya Direct Rule seçimi yapmayacağımız elimizde mevcut olan Device listesini referans  alarak Collection oluşturacağımız için à Membership Rules Ekranında hiçbir değişiklik yapmadan devam ediyoruz.

Hiçbir Rule tanımı ve seçimi yapmadığımız için aşağıdaki gelen uyarıyı OK diyerek Next ile ilerleyelim.

Kalan adımlar bilindik adımlar olduğu için her adımın ekran resmini paylaşmadım. Next ile ilerleyerek Collection oluşturma sürecini sonlandırıyoruz.

Asıl işlemimiz şimdi başlıyor.

Elimizde bir TXT dosyasında device isimlerinin yazılı olduğunu düşünüyorum.

Örnek aşağıdadır. İsimler doğru ve alt alta olmalıdır.



Bu dosyanın ismi ve PATH bilgisi bizim için önemli.

Bundan sonraki işlemi SCCM PowerShell ile yapacağız.

Aşağıdaki komutu dosya ismi ve Collection ismi sizin yapınıza uygun olacak şekilde düzenlemeniz gerekiyor.

Ben kendi örneğimdeki isimlerle revize ettim.

SCCM à Connect Via PowerShell Seçimi ile ilerleyelim.


PowerShell üzerinde çalıştıracağımız komutumuz aşağıdaki gibidir.

Kendi yapınızdaki Collection ve Device Bilgilerini barındıran TXT dosyasının ismine uygun şekilde revize etmeniz gerekli.

Get-Content "C:\collection\List-computers.txt" | foreach { Add-CMDeviceCollectionDirectMembershipRule -CollectionName "Multiple Devices" -ResourceID (Get-CMDevice -Name $_).ResourceID }


Üstteki POWERSHELL komutunu çalıştırdığınızda Device isimlerini tutan TXT dosyasında ne kadar çok sayıda Device mevcutsa komutun tamamlanması da o kadar sürektir.


Aşağıdaki resimde göreceğiniz üzere Collection oluşturuldu ve sayısı görüldüğü gibidir.


 





17 Haziran 2022 Cuma

SCOM 2019 Üzerinde Remotely Manageable No Olan cihazları listeme ve Yes olarak değiştirme

Merhaba,

System Center Operations Manager 2019 ürünü ile Sistemlerinizi izliyor ve raporluyorsanız bazı ayarları da doğru olarak kurgulamanız gerekir. Workgroup üyesi DMZ alanında çalışan sunuculara örneğin SCOM ajanlar Manuel olarak kurulur. Yani Bildiğimiz Discovery Wizard yöntemiyle değil gerekli Sertifikaların yüklenerek manuel kurulması yöntemiyle. Manuel kurulan sunucularda  Rollup Update sonrası SCOM Agentlar otomatik Upgrade olmayabilir. veya farklı senaryolar ile örnekler çoğaltılabilir. Bunun nedeni İse Manuel kurulan SCOM Agentların Remotely Manageable  Özelliğinin NO olarak gelmesi.  Discovery Wizard yöntemi yani Push Install yöntemi ile kurulan SCOM Agentlar da bu özellik YES olarak görülecektir SCOM konsol üzerinden baktığınızda.

SCOM Ortamınız üzerindeki  Remotely Manageable NO olan cihazları listelemek,  bu Ayarı Yes olarak değiştirmek isterseniz aşağıdaki paylaştığım 3 SQL Query işinizi fazlasıyla görecektir.
ilgili SQL Query'leri SCOM Operations Manager DB SQL Sunucusunda çalıştırmanız gerekiyor.
unutulmaması gereken bu tarz Query ve Scriptler SCOM DB'yi Manipule ettiği için güncel yedeğinizin alınmış olması gerekli.!

Aşağıdaki Query ile Remotely Manageable NO olan cihazları listelersiniz.

select bme.DisplayName from MT_HealthService mths 
INNER JOIN BaseManagedEntity bme on bme.BaseManagedEntityId = mths.BaseManagedEntityId 
where IsManuallyInstalled = 1


Aşağıdaki Query ile Remotely Manageable No Ayarını tüm SCOM Agentlar da Yes olarak değiştirebilirsiniz.

UPDATE MT_HealthService 
SET IsManuallyInstalled=0 
WHERE IsManuallyInstalled=1


Aşağıdaki Query ile Remotely Manageable No Ayarını yalnızca Servername alanına FQDN bilgisini yazdığınız sunucuda değiştirmiş olursunuz.

UPDATE MT_HealthService 

SET IsManuallyInstalled=0 

WHERE IsManuallyInstalled=1 

AND BaseManagedEntityId IN 

(select BaseManagedEntityID from BaseManagedEntity 

where BaseManagedTypeId = 'AB4C891F-3359-3FB6-0704-075FBFE36710' 

AND DisplayName = 'server.domain.com')


16 Haziran 2022 Perşembe

SCOM Managed Computer Grup Bilgisi Toplama

Merhaba,

System Center Operations Manager 2019 ile Yönettiğiniz / izlediğiniz Sunucuların  SCOM üzerinde üyesi olduğu grupları görmek isterseniz ( bazı proje ve geçişler de bu bilgi gerekebilir ) aşağıdaki SQL Queryi SCOM Operations Manager DB'sinin olduğu sunucu da ki SQL Management Studio üzerinde çalıştırmanız yeterlidir.

değiştirilmesi gereken alanı kırmızı ile işaretliyorum.  Server alanına Computer Grup üyeliğini toplamak istediğiniz Sunucunun ismini FQDN şeklinde yazmanız gerekiyor.

New Query ile aşağıdaki komutu çalıştıraiblirsiniz.

Use OperationsManager
SELECT SourceObjectDisplayName FROM RelationshipGenericView
WHERE TargetObjectDisplayName like '%server.domain.root%'
AND SourceObjectDisplayName IN
(SELECT ManagedEntityGenericView.DisplayName
FROM ManagedEntityGenericView INNER JOIN
(SELECT BaseManagedEntityId
FROM BaseManagedEntity WITH (NOLOCK)
WHERE (BaseManagedEntityId = TopLevelHostEntityId) AND (BaseManagedEntityId NOT IN
(SELECT R.TargetEntityId
FROM Relationship AS R WITH (NOLOCK) INNER JOIN
dbo.fn_ContainmentRelationshipTypes() AS CRT ON R.RelationshipTypeId = CRT.RelationshipTypeId
WHERE (R.IsDeleted = 0)))) AS GetTopLevelEntities ON
GetTopLevelEntities.BaseManagedEntityId = ManagedEntityGenericView.Id INNER JOIN
(SELECT DISTINCT BaseManagedEntityId
FROM TypedManagedEntity WITH (NOLOCK)
WHERE (ManagedTypeId IN
(SELECT DerivedManagedTypeId
FROM dbo.fn_DerivedManagedTypes(dbo.fn_ManagedTypeId_Group()) AS fn_DerivedManagedTypes_1))) AS GetOnlyGroups ON
GetOnlyGroups.BaseManagedEntityId = ManagedEntityGenericView.Id)
ORDER BY SourceObjectDisplayName

29 Ağustos 2021 Pazar

Windows Update Servis başlatılamıyor ve Error 1290 alınıyorsa Çözümü.

Merhaba,  Windows Update servisini başlatmak istediğiniz de  aşağıdaki ekran görüntüsünde ve yazdığım hata kodunda ki hatayı alıyorsanız çözümü için yazımı okuyabilirsiniz.

Error “This error usually comes up when you try to start a new service that would get the same service ID as another service in the process:

System error 1290 has occurred.

The service start failed since one or more services in the same process have an incompatible service SID type setting. A service with restricted service SID type can only coexist in the same process with other services with a restricted SID type. If the service SID type for this service was just configured, the hosting process must be restarted in order to start this service.



Gelelim bu hatanın çözümüne ve  Windows Update servisini nasıl başlatacağımıza.

Run As Admin yöntemiyle  yeni bir CMD ekranı açıyoruz.

sc config wuauserv type= own

üstteki komutu çalıştırmamız yeterli.   Windows update servisinin ismini services.msc üzerinde ilgili servisi çift tıklayarak Service Name alanında bulabilirsiniz.  


 Bu işlem sonrası servisi start edebilirsiniz. Restart vb işleme gerek kalmadan. 

23 Temmuz 2021 Cuma

Büyüyen SoftwareDistribution Klasörünün boyutunu küçültme işlemi nasıl yapılır.

Merhaba, Windows işletim sistemindeki Software Distribution klasörü, Windows dizininde bulunan ve bilgisayarınıza / Sunucunuza  Windows Update’i yüklemek için gerekli olabilecek dosyaları geçici olarak depolamak için kullanılan bir klasördür. Bazı durumlar da bu klasör normalin üzerinde büyüyebilir. Bu örneğimizde bu gibi durumlar da bu klasörün boyutunu nasıl küçültebileceğiniz uygulamalı olarak gösterilecektir.

Klasörün default olarak boyutu 10 MB’lar düzeyinde olması gerekiyor. Bizim örneğimizde boyut hayli yüksek.

C:\Windows\SoftwareDistribution  dizinine giderek gerekli kontrolü sağladınız ve boyut üstteki gibi yüksek olduğunu fark ettiniz.

Ilk olarak services.msc ile servisler konsolunu başlatmanız gerekiyor. Veya CMD ile de ismini bildiğiniz servisi stop veya start edebilirsiniz. Biz GUI üzerinden işlem yapacağız.


Üstteki resimde göreceğiniz üzere  Windows Update servisini Stop duruma alıyorum.  Almadığınız takdirde SoftwareDistribution klasörüne mühale edemezsiniz. ( biz örneğimizde klasörü sileceğiz.)

Sonrasında klasörün isminin sonunda .old koyarak ismini değiştiriyoruz.

Devamında az önce Stop duruma aldığımız  “Windows Update” klasörünü tekrar start edelim.


Windows Update servisi start olmasından sonra yeni bir SoftwareDistribution klasörü oluşturacaktır. Artık sonunu .old yaptığımız klasörü silerek alan kazanabiliriz.

Yeni oluşan klasörün boyutuna dikkat.!  Sildiğimiz eski klasörle arasında ciddi fark var 😊





2 Mart 2021 Salı

Active Directory üzerinde Silinen Grup üyelerini listeleme.

Merhaba,  Yönettiğimiz Active Directory yapısında Security veya Distribution  Gruplar kullanarak gerek kaynaklara erişim gerekse iletişim (E-mail )noktasında kolaylıklar sağlarız.  Yapımızın büyük olduğunu düşünürsek yönetimimizde olan Active Directory grup sayısının da bir hayli fazla olduğunu söyleyebiliriz. Bugünkü konumuz kaza sonucu silinen AD grup üyelerini listelemeniz gerekti  veya Kritik bir grubunuz olduğunu düşünelim Örneğin Finans  Ortak alanına yazma yetkisi olan ve bu gruba bir kullanıcının önceden üye olup olmadığını kontrol etmeniz gerekti.  İşte bu gibi durumlarda işimize yarayacak kısa bir ipucu bilgi aktarıyor olacağım.

Active Directory yapımdaki Grup hiyerarşisi aşağıdaki gibi.

Örneğimize konu olacak bir grup  belirliyor ve mevcut üyelerini  Members tabından listeliyorum.

Mevcutta grubun 2 üyesi gözükmekte. Siz bunu kendi production ortamınızda 100 veya daha fazla grup üyesi gibi düşünebilirsiniz.

Active Directory üzerinde  CMD’yi  Run as Admin yöntemi ile çalıştıralım.

İlgili komutumuz aşağıdaki gibi olmalıdır.  Grup ismi ve devamında Grubun AD üzerinde bulunduğu dizinin tam pathi. Grup özelliklerinde Object tabından da bu bilgiye ulaşabilirsiniz.

repadmin /showmeta "CN=HR_Read,OU=Groups,DC=istiklal,DC=local"

Version tabında gördüğünüz  2 ve 1 sayısının anlamı şudur.  Ver =2 olanlar gruba önceden üyeymiş fakat artık değil.  1 olanlar hali hazırda güncel olarak gruba üye olanlar. Üstteki ekran resminde göreceğiniz üzere grubumuzun 2 üyesi vardı.  2 üyenin isimlerinin karşısındaki ver satırı 1 yansıtmaktadır.

Kaza sonucu veya farklı bir nedenle gruplardaki üyelerin silinmesi durumunda önce tarih olarak en yakın zamanda veya o gün silinen üyeleri repadmin  /showmeta komutuyla tespit edebilir daha sonrasında  Authorative restore yöntemi ile geri getirebilirsiniz.





Powershell ile Active Directory yapısındaki Boş grupları Listeleme.

Merhaba,  bazı durumlar da Active Directory yapınızın büyüklüğüne göre  AD içerisindeki grupları yeniden düzenlemek ve üyelerini revize etmek isteyebilirsiniz.  Kullanıcı sayısı yüksek yapılar da kullanılmayan hiç üyesi olmayan AD grupları da fazlaca olabilir yapılan kontrollerde. Paylaşacağım Powershell Script yardımı ile hiçbir üyesi bulunmayan  Active Directory  Security ve Distribution Grup’larını listeleyebilir  revize işlemlerinizi buna göre yapabilirsiniz.

Powershell’i Run as admin modunda çalıştırıyoruz.

 Import-Module activedirectory

Get-ADGroup -Filter * -Properties Members | Where {-not $_.members} | select Name | Export-Csv C:\Raporlar\EmptyADGroups.csv –NoTypeInformation

Yaptığım kontrollerde içi boş olan grupları doğru şekilde getirdiğini teyit ettim.


Deneme amaçlı olarak listede boş görünen gruplardan birine User eklemesi yaparak  komutu aynı şekilde tekrar çalıştırdığınızda  önceden oluşturulan .csv uzantılı dosyayı güncellediğini göreceksiniz.


Group Policy Preferences Olan Grup ilkelerini Listeleme

Merhaba, 100'lerce GPO olan yapılar da hangi GPO Objeleri içerisinde Group Policy Preferences  ayarları mevcut listelemek isterseniz aşa...