"PowerShell" bölümündeki tüm yazılar:

PowerShell ile Twitter REST API Entegrasyonu – Takipçi Listesi

26.11.2015 | 23:35 PowerShell 1 Yorum

Twitter servislerine genelde web tarayıcılar ve mobil uygulamalar üzerinden erişilir. Aynı zamanda bu servisler, bazı işlerin programatik olarak gerçekleştirilebilmesi için REST, Streaming, Ads gibi çeşitli API’lar da sunar. Örneğin yeni bir tweet yazmak, time line okumak, çeşitli bilgilerle birlikte takipçi listesini export etmek, görsel yüklemek, arama yapmak, ayarları değiştirmek, direkt mesaj göndermek gibi birçok aktiviteyi bu API’lar sayesinde kendi geliştirdiğiniz uygulamalara entegre edebilir ve hatta tamamen özelleştirilmiş bir Twitter client bile yazabilirsiniz.

Geçenlerde HTTP tabanlı API istekleri, JSON formatlı veri alışverişi ve bu sırada oluşan içeriklerin Parse edilmesi gibi birkaç konu üzerinde çalışıyordum ki aklıma Twitter REST API‘lar geldi. Bu API’lar hem istediğim deneme ortamını sağlıyor, hem de yetkilendirme için OAuth kullanıyor; bu da bakmak istediğim bir başka konuydu…

Eğer Twitter kullanıyorsanız mesela “tweet atın“, “takipçilerinizi analiz edin” veya “unfollow yapanları öğrenin” gibi çeşitli üçüncü parti servisleri görmüşsünüzdür. Tamamı yine bu gibi API’lar vasıtasıyla çalışırlar. Ancak bana göre bu tip servislerdeki en büyük sorun kullanıcının username/password bilgisiyle çalışıyor olmaları. Aslında güvensiz sayılmaz çünkü bu sırada yine Twitter tarafından sağlanan bir yöntem kullanılır ama sanırım bugüne kadar kullandığım hiçbir servisin username/password bilgisini -o servisle ilişkili olsa dahi- farklı bir servise/uygulamaya girmedim. Eğer seçeneğim yoksa da o servisi kullanmadım.

Şimdi oturup bir Twitter client yazmayacağım tabii ki ama bu gibi meselelerin üzerinde düşünmeyi severim. Maksat antrenman olsun… Eğer bir programlama dilini konuşuyor olsaydık (ki çoğu zaman hazır kütüphanelere sahiptirler) bu gibi entegrasyonlar yapmak oldukça kolay. Peki ya PowerShell ile böyle bir entegrasyon mümkün mü? Mesela PowerShell ile yazılmış bir Twitter client? Pek tabii mümkün :) Ancak UX açısından çok kullanışlı olacağını söyleyemem. Ama yine de mümkün. Geçenlerde PowerShell üzerinden tweet atmak, tweet okumak, direct message göndermek, follower’ları listelemek gibi şeyler yapan birkaç script hazırlamıştım.

powershell-tweet

Belki tamamını değil ama aralarından bir tanesini, ilham vermesi ve yol göstermesi adına bu blog post’da kaleme alıyorum.

Bu antrenman sırasında -ve tabii herhangi bir üçüncü taraf servise username/password bilgisi girmeden- ulaşmak istediğim hedef şu: Twitter hesabım için Takipçiler kim? Kim yeni takibe başladı? Kim ne zaman takip etmeyi bıraktı? gibi bilgilere sahip olmak.

Devamını oku…

Get-DstInfo | Windows Yaz Saati Uygulaması için Kontrol Aracı

Güncel: Bakanlar kurulunun bundan sonra sürekli yaz saatinde devam edileceği yönünde aldığı karar sonrası 30 ekim 2016 tarihine kadar Windows’lar üzerinde yapılması gerekenlerle ilgili şuraya bakabilirsiniz.

8 Kasım 2015 04:00‘a ertelenen Yaz Saati Uygulaması için 25 Ekim 2015 04:00‘a kadar yüklenmesi gereken KB3093503 numaralı hotfix’i ve üzerine kontrol edilmesi gereken ayarları biliyorsunuz. Muhtemelen bu işlemleri otomatikleştirmek için hazırladığım toplu yükleme aracını da biliyorsunuz. Peki ortamınızda hala gerekli ayarları ve hotfix’i almamış bilgisayarlar olup olmadığını biliyor musunuz? Veya Pazartesi günü ofise geldiğinizde bazı bilgisayarların saatinin geri kaldığını fark ettiniz, peki ortamda başka hangi bilgisayarların saati geri kalmış olabilir?

get-dst-info

Bu iş için hazırladığım Get-DstInfo.ps1 isimli script’i kullanarak Windows XP ve Windows Server 2003’ler de dahil olmak üzere ortamdaki tüm Windows’lar için aşağıdaki bilgileri kolayca toplayabilirsiniz.

  • İşletim sistemi sürümü
  • Local Time (o anki zaman bilgisi)
  • Time Zone (seçişi olan Time Zone bilgisi)
  • DST (DST değişikliğini hangi tarihte uygulayacağı bilgisi)
  • KB3093503 (Bu hotfix’in yüklü olup olmadığı bilgisi)

Pazar sabahı öncesinde ortamdaki Windows’lar için son durumu görmek ve Pazar sabahı sonrasında beklenmedik bir durum ortaya çıkarsa hızlıca kimlerin zaman bilgisinin geri kaldığını öğrenmek için kullanabilirsiniz.

Devamını oku…

Windows DST Hotfix KB3093503 için Toplu Yükleme Aracı ve Yaz Saati Uygulaması 2015

Güncel: Bakanlar kurulunun bundan sonra sürekli yaz saatinde devam edileceği yönünde aldığı karar sonrası 30 ekim 2016 tarihine kadar Windows’lar üzerinde yapılması gerekenlerle ilgili şuraya bakabilirsiniz.

25 Ekim 2015 04:00’da bitmesi planlanan Yaz Saati Uygulaması (gün ışığından yararlanma, dst) bu yıl resmi bir karar ile 8 Kasım 2015 04:00 tarihine ertelenmişti. 20 Ekim 2015 tarihinde ise (TR’de görünmesi 21 Ekim) Windows işletim sistemleri için DST bitişini 8 Kasım’a erteleyen KB3093503 numaralı bir hotfix yayınlandı. Ancak büyük oranda Türkiye’de yer alan belirli bir grup Windows’a hitap eden bu fix Windows Update üzerinde yer almadı ve haliyle WSUS’lara da gönderilmedi. Bunun yanı sıra Windows 10 için olan paket dışındaki hotfix paketleri Update Catalog üzerinde de yer almıyor; Yani elinizdeki WSUS’a manual import etme şansınız da yok. Bu kabul edilemez bir durum! GPO ile yükleme hayaliniz varsa üzgünüm çünkü GPO mekanizması varsayılan haliyle ancak MSI dağıtabilir. Ama hotfix MSU/CAB formatında olduğu için önce MSI’a dönüştürmeniz veya yine bir startup script basmanız gerekir. Özetle eğer elinizde merkezi bir uygulama dağıtım çözümü yoksa bu hotfix’i tüm sistemler üzerine manuel yüklemeniz ve ardından kontrol etmeniz gerekiyor. Ne güzel değil mi… Stajyer kardeşlerimiz isyanda :)

25 Ekim sabahı ve sonrasında 1 saat geri kalmış Windows’lar için yapılması gerekenleri şu yazıda toparladım.

Hotfix geçilmemiş ve DST bitiş zamanı hala 25 Ekim 2015 04:00 görünen Active Directory Domain üyesi Windows’lar saat bilgisini zaten DC’den aldıkları için Pazar sabahı geri kalmayacaklarını düşünenler varsa üzgünüm ama yanılıyorlar. Bu bir şehir efsanesi :) çünkü mesele Local Time ile ilgili.

Client’ların PDC gibi NTP tabanlı servislerden aldığı zaman bilgisi UTC‘dir. Client OS, NTP’den aldığı bu zaman bilgisi üzerine Time Zone ayarlarına bakarak meridyen (Türkiye için +2 saat) ve gerekli ise DST (+1 saat) ilave yapar. İşte bu kombinasyonla ortaya çıkan zamana Local Time denir. Bu yüzden PDC/DC saati ne olursa olsun, zamanı geldiğinde Client işletim sistemi sene başında verdiği 1 saati geri alır ve DC bu konuda baskın olamaz; çünkü Local Time‘ı yöneten DC değil Client OS’tir. Ayrıca bu durum DC/Client authentication’larını etkilemez ve Client’lar 1 saat geri kalsa dahi normal şekilde logon olabilir çünkü Kerberos auth için dikkate alınan zaman bilgisi Local Time değil System Time‘dır ve o da UTC‘dir; yani ekleme çıkartma yapılmamış salt zaman bilgisi…

Aslında bunu test etmenin yolu çok basit: Şu an Domain üyesi bir client üzerinde DST’yi disable edin, saatin anında 1 saat geri alındığını göreceksiniz. Bir süre bu şekilde bekleyin, hatta w32tm /resync falan yapın, ama DC ile aradaki 1 saat farkın asla kapanmadığını göreceksiniz. Gerçi test etmeye de gerek yok, birkaç saat sonra gerçek geçiş anı yaşanacak :)

Windows Server 2003 ve Windows XP’ler için DST ertelemesiyle ilgili bir çözüm ekledim.

Get-DstInfo.ps1 Doğrulama Aracı: Install-DstHotfix.ps1‘i yaptığı işi veya ortamınızın Yaz Saati Uygulaması bitişine hazır olup olmadığını anlamak ve topluca raporlamak için yeni bir script yayınladım: Get-DsInfo.ps1 ve kullanım kılavuzu

Sosyal ağlar üzerindeki bazı paylaşımlarda hotfix yüklemek yerine çeşitli registry kayıtlarının oluşturulmasıyla ilgili öneriler gördüm. Yapılan kayıt girişleri ile belki o an doğru Time Zone ve DST zamanına ulaşmak mümkün olabilir ama ya bir sonraki DST zamanı geldiğinde sistem nasıl davranacak? Peki bir gün sonra düzgün çalışacağının garantisini kim veriyor? Bunlar belirsiz noktalar. Eğer tüm sistemler için DST davranış değişikliği sadece bir grup registry kaydı oluşturmak ile çözülebiliyor olsaydı, bence bu yöntem mutlaka açıklanan resmi bir bilgiler arasında da yer alırdı. Yine de registry müdahaleleri çalışmaz veya kesinlikle soruna neden olur demiyorum, ama yayınlanmış bir hotfix varken risk almaya değmez diyorum. Bana soracak olursanız ve eğer DST için bir müdahalede bulunmaya kararverdiyseniz bu işin en sağlıklı ve resmi uygulama yöntemi ilgili hotfix’i yüklemektir.

Windows DST Hotfix KB3093503’ü merkezi ve topluca dağıtmak için hazırladığım aşağıdaki PowerShell script’in işinizi oldukça kolaylaştıracağına eminim.

install-dsthotfix-console

DST Değişikliğine Hazırlıklı Olmak Neden Önemli?

Sıradaki DST, saatlerin 04:00’de bir saat geri alınması ile gerçekleşecek. Bu durum 03:00-04:00 zaman aralığının o gün tüm işletim sistemleri ve yazılımlar için iki kez yaşanması demek. Yani eğer önlem alınmamış ise bu aralığa denk gelen mesela yedekleme görevleri gibi, eşitlemeler gibi envai çeşit zamanlamış görev ve çeşitli process’ler hep 2’şer kez çalışacak. Diğer taraftan sistemler ve entegrasyonlar arası uyumsuzluk, veritabanı kayıtlarının tutarsızlığı, log çakışmaları ve bu durumların gerçek hayata yansıması gibi daha da önemli riskler söz konusu. İşin doğası gereği var olan bu riskler noktasında Windows DST hotfix’ler çözüm olamıyor çünkü bu gibi durumların tespit edilmesi ve sistem/process bazlı olarak ayrıca ele alınması gerekiyor.

Devamını oku…

PowerShell Direct Nedir, Nasıl Kullanılır?

01.10.2015 | 20:23 Hyper-V , PowerShell 1 Yorum

PowerShell Direct pek tabii bir yenilik, ama özellikten ziyade VM’ler içerisinde PowerShell komutları çalıştırmak için yeni bir yol demek daha doğru olur sanırım. Windows Server 2016 Hyper-V, Windows 10 Hyper-V ve PowerShell 5.0 ile birlikte kullanılabilen PowerShell Direct yöntemi, Hyper-V Host’lar üzerinden VM’ler içerisinde PowerShell komutları çalıştırmanızı sağlayan yeni bir yol sağlıyor.

PowerShell Direct öncesinde, bir Windows VM’i ağa bağlayıp Remote Management ayarlarını yaptıktan ve Windows Firewall üzerinde gerekli kuralları aktif ettikten sonra Enter-PSSession olsun, Invoke-Command olsun çeşitli cmdlet’lerin -ComputerName parametresine ağa bağlı uzak bilgisayarı vererek üzerinde bir komut çalıştırabilir veya bir komut satırı oturumu başlatabilirsiniz. Bu modelde uzak bilgisayarın bir VM veya Physical Server olmasının da pek bir önemi yoktur çünkü iletişim ağ bağlantısı kanalıyla kurulur. Bu yüzden üzerinden ilk kural, üzerinde komut çalıştırılmak istenen uzak bilgisayarın ağa bağlı ve ulaşılabiliyor olması…

Mesela aşağıda iki örnek var. Dikkat ederseniz uzak sunucu ismi -ComputerName parametresi ile sağlanıyor.

# Server1 isimli uzak sunucuda çalışan process’lerin bir listesini alır
Invoke-Command -ComputerName Server1 -ScriptBlock{Get-Process}

# Server1 isimli uzak sunucuda bir PS oturumu başlatır
Enter-PSSession -ComputerName Server1

Powershell Direct sayesinde, PowerShell 5.0’daki bazı cmdlet’lere eklenen -VMName veya -VMGuid parametreleri ile mesela bir Hyper-V Host üzerinde çalışan ama üzerinde hiçbir Remote Management ayarı gerçekleştirilmemiş veya hiçbir şekilde ağa bağlı olmayan (hatta ağ adaptörü bile bulunmayan) bir VM’in sanal işletim sistemi içerisinde komutlar çalıştırabilirsiniz; adı gibi, direkt!

Devamını oku…

Azure Backup PowerShell Kullanımı – MSOnlineBackup

Azure Backup, Microsoft Azure altyapısında sunular bir Online Yedekleme hizmetidir; Güvenli, düşük maliyetli, devreye alması kolay, güvenilir, yaygın Microsoft iş yükleriyle uyumlu ve bulut tabanlıdır, kullandığın kadar öde modelinde ücretlendirilir.

Azure Backup hizmetinin çeşitli bileşenlerini yönetirken aşağıdaki araçları kullanabiliyorsunuz. Her araç kendi özelinde bazı görevleri gerçekleştirebiliyor, bu yüzden Azure Backup hizmetini derinlemesine yönetmek için tamamına hakim olmanız bence önemli.

Azure Management Portal

Azure Backup’a kayıtlı sunucuların (registered items) ve korunan veri parçalarının (protected items) listelenmesi, istatistik bilgilerinin raporlanması, yeni Backup Vault oluşturulması, Azure Backup Agent kurulum kaynağının veya Backup Vault’lara ait credentials file’ların indirilmesi gibi çeşitli işler için yönetim portalını kullanabilirsiniz. Tüm bu işlemler Web tabanlı bir UI üzerinden gerçekleştirilir. Ama mesela Azure Management Portal’i kullanarak bir backup veya recovery işlemi başlatamazsınız. Veya yedeklenmiş bir dizinin içeriğini browse edemezsiniz.

Azure Backup Agent

Bu Agent aslında bir Windows Server Backup (cbengine.exe) varyasyonudur ve yedeklenen (veya Azure Backup’a kayıtlı) sunucu üzerine kurulması gerekir. Azure Backup Agent sayesinde, Windows tabanlı makineyi bir Azure Backup Vault’a kayıt edebilir, yeni bir yedekleme (backup) veya bir kurtarma (recovery) görevi başlatabilirsiniz. Ayrıca ilgili Backup Vault içerisindeki Recvery Point’leri listeleyebilir ve belirli iş yüklerine ait içerikleri recovery öncesinde browse edebilirsiniz. Tüm bu görevler MMC tabanlı bir UI üzerinden gerçekleştirilir.

Azure Backup PowerShell (Azure Recovery Services Shell)

Azure Recovery Services Shell olarak de bilinen bu modül tıpkı Azure PowerShell gibi aslında bir Windows PowerShell modüldür. PowerShell modül ismi MSOnlineBackup’tır ve sisteme sonradan yüklenir. Azure Backup PowerShell komut setlerini kullanarak Azure Management Portal ve Azure Backup Agent ile yapılabilen her şeyi (ve daha fazlasını) komut satırı tabanlı olarak gerçekleştirebilirsiniz. Ayrıca belirli yedekleme ve kurtarma görevlerini otomatikleştirmek için PowerShell Script dosyaları içerisinde de kullanmanız mümkün. Hatta şurada bir örnek yazmıştım.

Devamını oku…

Azure PowerShell Kurulumu ve Aboneliğe Erişim

Azure Subscription’lara (hesaplar/abonelikler) erişmek ve çeşitli görevleri yerine getirmek için kullanabileceğiniz araçlardan birisi de (aslında bir Windows PowerShell modülü olan) Azure PowerShell’dir. Azure PowerShell ücretsizdir ancak Windows işletim sistemlerinde ön yüklü (veya sonradan yüklenmek üzere hazır) bir şekilde gelmez. Çalıştırmak için öncelikle modülü entegre eden kurulum kaynağını indirmeniz ve sisteme yüklemeniz gerekir.

Azure PowerShell modülünü kullanarak mesela Azure Management Portal üzerinden Web UI tabanlı olarak gerçekleştirdiğiniz görevleri komut satırı tabanlı olarak gerçekleştirmeniz mümkün. Şunu rahatlıkla söyleyebilirim ki Azure Portal’in Web UI’inde gördüklerinizden ve yaptıklarınızdan çok daha fazlasını Azure PowerShell ile gerçekleştirmek mümkün.

Azure PowerShell cmdlet’lerini komut satırında etkileşimli olarak o an  veya çeşitli görevleri otomatikleştirmek için oluşturacağınız PowerShell Script dosyaları içerisinde kullanabilirsiniz.

Azure PowerShell modülünün kaynak kodu genel erişime ve katılıma açıktır. GitHub üzerinde yer alır. An itibariyle desteklediği feature’ların bir listesi şuradadır. Yanılmıyorsam son stabil versiyon 0.9.4.

Devamını oku…

Get-HyperVReport.ps1 v1.5 is released!

05.03.2015 | 13:41 Hyper-V , PowerShell 0 Yorum

I have released a new version of Hyper-V Reporting Script (Get-HyperVReport.ps1 v1.5) and it’s now available on TechNet Gallery. Also you can see a full example report with new features on here.

What’s New in Get-HyperVReport.ps1 v1.5

Windows 8 and 8.1 OS support for script runtime environment

In order to run script on Windows 8 and 8.1, you need to enable Hyper-V and Clustering PowerShell modules manually.

New Cluster Overview section

In this new section script reports momentary resource usage about Hyper-V cluster environment.

Physical Resources

  • Node – Number of nodes in the cluster (Up/Total)
  • Logical Processor – Number of logical processors on “$” up nodes
  • Memory – Memory size on “$” up nodes (Used/Total)
  • Storage – Storage size on online clustered disks (Used/Total)

Virtual Resources

  • vMachine – Number of clustered VMs (Running/Total)
  • vProcessor – Number of VPs on “$” running and “$” paused clustered VMs
  • vMemory – Memory size of running or paused clustered VMs (Assigned/Maximum)
  • vStorage – Virtual hard disk size of running clustered VMs (Current/Maximum)

get-hypervreport-cluster-overview

Storage Overcommitment (Active VHD column in Disks/Volumes section)

This is my favourite feature in this release :) It reports active VHD (which is assigned to a running VM) number per volume. Also it predicts volume space overcommitment by calculating current file size and maximum disk size information and creates an alert which is shown by a highlight in the relevant volume cell.

storage-overcommitment

Supports for Extended Replica reporting

In this version, script can also report all replication modes (Primary, Replica and Extended) and creates notifications about replication status.

extended-replica

Hyper-V host information extended

  • Virtual Processors per Logical Processor ratio
  • Computer Manufacturer, Model
  • Processor Manufacturer, Model, Ghz
  • Running VM count detailed as Clustered and Non-clustered

VM Virtual Network information added

  • Network adapter device type
  • Connection status
  • Virtual switch name
  • IP address (v4/v6)
  • VLAN ID
  • Advanced – MAC Address, MAC Type, DHCP Guard, Raouter Guard, Port Mirroring, Protected Network

New $ReportFileNameTimeStamp parameter

Default value of this parameter is $true. If you set it to $false then html report’s filename will not have date and time value and it will always has the same filename. With this method it will be easy to publish the report on various web servers.

Cheers,
Serhat AKINCI

Hyper-V Reporting Script v1.5 Yayımlandı!

04.03.2015 | 22:54 Dokümanlar , Duyurular , Hyper-V , PowerShell 3 Yorum

Standalone veya Clustered Hyper-V ortamlarını raporlamak ve belirli açılardan izlemek için kullanabileceğiniz Get-HyperVReport.ps1 raporlama script’inin 1.5 sürümü indirmek için hazır! Her zamanki gibi aşağıdaki TechNet Gallery bağlantısını ziyaret ederek Hyper-V Reporting Script’in yeni sürümünü edinebilirsiniz.

 TechNet Gallery – Hyper-V Reporting Script (Powershell & HTML)

Ayrıca aşağıdaki bağlantıyı kullanarak v1.5 sürümüyle oluşturulmuş örnek bir rapora göz atmanız mümkün.

Hyper-V Environment Report v1.5

Nedense blog üzerinde bahsetmedim ama geçen ay ufak bir bakım sürümü yayımlamıştım (v1.1). Bir güncelleme var mı diye TehNet Gallery’i ziyaret edenler fark etmiş olabilirler. v1.5’e geçmeden önce ilk sürüm (v1.0) ve Türkçe kullanım kılavuzu hakkında bilgilerin yer aldığı bir yazıya Hyper-V Ortamları İçin Raporlama Aracı (Get-HyperVReport.ps1) bağlantısından ulaşabilirsiniz. Gelelim yeni sürüme.

Devamını oku…

Copy-VMFile ile Sanal Makinelere Dosya Kopyalamak

Hyper-V sanal makineleriyle (VM) çalışırken belirli anlarda sanal işletim sistemi (Guest OS) disk alanlarına çeşitli veriler kopyalamanız gerekebilir. Örneğin sanal işletim sistemi üzerine kurulumunu gerçekleştirmek üzere olduğunuz uygulamaya ait ilave setup dosyaları, bir grup doküman, bir ayar dosyası veya birkaç dijital sertifika pfx’i gibi şeyler…

Bu durumda birkaç şansınız var.

  • Kopyalamak istediğiniz içeriği bir ISO dosyası olarak paketleyip sanal donanımlardan Virtual DVD Drive ile VM’e insert edebilirsiniz. Tabi o an Virtual DVD Drive kullanılmıyor olmalı veya VM üzerinde ikinci ve müsait Virtual DVD Drive hazır bulunmalı.
  • Kopyalamak istediğiniz içeriği bir VHD/VHDX olarak paketleyip doğrudan VM’e attach edebilirsiniz.
  • Eğer VM ağa bağlı ve TCP/IP iletişimi mümkün ise, doğrudan SMB veya benzer protokoller vasıtasıyla kopyalama işini ağ üzerinden gerçekleştirebilirsiniz.
  • Eğer VM ağa bağlı, TCP/IP iletişimi ve uzak masaüstü bağlantısı (RDP) mümkün ise, oturum açarak Clipboard veya Drive Mapping kullanabilirsiniz. Benzer işler yapan üçüncü parti çözümler de olabilir.
  • Eğer 2. nesil sanal makineler ile çalışıyorsanız Enhanced Session Mode’u aktif edip, VM ağa bağlı olmasa dahi Host ile Clipboard paylaşımı veya Drive Mapping gibi şeyler kullanabilirsiniz. Bir nevi RDS over VMBUS. Ancak bu yöntemi kullanabilmek için VM mutlaka 2. nesil olmalı, ayrıca Windows 8 veya Windows Server 2012 (veya üstü) sanal işletim sistemi çalıştırmalı.

Eğer VM ağa bağlı değilse veya VM’in bulunduğu hedef ağ ile kopyalanacak içeriğin bulunduğu kaynak ağ arasında DMZ, vLAN, routing gibi sebeplerden ötürü iletişim sınırlıysa veya kimlik doğrulama gibi farklı engeller söz konusu ise, yukarıdaki kopyalama seçeneklerinden ikisi doğrudan elenir.

Eğer VM 2. nesil değilse RDS over VMBUS seçeneğini de kullanamazsınız.

İçeriği ISO veya VHD/VHDX olarak paketlemek her zaman kullanılabilecek bir yöntemdir. Ancak ISO oluşturmak için üçüncü parti uygulama gerekir ve bazı limitlere takılabilirsiniz. VHD/VHDX ile taşımak için ise yine ekstra bazı adımlar var. Ayrıca hypervisor ve Guest OS sürümüne göre sanal diski attach ederken VM’i kapatmanız gerekebilir. Bu da downtime demek.

Devamını oku…

Hyper-V Ortamları İçin Raporlama Aracı (Get-HyperVReport.ps1)

06.01.2015 | 00:59 Dokümanlar , Duyurular , Hyper-V , PowerShell 11 Yorum

Üzerinde çok sayıda iş yükü barındıran ve giderek karmaşıklaşan kuruluş içi sanallaştırma yapılarının izlenmesi ortam ölçeği genişledikçe zorlaşır. İşlemci gücü, bellek kapasiteleri, depolama kaynağı, sanal makine instance’ları gibi çeşitli platform bileşenlerinde beklenmedik sounlar ortaya çıktığında büyümeden anlamak veya sorun oluşmadan hemen önce yakalamak, platform ve servis erişilebilirliğini sürekli kılmak adına oldukça önemlidir. Öte yandan sanallaştırma envanterini çıkartmak, atanmış veya bekleyen kaynak miktarları gibi bilgilere ulaşmak altyapı yatırımının daha verimli kullanımı ve kapasite planlama hususlarında destek olabilmektedir.

Günümüzde bu gibi işleri ve aslında çok daha fazlasını yapmaya aday birçok uygulama mevcut. Kimisi düşük maliyetli ama eh işte, kimisi oldukça kapsamlı ancak aradığını bulmak zor, kimisi istenen sonucu veremiyorken kimisi tamam ama gerçekten pahalı, kurması işletmesi meşakkatli… Ama yine de gerekliler çünkü ortamda özellikle geriye dönük raporlama yapabilen, geçmiş günlerde oluşmuş olayları ve değerleri kayıt altına alıp bunları gerektiğinde gösterebilen bir izleme uygulaması belirli ölçeğin üzerindeki yapılarda mutlaka çalışıyor olmalı.

Ama bazen izleme uygulamasının sorunlarıyla boğuşmadan, belirli bir bilgiye ulaşmak için menüler/pencereler arasında kaybolmadan (ki o bilgiyle ilişkili diğer bilgi genelde uygulamanın en uzak köşesindedir :) veya uzun ve karmaşık paragraflar okumak zorunda kalmadan o an neler olup bittiğini bir bakışta anlamak istemez miyiz? İşte tam olarak bu fikirle yola çıktım ve Hyper-V Reporting Script (Get-HyperVReport.ps1) isimli bir raporlama aracı hazırladım.

Windows Powershell tabanlı olan Get-HyperVReport.ps1 tam olarak Hyper-V sanallaştırma ortamlarını raporlamak ve o anki durumun fotoğrafını çekmek üzere kullanabileceğiniz bir araç. Araç diyorum çünkü aslında bir script’e göre fazla kontrollü ve kapsamlı. Gerçekte bir kodun kapsamı veya başarısı asla satır sayısıyla ölçülemez çünkü fazla sayıda satır, ortaya çıkan uygulamaya kapsamlı imajı katabileceği gibi aslında programcının başarısızlığı da olabilir. Ama az önce baktım 2600+ satır olmuş, bu yüzden script deyince kızıyor :)

Get-HyperVReport.ps1 indirme bağlantısını ve parametre örneklerini yazının sonunda bulabilirsiniz.

Mesela genelde script’ler bir işi yaparken (örneğin sunuculara bağlanıp belirli verileri toplarken) o kodun zaten başarılı bir şekilde çalışacağını kabul ederek ilerlerler. Veya çalışmadan önce runtime environment için gerekli olan temel bileşenlerin zaten yüklü olacağını kabul ederler. Bu yüzden de genelde ilk sefer başarısızlıkla sonuçlanır :) Get-HyperVReport.ps1 ise biraz farklı. Mesela veri toplama aşamasına geçmeden önce doğru raporlama için gerekli ön koşulları kontrol ediyor, eğer bir eksik varsa ve tamamlayabileceği bir eksikse önce bu sorunu ortadan kaldırıyor (mesela Hyper-V veya Clustering Powershell komut setlerinin yüklenmesi gibi) ve daha sonra raporlama aşamasına geçiyor. Bir tablo içerisini doldururken mesela WMI sorgusunda bir problem oluşursa hata verip sonlanmak yerine hatayı yakalayıp çalışmaya devam edebiliyor. Akış sırasında geçilen aşamaları ve oluşan önemli hataları komut satırı ekranına, debug kayıtları da dahil tüm olay kayıtlarını ise working directory altında oluşturduğu kendi log dosyasına yazıyor. Eğer raporun üretilmesi sırasında bir problem oluşursa, buralara bakıp kolayca anlayabiliyorsunuz.

Devamını oku…