mstsc etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
mstsc etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

22 Ocak 2017 Pazar

Mucize komut satırı Wmic ve bir kaç sihirli komut

Windows Yönetim Araçları komut satırı (WMIC), Windows Server 2003 ailesindeki işletim sistemlerini çalıştıran bilgisayarları yönetmek için WMI’dan yararlanmanıza olanak vermek amacıyla, Windows Yönetim Araçları’na (WMI) yönelik, basit bir komut satırı arabirimi sağlar. WMIC, var olan kabuklar ve hizmet programı komutlarıyla birlikte çalışır ve komut dosyaları veya diğer yönetime dayalı uygulamalar yoluyla kolayca genişletilebilir.

Kullanımı basittir, komut satırına wmic yazıp enter e basılırsa wmic editörü gelir ya da direkt wmic den sonra /"istenen komu" yazarak ta çalışabilir...

Aşağıdaki örnekte üstte bilgisayarımızın modelini direkt öğreniyoruz. Seri numarasını da editöre geçerek öğreniyoruz...





Örnek yapabileceğimiz en basit şeylerden birisi ancak ağımızdaki bir çok bilgisayar 
için bu bilgiler gerekliyse çok yararlı olabiliyor. 
Bilgisayarınızdaki program listesi servis listesi vb. şeyler listelenebiliyor. 
ilenirse istenen çıktı formatı ayarlanabiliyor text ya da html olarakta dönüştürülebiliyor. 
Sizin ya da ağdaki bilgisayarlarınız için program bile kaldırabiliyorsunuz.
Mesela başka bir örnek verelim; Sonrasında da daha da detaya inelim.
Örneğin wmic ile servislerinizin listesini almak isterseniz;
wmic komut satırında SERVICE yazmanız yeterlidir.
Bunu bir dosyaya çıktı olarak yollamak isterseniz;
WMIC /OUTPUT:”C:\ServiceList.txt”
Service komut çıktısında çok fazla detay var, bana hepsi lazım değil derseniz 
özelleştirebilirsiniz:
WMIC Service Get caption, name, Started, Startname, state
gibi özelleştirebilir, istediğiniz kolonlardaki bilgiyi alabilirsiniz.

Çıktıyı text değil de html formatında da alabilirsiniz. Hatta bir kolona göre sıralayabilirsiniz 
WMIC /OUTPUT:”C:\ServiceList.html” SERVICE Get caption, name, Started, Startname, 
state /format:”htable-sortby.xsl”:”sortby=State”
WMIC’i hem lokal makinede kullanabilirsiniz hem de uzak bilgisayarlardan 
bilgi toplayabilir veya konfigurasyon yapabilirsiniz.
Yapabilecek çok fazla komut var listesini de  wmic /?  yazarak öğrenebiliyoruz...

Kendi kullandığım ve netten bulduğum bir kaç hazır komut var onları da paylaşacağım...

Belirli bir bilgisayarda kurulu programları listelemek için:
/node:BİLGİSAYARADI product get name,version,vendor
İsminde adobe geçen programları listelemek için:
/node:BİLGİSAYARADI product where "name like 'adobe%'" get name,version,
identifyingNumber
Program kaldırmak için:
/node:BİLGİSAYARADI product where name="TeamViewer" call uninstall
Birçok bilgisayardan aynı anda belirli bir programı kaldırmak için:
/failfast:on /node:@"c:\bilgisayarlar.txt" product where name="TeamViewer" 
call uninstall /nointeractive
NOT:(Bu komuttaki bilgisayarlar.txt dosyası domain’deki bilgisayar isimlerini içeren bir 
metin dosyası olacaktır. /failfast:on parametresi komut çalıştırıldığı sırada çevrimdışı
olan bilgisayarları atlayarak ilerlemeyi sağlar. /nointeractive parametresi program 
kaldırma işleminden önce onay sorusunun sorulmasını engeller.)

Domain’deki bilgisayarlarda program aramak ve bunların çıktısını almak
/node:@srv.txt /user:DOMAIN\USERNAME /password:PASSWORD /output:out.txt 
product where "name like '%.net framework%'" get name, version /format:csv
NOT:(srv.txt dosyasını arama yapılacak her bilgisayar adı bir satıra gelecek şekilde 
oluşturabilirsiniz. Komutu psexec yardımıyla da kullanabilirsiniz.)
Sunucularda kurulu olan Windows Update paketlerini listelemek 
wmic qfe get csname,hotfixid | find /i "KBxxxx" > c:\sonuc.txt
Bir uzak makinenin TCP/IP ayarlarını öğrenmek
WMIC /NODE:”UzakMakineAdi” /USER:”Domain\KullaniciAdi” 
/PASSWORD:”P@ssw0rd” /OUTPUT:”C:\IpConfig.txt” NICCONFIG Get Caption
,IpAddress, IpSubnet, DNSHostName, DefaultIpGateway, DHCPEnabled
, DHCPServer, WINSPrimaryServer, DHCPEnabled

 Ip adresini bildiğiniz aynı ağ üzerinde olan bilgisayarda o anda kimin oturumu 
açık olduğunu öğrenmek
WMIC /Node:10.24.10.55 ComputerSystem Get UserName 
Uzaktaki bir bilgisayarın seri numarasını, işletim sistemi versiyonunu, 
bilgisayarın adını, cihazın marka ve modelini öğrenme
wmic /node:10.24.10.55  Bios get  Serialnumber, Systemname, Name, Description, Manufacturer
Listesini oluşturduğumuz ağdaki bilgisayarların istenilen bilgilerinin 
listesini yazdırmak
wmic /node:@%userprofile%\desktop\computers.txt /Output:”%userprofile%\desktop\ProcessorReport.txt” bios get Serialnumber,Systemname,Name,Description,Manufacturer,AddressWidth,DeviceID /format:list
NOT:( computer.txt isimli dosya içinde alt alta yazdığınız bilgisayarların
(ip ya da netbiosname) bilgilerini masaüstünüzdeki bir dosyaya liste şeklinde yazdırabilirsiniz.
 /format parametresyle oynayarak bu çıktının csv ya da html olmasını sağlayabilirsiniz. )
Yüklü olan yama listesi için:
wmic qfe list
Static bir ip adresi vermek için:
wmic nicconfig where index=9 call enablestatic(“10.0.0.2”), (“255.255.255.0”)
Gateway adreslerini değiştirmek için:
wmic nicconfig where index=9 call setgateways(“10.0.0.4”, “10.0.0.5”),(1,2)
DHCP enable hale almak için:
wmic nicconfig where index=9 call enabledhcp
Harddisk sürücü hakkında bilgi almak için:
wmic logicaldisk where drivetype=3 get name 

20 Ocak 2017 Cuma

Remote Desktop Özelliğini Uzak Bilgisayarda Aktif Etme

Uzak masaüstü (RDP) hepimizin günlük hayatinda siklikla kullandigi bir teknoloji. Firma içerisinde çalisanlarin bilgisayarlarinda sikinti yasamasi durumunda bir IT çalisani nin sikinti yasanan bilgisayarin yanina gitmek yerine RDP olarak adlandirdigimiz bu teknolojiyi kullanarak çalisanin bilgisayarina uzaktan baglanmak yoluyla yardim edebilmekte.
Ancak bu özelligin çalisabilmesi için öncellikle bu özelligin açilmasi gerekiyor. Bilgisayarinizin System Properties kismina girip “Remote” sekmesine gittiginizde iki kisim ile karsilasirsiniz, bunlardan ikincisi bilgisayarimizdaki “Remote Desktop” özelliginin durumu gösteriyor. Asagidaki örnekte görebileceginiz üzere bende bu özellik simdilik kapali “Don’t allow” gözüküyor.
image 
Uzak masaüstü özelligi isletim sisteminin kurulumunda kapali olarak gelir ve böyle bir durumda baska bir bilgisayar üzerinde bu bilgisayarlara baglanmaniz mümkün olmaz. Ancak “Allow” seçenegini isaretlemeniz durumunda bu bilgisayarlara uzaktan masaüstü yöntemiyle baglanmaniz mümkün olabilir. Tabi bu seçenegin kapali olmasi baska bir sorunu dogruyor, “bu özelligi bilgisayarin yanina gitmeden nasil açabiliriz?”. Bu özelligi sadece bilgisayara giderek açabiliyor olsaydik pek anlamli bir çözüm olmazdi. Birçok admin günümüzde bu özelligi uzaktan bir registry degisikligi yaparak açiyor ve bu çözüm çok da güzel çalisiyor, ancak bu yazimda çok daha kolay bir yönetmden bahsedecegim ve isterseniz bu yöntem ile yüzlerce bilgisyarda bu özelligi tek bir komut kullanarak açabileceksiniz.
Isin sirri WMI da, simdi sirasiyla WMI ile uzak masaüstü için neler yapabilecegimize sirasiyla bakalim. Öncelikle test için kullandigim client üzerinde WMI in komut satiri toolunu kullanarak yukaridaki GUI üzerinden de yapabilecegimiz uzak masaüstü özelligini komut satirindan açalim.
wmic rdtoggle where AllowTSConnections="0" call SetAllowTSConnections "1"
image
ReturnValue olarak “0” dönmesi hata almadigimiz anlamina geliyor. Simdi islemin basariyla sonuçlanip sonuçlanmadigini tekrar GUI de bulunan “Remote” sekmesinden kontrol edelim. Asagida görebildiginiz üzere uzak masaüstü artik allow gösteriyor.
image
Ancak bu komutu uzak masaüstü özelligini açtigimiz bilgisayar üzerinden çalistirdik, yani yine bir faydasi yok gibi, simdi bir adim da ileriye giderek yine WMI üzerinden uzaktaki bir bilgisayarin uzak masaüstü özelligini açalim. Bunun göstermek için iki bilgisayar kullanacagim, “DC4” komutlari çalistiracagim sunucu olacak, “clientc” ise uzak masaüstü özelligini açacagim Windows 7 client olacak.
Önce “DC4” üzerinden mstsc.exe kullanarak “clientc” ye uzak masaüstü baglantisi yapmaya çalisalim. Görebildiginiz gibi “DC4” üzerinden baglanmak isterken bir hata aldik.
image 
Simdi tekrar “DC4” ün komut satiri üzerinden asagidaki komutu çalistiralim (yapamiz gereken daha önce kullandigimiz wmic komutuna /node anahtarini ekleyip buraya komutun çalismasini istedigimiz bilgisayarin adini girmek). Asagida görebildigimiz gibi komut basariyla çalisti ve artik “clientc” ye uzak masaüstü kullanarak baglanabiliyor olmamiz gerekiyor.
wmic /node:clientc rdtoggle where AllowTSConnections="0" call SetAllowTSConnections "1"
image 
Baglantinin çalisip çalismadigini test etmek için tekrar mstsc.exe yi kullanarak “clientc” ye baglanmaya çalisiyoruz. Asagida görebildigimiz gibi“clientc” bilgisayarina artik uzaktan erismek mümkün.
Capture
Bunu bir adim daha ileriye götürecek olursak (daha ne adimi demeyin), örnegin etki alanimizda bulunan yüzlerde bilgisayarda uzaktan masaüstü özelligini açmak istesek ne yapabiliriz? Ayni komutu yüzlerce kez elle çalistirmak yine zaman alici bir süreç olacaktir. Çözüm çok basit yapacagimiz islem isin özünde yine ayni komutu kullanarak ve buna sadece bir For döngüsü ile birlestirmek istedigimiz bilgisayarlarda bu islemi uygulamak mümkün.
Ilk yapmamiz gereken bir TXT dosyasina uzak masaüstü özelligini açmak istedigimiz bilgisayarlarin adini sirasiyla girmek ve bu dosyayi kaydetmek sonrasinda asagidaki komutu çalistirmamiz yeterli olacak. Örnegin uzak masaüstünü tüm windows 7 clientlarda açmak istiyoruz ve Windows 7 bilgisayarlarimin listesini “win7.txt” olarak bir dosyaya kaydettim.
for /F %I in (win7.txt) DO wmic /node:%i rdtoggle where AllowTSConnections="0" call SetAllowTSConnections "1"
Yukaridaki döngüyü kullanarak istedigimiz tüm istemcilerde artik uzak masaüstü özelligini açabiliriz, diyelimki tam tersini yapmak istiyorsunuz. Bu durumda sifir ve bir in yerini degistirerek (AllowTSConnections="0" call SetAllowTSConnections "1")tüm açik olan uzak masaüstü özelligini ayni yöntemi uygulayarak kapatmaniz mümkün. Umarim sahada uygulamaya geçebileceginiz faydali bir yazi olmustur.