Terminal Services Easy Printer özelliği Windows Server 2008 ile birlikte gelen yeni bir özellik olup, daha önce ki Windows Server İşletim Sistemi ürünlerinde yaşamış olduğumuz Terminal Server Yazıcı problemlerini giderilmesi için geliştirilmiş bir özelliktir.
Terminal Services Easy Printer özelliği, Windows Server 2008 Terminal Services için bir rol değildir. Serverimiz üzerinde Terminal Server Rol’ünü yükledikten sonra kullanabileceğimiz bir özelliktir.
Terminal Services Easy Printer Özelliği Öncesi
Windows Server 2008 Terminal Server öncesi , sahip olduğumuz Terminal Serverlarda kullanıcılarımızın yazdırma hizmetinden yararlanabilmeleri için Terminal Serverlarımız üzerinde yapmamız gereken bir takım eylemler bulunmaktaydı.
Terminal Servis kullanıcılarımızın, Terminal Serverlar üzerinden yazdırma hizmetlerini kullanabilmeleri için kendi client bilgisayarlarında yüklü bulunan yazıcının sürücüsü, Terminal Server üzerinde yüklü olması gerekmekteydi. Bu zorunlu ihtiyaç bizlere gerek iş yükü açısından gerekse server üzerinde ki performans ve olası hatalar sebebiyle zor durumlarda bırakmaktaydı.
IT deparmanına getirmiş olduğu İşyükü olarak her terminal services kullanıcısının sahip olduğu yazıcının tek tek terminal server üzerine yüklenmesini iş yükü olarak görebiliriz.
Server üzerinde ki performans kaybı ise , Terminal Services kullanıcısı tarafından yapılan bir yazdırma hizmeti, Terminal Server üzerinde ki yazdırma biriktiricisi hizmetinin (print spooler) kullanılmasına ve her yazdırma isteğinde servisin server üzerinde ki kaynakları kullanmasına sebep olmaktaydı. Çok sayfalı dökümler de serverimiz üzerinde ciddi performans kayıpları oluşmaktaydı. Terminal Serverimiz üzerinde de fiziksel olarak bağlı bulunmayan ama her bir kullanıcının sahip olduğu yazıcıların driverlari bulunmaktaydı.
Server üzerinde oluşan hatalara ise client tarafında yüklü bulunan yazıcı diriverinin, server için uyumlu olmamasını örnek verebiliriz. Bu örnek için gerçek hayatda yaşanılan problemlerden oluşan bir senaryodan ve yaşamış olduğumuz sıkıntılardan bahsetmek isterim.
Terminal server kullanıcımızın bilgisayarı üzerinde X firmasının üretmiş olduğu bir yazıcı bulunmaktadır. Terminal Server kullanıcımızın bilgisayarı üzerinde bulunan bu X firmasının yazıcısı, client işletim sistemi için geliştirilmiş olup server yazılımları ile uyumlu durumda değildir.
Windows Server 2008 Easy Printer öncesi Terminal Server isteklerinde ki zorunluluğumuz, kullanıcı tarafında yüklü bulunan yazıcı sürücüsünün, aynısının server üzerinde yüklü olduğunu hatırlarsak Terminal Services Kullanıcımız sahip olduğu yazıcıyı Terminal Server üzerinde kullanamayacaktı.
Bizler bu problemi ortadan kaldırmak için izlemiş olduğumuz yol, kullanıcı tarafında yüklü bulunan X firmasının yazıcısının, sahip olduğu sürücüsünün, bir benzerini, aynı olmayan ama uyumluluk taşıyan sürücüsünü manuel olarak Terminal serverimiz üzerine yüklüyorduk.
Bizler yazıcı driverini manuel olarak yükleme işlemlerini bitirdikten sonra kullanıcımız artık kendi bilgisayarı üzerinde yüklü bulunan yazıcıyı Terminal Server üzerinden kullanabilecek duruma geliyordu.
Fakat zaman içerisinde yaşamış olduğumuz diğer sıkıntılar, yazıcının sahip olduğu sürücü doğru olmadığı için kullanıcımız sahip olduğu yazıcının tüm fonksiyonlarını kullanamıyor ve yazıcının tüm özelliklerini kısıtlı olarak kullanabiliyordu.
Bu yazıcıyı eğer bir paket program için kullanılıyorsa, fatura, irsaliye vb.. dökümler için dizayn edilmiş bir form üzerinden kullanılıyorsa ufak , pek fazla problem olmayan form uyumsuzluklarını beraberinde getirebiliyordu.
Yukarı da bahsetmiş olduğumuz problem, senaryomuzun pembe kısmı olup, bu senaryonun birde pembe olmayan kısmı bulunmaktadır.
Bilindiği üzere blue screens (mavi ekran) hatası hemen hemen her sistemcinin karşılaşmak istemediği, bilinmez denklemlerden oluşan bir hatadır.
Senaryomuz için bu mavi ekran hatasının, konumuz ile ilgili olan bölümünden bahsetmemiz gerekirse mavi ekran hatasında bizlere söylemiş olduğu uyarı Muhtemelen Server üzerine yeni bir donanım taktınız veya mevcut donanım ile ilgili bir yazılım yüklediniz-güncelleştirdiniz. Problemi çözmek için bilgisayarınızı yeniden başlatın veya uyumsuz donanımı çıkartın veya yazılımı kaldırın diyerek bir varsayımda – varsayımlarda bulunmaktadır.
Konumuza geri dönecek olursak bizlerin Windows server 2008 Easy Printer öncesi yapmış olduğumuz senaryo da neden bahsetmiştik ? Client tarafında uyumlu olan ve sağlıklı bir şekilde çalışan, Fakat Server işletim sistemi için dizayn edilmemiş ama kullanmak zorunda olduğumuz sürücünün bir benzerini Terminal Serverimiza yüklüyorduk.
Kısacası serverimiz için uyumsuz olan bir sürücüyü serverimiza yüklüyorduk ki bu hata ile karşılaşmak için bir zemin hazırlıyorduk.
Bu uyumsuz sürücü yüklenmesi mavi ekranı vermeden önce yaşamış olduğumuz diğer sıkıntılar ise Terminal Server üzerinde tanımlı olan yazıcıların düzensiz çalışmasıi print spoler (yazdırma biriktiricisi) hizmetinin gereğinden fazla kaynak kullanması, prin spoler servisinin sağlıksız çalışması vb.. problemleri de söyleyebiliriz.
Windows Server 2008 Terminal Services Easy Printer Özelliği
Yukarıda bahsetmiş olduğumuz problemler artık Windows server 2008 ile birlikte giderilmiştir. Easy Printer Özelliği sayesinde artık Clientlarımızda tanımlı olan yazıcılar, Terminal Serverimiza YÜKLEMEKSİZİN yazdırma hizmetinden yararlanabilmekteyiz.
Windows Server 2008 Easy Printer özelliği sayesinde, Terminal Services Kullanıcılarımız, kendi bilgisayarı üzerinde tanımlı olan ve sağlıklı bir şekilde çalışan yazıcılarından , yazdırma isteği gönderdiği zaman, Terminal Services Client bilgisayardan Terminal Server’a yazdırma isteği gitmemektedir.
Yazdırma isteği kullanıcı bilgisayarında Network Sanallaştırma teknolojisini kullanmakta olup yazdırma isteği kullanıcı bilgisayarı üzerinde XPS formatına dönüştürülüyor ve XPS Formatına dönüşen bu istek Terminal Servera gidip, döküm isteği kullanıcı tarafında son buluyor.
Windows Server 2008 Easy Printer Özelliğine Teknik Açıdan Bakış :
Windows Server 2000 – 2003 Terminal Server alt yapısında yazdırma hizmetini MSTSC.exe uygulaması üstlenmekte olup MSTSC.exe uygulaması bir Win32 application uygulamasıdır.
Windows Server 2008 Terminal Server alt yapısında ise yazdırma hizmetini WPF printing alt yapısı kullanmakta olup bu uygulama bir .NET Framework uygulamasıdır ve TSWPFWRP.exe tarafından yönetilmektedir. TSWPFWRP.exe uygulaması sadece easy printer özelliği tarafından kullanılmaktadır.
Windows Server 2008 Terminal Services kullanıcısı, Terminal server üzerine uzak oturum açtığı zaman (Remote Desktop session) veya RemoteAPP uygulaması ile bağlantı kurduğu zaman, kendi üzerinde bulunan var sayılan yazıcı Otomatik olarak kullanıcı tarafına yönlendirilmektedir.
Easy Printer çalışma mantığı aşağıda ki adımlara göre sıralanmaktadır.
-
GDI – Graphics Device Interface
-
DDI – Device Driver Interface
-
WPF – Windows Presentation Foundation
-
XPS- XML – Paper Specification
-
WYSIWYG-What you see is what you get
-
XPSDrv – XPS (printer driver)
-
EMF-Enhanced Metafile
-
PDL – Process Definition Language
Biraz karışık oldu galiba 🙂 yukarıdaki sıralamanın anlaşılır dili özet olarak , çıktı alınanacak döküman server üzerinde xps dökümanı haline getirilir ve istemci makineye gönderilir daha sonra istemci makinede local printer driverı ile dökümü almaktadır.
Easy Printer Client İstekleri.
Windows server 2008 Terminal Services Easy Printer isteğinin kullanılabilmesi için Kullanıcı bilgisayarında çalışabilmesi için aşağıda ki bileşenler yüklenmelidir.
-
Windows XP SP3 veya Windows Vista SP1
-
.NET Framework 3.5
-
RDP 6.0 ve üstü (XP SP3 ile birlikte gelmektedir.)
Yazılımlarının client bilgisayarında yüklü olması gerekmektedir.
Yukarıda ki ihtiyaçlar için Microsoft’ un yeni nesil işletim sistemi olacak olan Windows 7’ de gelişmeşler bulunmaktadır. Windows 7 ile birlikte gelecek olan “ Workspace, Presentation Virtualization, and Remote Desktop Services Gateway features ” özelliği sayesinde, Windows Server 2008 Terminal Services özelliği ile birlikte bire bir uyumlu hale gelecek olup, yukarıdak ki client ihtiyaçlarını Windows Seven için yapmamıza gerek kalmayacaktır.
Windows Server 2008 Terminal Server istekleri ve Yapılandırılması
Terminal Serverimiz üzerinde Easy Printer Özelliğini kullanabilmemiz için gerekli olan programlar.
Serverimiz üzerinde .Net Framework 3.5 özelliğinin yüklü olması gerekmektedir. Windows Server 2008 alt yapısı içeriğinde .Net Framework 3.0 özelliği yüklü olup bu özelliği
Server Manager Features Add Features .NET Framework 3.0 özelliğini ve XPS Viewer özelliğini yüklememiz gerekmektedir.
.Net Framework 3.0 ve XPS Viewer özelliğini yükledikten sonra .NET Framework 3.0 özelliğimizi .Net Framework 3.5 sürümüne yükseltmek için komut satırında
-
pkgmgr.exe /iu:NetFx3
komutunu çalıştırmalı ve .NET Framework 3.0 sürümünü .NET Framework 3.5 sürümüne güncelleştirmeliyiz.
Terminal Serverimiz üzerinde .NET Framework sürümünü, .NET Framework 3.5 sürümüne yükselttikten sonra , Serverimiz üzerinde yazıcılar bölümüne girip, boş bir alan üzerinde mousemizin sağ tuşuna basıp, Server Properties bölümü üzerinden, Serverimiz üzerine Easy Printer hizmetinin yüklü olup-olmadığını kontrol edebiliriz.
Eğer serverimiz üzerinde Terminal Services Easy Print driverini göremiyorsak, add bölümünü kullanarak, serverimizin sahip olduğu mimarinin (Itanium, X64 ve X86) seçimini yaparak Easy Print driverini manuel olarak yükleyebiliriz. Yani Easy Ptinter özelliği mix mode olarak çalışabilmektedir.
Terminal services Easy Printer isteğini ihtiyacımıza göre özelleştirebiliriz. Windows server 2008 Server işletim sistemimiz üzerinde, TS Easy Printer özelliğini özelleştirebiliriz için iki farklı Policy bulunmaktadır. Bu Policyleri Terminal Server üzerinde ki Local Group Policy’ ler üzerinde yapmamız önerilmektedir.
Computer ConfigurationAdministrative TemplatesWindows ComponentsTerminal ServicesTerminal ServerPrinter Redirection yolunu takip ederek ;
Use Terminal Services Easy Print printer driver first
policisini aktif duruma getirirsek; kullanıcı bilgisayarı üzerinde yüklü bulunan bütün yazıcılar Terminal server üzerine yönlendirilecek olup, kullanıcı yazdırma hizmetinden yararlanacağı zaman, istemiş olduğu yazıcıyı seçebilecektir.
Computer ConfigurationAdministrative TemplatesWindows ComponentsTerminal ServicesTerminal ServerPrinter Redirection yolunu takip ederek ;
Redirect only the default client printer
policisini aktif duruma getirirsek; kullanıcı bilgisayarı üzerinde yüklü bulunan varsayılan yazıcı Terminal server üzerine yönlendirilecek olup, kullanıcı yazdırma hizmetinden yararlanacağı sadece varsayılan yazıcısından çıktı alacaktır.
İki policyi arasında tercih ederken dikkat etmemiz gereken ve kendimize sormamız gereken en önemli soru,
-
kullanıcılarımızın bilgisayarları üzerine bağlı kaç tane yazıcı var ?
-
kullanıcılarımızın bilgisayarlarına bağlı bu bütün yazıcılar, terminal server üzerine yönlendirilirken ne kadar performans kaybına sebep olacaktır.
Bu seçimi yaparken kullanıcılarımızı da bilgilendirmemiz gerekemektedir. Eğer Redirect only the default client printer Policysini aktif duruma getirirsek, kullanıcılarımız sadece varsayılan yazıcısını kullanabileceği için, diğer bağlı bulunan yazıcılarını çıktı alamayacaklardır.
Bu sebepten ötürü, var sayılan yazıcısına döküm alabilmesi için mevcut oturumlarını sonlandırmalı ve bilgisayarı üzerinde yüklü bulunan ve döküm almak istediği yazıcıyı varsayılan yapıp yeniden bir oturuma bağlanması gerekmektedir.
Terminal Server Easy Printer özelliğini, RemoteAPP teknolojisinde kullanabildiğimiz gibi diğer bağlantı yöntemimiz olan Session Üzerinden açılan oturumlarda da kullanabilmekteyiz.
Terminal Services Easy Printer çalışma mantığını özetleyecek olursak ;
-
User ts oturumunda bir uygulamadan çıktı almak ister.
-
Çıktı alması için printer seçim ekranı gelir ve kullanıcı bir printer seçer
( Kullanıcı bu sırada çıktı almadan önce bir takım değişiklikler yapabilir.)
-
Ts easy print sürücüsü yüklenir
-
Ts easy print sürücüsü isteği sanal kanal üzerinden rdc client a gönderir.Bu sırada gerçek printer sürücüsü client üzerindeki printer özelliklerini çağırır
-
Kullanıcı döküman yada çıktı özelliklerini değiştirebilir
-
Rdc istemcisi kullanıcının yerel printer sürücüsünde yaptığı değişiklikleri terminal serverdaki easy print driver’a iletir
-
Uygulama kullanıcının yaptığı değişikliklere göre dökümanı yeniden formatlar ve çıktı olarak yollar.
-
Ts üzerindeki easy print sürücüsü bu çıktıyı gdi-to-xps çeviricisine iletir
-
GDI tabanlı print işlemleri gdi-to-xps çevirme işlemine tabi tutulur ancak WPF tabanlı print işlemleri bu çevirime tabi tutulmaz
-
Server tarafında xps spool oluştururlur ve bu istemci tarafına gönderilir
-
Rdc istemcisi xps spool dosyasını alır
-
Eğer istemci tarafında yazıcı sürücüsü xps destekliyor ise xps spool , xps print path kullanır ancak desteklemiyor ise xps istemci tarafında xps to gdi ile çevirme işlemine tabi tutulur .
-
Print işlemi çıktı almak için print spooler a gönderilir
Kaynak :
http://technet.microsoft.com/en-us/library/cc753853.aspx
http://blogs.technet.com/askperf/archive/2008/02/17/ws2008-terminal-services-printing.aspx
http://download.microsoft.com/download/a/f/d/afdfd50d-6eb9-425e-84e1-b4085a80e34e/SVR-T340_WH07.pptx
Fatih KARAALİOGLU