Devcon Aracını kullanarak Group Policy ile Donanım Sürücüsünün Yüklenmesi
Çalıştığım kurum yaklaşık 500 kullanıcısı için elektronik imzada kullanılmak üzere usb kart okuyucu donanımlardan satın aldı. Dolayısıyla kullanıcıların tek tek gezilerek kart okuyucuların donanım sürücülerinin yüklenmesi gibi zaman ve emek kaybına sebep olacak bir durum ortaya çıktı. Diğer taraftan Windows XP ler de daha önceden bir usb cihazı sisteme tanıtmış olsanız dahi takılı olduğu usb portunu değiştirdiğinizde sizden yeniden sürücülerini isteyecektir. Bu işlem ile bu sorunun da üstesinden gelmiş olacağız.
Burada karşımıza Microsoft’ un harika araçlarından devcon.exe çıkıyor. Bu araç görsel olarak işlem yaptığımız Device Manager konsolunun komut satırında ki karşılığıdır. Açılımı da Device Console dur. Normal Windows Server 2003 kurulumda bu komut satırı aracı hazır gelmez. Bunun için Microsoft ‘un yayınladığı Windows Server 2003 Support Pack SP1 i http://support.microsoft.com/kb/892777 adresinden diğer faydalı araçlar ile birlikte indirebilir, Windows Server 2003 SP1 cd sinde Support\Tools altında yer alan dosyadan kurabilir ya da http://support.microsoft.com/kb/311272 adresinden sadece bu aracı çekebiliriz.
Yukarıda ki adreste belirttiğim Support Pack i sunucumuza (ben domain controller a yükledim) yükledikten sonra C:\Program Files\Support Tools klasörünün altına tüm araçların atılmış olduğunu görürüz. Burada ki devcon.exe dosyasını client lar da \Windows\System32 klasörünün altına atarak komut satırında yoldan bağımsız çalışmasını sağlayabiliriz.
Yukarıda ki ayarımızı tamamladığımıza göre kullanıcıların bilgisayarlarına kurulacak olan donanım sürücülerini herkesin ulaşabileceği bir yerde paylaşıma açmalı ve Everyone – Read yetkisi vermeliyiz. Ben burada bu klasörü carddriver klasörünün altında omnikey klasörü olarak belirledim ve bu klasör içerisine Omnikey kart okuyucusunun sürücülerini, kurulum dosyasını açarak kopyaladım. Etki alanımızın kurulu olduğu sunucunun adı da testsecuredc olduğu düşünülürse UNC adresimiz \\testsecuredc\carddriver\omnikey olacaktır. Aynı paylaşımın altında devcon adında bir klasör daha oluşturdum ve bu klasöre de kullanıcıların bilgisayarlarında %systemroot%\system32 altına kopyalayacağımız devcon.exe dosyasını koydum. Bu klasörün UNC adresi de \\testsecuredc\carddriver\devcon olacaktır. Ekran görüntülerini aşağıda görebilirsiniz.
Şimdi sistemlere kurulumu yapılacak olan kart okuyucunun Hardware ID sini öğrenmemiz gerekecek. Bunun için %systemroot%\system32 klasörü altında devcon.exe dosyası bulunan bir test bilgisayarına kart okuyucuyu taktıktan sonra yeni donanım bulundu sihirbazını İPTAL diyerek kapatalım. Komut satırından aşağıda ki komutu girerek sistemde ki USB portlarını ve USB portlarına takılı olan cihazların Hardware ID lerini listelemiş oluruz. Komutumuz;
devcon find USB\* dır.
Bu komut sonucunda ekran görüntüsü aşağıdaki gibi olacaktır;
Yukarıda yazanlardan bizim için önemli olan kısım kırmızı ile çerçevelediğim kısımdır.
Burada USB\ ifadesinden sonra ki VID_076B bizde donanım ID sini & işaretinden sonra ki kısımda modelini göstermektedir. Normalde & işaretinden sonrasına aynı sürücü ile birden fazla modelin tanımlandığı durumlarda ihtiyaç duyuyoruz. Yukarıdaki Smart Card Reader USB ifadesi donanımızın sürücüsü yüklenmeden önceki görünen halidir. Sürücümüz başarı ile yüklendikten sonra burada CardMan 3×21 yazacaktır.
Ön hazırlıklarımızı tamamladığımıza göre sürücü yükleme işlemleri için gerekli olan script dosyasını yazalım. Bu dosyayı hazırladıktan sonra dağıtımını Group Policy ile sağlayacağız. Script dosyamızın içeriği aşağıda ki gibi olacaktır.
If exist %windir%\system32\drivers\cxbu0wdm.sys then goto end
copy \\testsecuredc\carddriver\devcon\devcon.exe %systemroot%\system32\devcon.exe
devcon install \\testsecuredc\carddriver\omnikey\cxbu0wdm.inf “USB\VID_076B&PID_3021”
devcon remove “USB\VID_076B&PID_3021”
:end
Yukarıda ki komutları notepad ile oluşturduğumuz updatecarddriver.bat isimli bir script dosyasını Group Policy ile dağıtmak için Group Policy Management Console u açalım. Eğer bu konsol yüklü değilse http://www.microsoft.com/downloads/details.aspx?FamilyId=0A6D4C24-8CBD-4B35-9272-DD3CBFC81887&displaylang=en adresinden indirilebilir.
Açılan konsolda sürücüleri yüklemek istediğimiz bilgisayarların bulunduğu OU hangisi ise onun üstüne gelip sağ tıkladıktan sonra “Create a GPO in this domain and link it here” seçeneğini seçtikten sonra policy mize isim vererek yeni bir Group Policy oluşturalım (Ben adını Card Reader Driver Installation olarak belirledim). Yeni policy mizin konsolunda Computer ConfigurationWindows SettingsScripts (Startup/Shutdown) bölümüne gelip sağ tarafta bulunan Startup seçeneğine çift tıklayalım. Açılan pencerede sağ tarafta bulunan Add butonuna ve daha sonrada Browse butonuna tıklayarak masaüstümüzde ki updatecarddriver.bat dosyasını buraya kopyalayıp yapıştıralım OK diyerek tüm pencereleri kapatalım. Ekran görüntüleri aşağıda ki gibi olacaktır.
Yukarıda ki işlemleri tamamladığımıza göre artık kullanıcılar bilgisayarlarını kapatıp açtıklarında script miz çalışacak ve kart okuyucumuzun donanım sürücülerini yükleyecektir. Böylece kullanıcı dilediği porta kart okuyucusunu taktığında sistem otomatik olarak kart okuyucuyu tanıyacaktır. Bu işlemleri yapan herhangi bir kullanıcının bilgisayarında Device Manager dan ya da devcon.exe aracı ile sistem de takılı ve tanımlı olan USB cihazlara bakabiliriz. Komutumuz;
devcon find USB\* dır.
Ekran görüntüsü aşağıdaki gibi olacaktır.
NOT: Client kullanıcımızın bilgisayarı üzerinde herhangi bir yetkisinin (Administrator, Domain Admin) olmasına gerek yoktur.
Umarım herkes için faydalı bir yazı olur. Yeniden görüşmek üzere herkese iyi çalışmalar.