Teknoloji Forum

Techforum.tr, internetin sunduğu imkanlarla teknolojiye ilgi duyan bireyleri aynı sanal çatı altında toplayan bir çevrimiçi forum platformudur. Yazılımdan donanıma, mobil uygulamalardan yapay zekaya, en güncel teknolojik gelişmelerden geçmiş deneyimlere kadar geniş bir yelpazede konuların tartışıldığı, soruların sorulduğu ve cevapların arandığı bir bilgi paylaşım merkezidir. Aramıza Katıl..!

PowerShell nedir ve nasıl kullanılır

TechSpiker

Teknoloji Haberleri
Yönetici
Yetki Sahibi
Katılım
18 Ocak 2025
Mesajlar
28

PowerShell nedir?​

PowerShell, Microsoft'un bilgi teknoloji profesyonellerinin sistemleri yapılandırmasına ve yönetim görevlerini otomatikleştirmesine yardımcı olmak için geliştirdiği etkileşimli bir komut satırı kabuğuna sahip nesne yönelimli bir otomasyon motoru ve betik dilidir.

.NET framework üzerine inşa edilen PowerShell nesnelerle çalışır, oysa çoğu komut satırı kökü metne dayanır. PowerShell, komut dosyası oluşturma yetenekleri nedeniyle hem BT departmanlarında hem de yönetilen hizmet sağlayıcıları gibi harici varlıklarda çalışan sistem yöneticileri için olgun ve kendini kanıtlamış bir otomasyon aracıdır.

PowerShell, yalnızca Windows'ta kullanılabilen tescilli bir yapı olarak ortaya çıktı. Günümüzde PowerShell, en yeni Windows sistemlerinde varsayılan olarak mevcuttur. PowerShell uygulamasını bulmak için Windows arama çubuğuna powershell yazmanız yeterlidir. Microsoft, 2016 yılında PowerShell'i açık kaynak olarak yayınladı, Linux ve macOS'ta kullanılabilir hale getirdi.

PowerShell ne işe yarar?​

Microsoft, PowerShell'i toplu veri işleme gibi sistem görevlerini otomatikleştirmek ve yaygın olarak uygulanan süreçler için sistem yönetim araçları oluşturmak üzere tasarladı. Perl'e benzer PowerShell dili, görevleri otomatikleştirmek için çeşitli yollar sunar.

  • Sistem komutları olarak görünen çok küçük .NET sınıfları olan cmdlet'lerle gelir.
  • Cmdlet'lerin ve ilişkili mantığın kombinasyonları olan betiklerle.
  • Bağımsız araçlar olan yürütülebilir dosyalarla.
  • Standart .NET sınıflarının örneklenmesiyle.
Yöneticiler PowerShell'i çok çeşitli aktiviteleri yönetmek için kullanabilirler. Belirli sürüm ve hizmet paketi seviyeleri gibi işletim sistemleri hakkında bilgi çıkarabilir. PowerShell sağlayıcıları, özel veri depolarında bulunan verileri komut satırından erişilebilir hale getiren programlardır. Bu veri depoları dosya sistemi sürücülerini ve Windows kayıtlarını içerir.

PowerShell ayrıca Microsoft'un DOS'a dayanan Komut İstemi'nin yerine geçer. Örneğin Microsoft, PowerShell'i 14791 sürümünden itibaren Windows 10 için varsayılan komut satırı ara yüzü CLI yaptı. PowerShell'in komut satırı kabuğu olarak rolü, çoğu kullanıcının teknolojiyle tanışmasını sağlar.

Neden PowerShell kullanımı?​

Herhangi bir tür CLI kullanmanın en çekici nedeni, geleneksel bir GUI ile kopyalanması zor, hatta imkansız olan istenen bir eylem veya görev akışı üzerinde hassas ve tekrarlanabilir bir kontrol sağlama potansiyelidir.

Karmaşık bir görevi gerçekleştirmek için bir GUI kullanmayı düşünün. Bu, düğmelere tıklamayı, kaydırıcıları hareket ettirmeyi, çok katmanlı menülerden dosya seçmeyi ve diğer eylemleri içerebilir. GUI'ler insanların kullanımı için rahat olacak şekilde tasarlanmıştır, ancak zaman alıcı, zahmetli ve hataya açık olabilirler, özellikle bir görevin yüzlerce veya binlerce kez tekrarlanması gerektiğinde.

Bunun aksine, PowerShell, ilkel programlama becerilerine sahip bir kullanıcının istenen bir görev için ayrıntılı bir dizi belirli talimat veya bir betik oluşturmasını sağlayan olgun ve ayrıntılı bir betik diliyle bir CLI sunar. Görev, istenen bir dosyayı bulmaktan sistem veya diğer sistemler için istenen bir durum yapılandırmasını tanımlamaya kadar hemen hemen her şey olabilir. Betik oluşturulduktan sonra, bir dosya olarak kaydedilebilir ve bir tıklamayla yürütülebilir, böylece aynı görevin herhangi bir tekrar sayısı için tam olarak aynı şekilde tekrarlanması sağlanır. Ayrıca, karmaşık ve oldukça ayrıntılı görevler oluşturmak için farklı betikler birbirine zincirlenebilir.

Bu basit görünen özellikler otomasyon ve ölçeklenebilirlik için kesinlikle gereklidir, bilgisayarın ortam için ihtiyaç duyulan kadarını yapmasına izin verir. Bu nedenle, PowerShell sistem yöneticilerinin karmaşık ve oldukça tekrarlayan görevleri bir GUI'nin basitçe kopyalayamayacağı yüksek düzeyde otomasyon ve doğrulukla gerçekleştirmesine yardımcı olabilir.

Temel PowerShell özellikleri​

Microsoft, her PowerShell sürümüyle güncelleştirmeler ve yeni özellikler ekliyor, ancak aşağıda temel özelliklerin ve karakteristiklerin listesi yer alıyor.

Keşfedilebilirlik, Kullanıcılar, belirli bir bilgisayarda bulunan tüm komutların cmdlet'ler ve işlevler dahil bir listesini oluşturan Get-Command gibi cmdlet'leri kullanarak PowerShell'in özelliklerini keşfedebilirler. Parametreler, aramanın kapsamını daraltmak için kullanılabilir.

Yardım yetenekleri kullanıcılar, Get-Help cmdlet'i aracılığıyla PowerShell prensipleri ve cmdlet'ler gibi belirli bileşenler hakkında daha fazla bilgi edinebilirler. Online parametresi, belirli bir konu için mevcutsa web'deki yardım makalelerine erişim sağlar.

Uzaktan komutlar yöneticiler, Windows Yönetim Araçları ve WS-Management gibi teknolojilerden yararlanarak bir veya birden fazla bilgisayarda uzaktan işlemler gerçekleştirebilir. Örneğin, WS-Management protokolü kullanıcıların uzak bilgisayarlarda PowerShell komutları ve betikleri çalıştırmasına olanak tanır.

Teknoloji hattı PowerShell ile komutlar, sembolize edilen teknoloji operatörü aracılığıyla birbirine bağlanabilir. Bu yaklaşım, belirli bir komutun çıktısının teknoloji hattı dizisindeki bir sonraki komutun girdisi olmasını sağlar. PowerShell boru hattı, metin dizeleri yerine nesnelerin bir cmdlet'ten diğerine akmasını sağlar. Bu güçlü yetenek, karmaşık ve ayrıntılı otomasyon betikleri için önemlidir.

Ek özelliklere ilişkin ayrıntıları aşağıdaki bölümlerde bulabilirsiniz.

İstenilen Durum Yapılandırması​

PowerShell 4.0 ile Microsoft, yöneticilerin bir sunucu için belirli bir yapılandırma ayarlamak için kullanabileceği Desired State Configuration adlı bir yapılandırma yönetim platformu tanıttı. Yönetici sunucu ayarlarını tanımladıktan sonra, PowerShell hedef düğümlerin istenen durumu korumasını sağlar. DSC'nin iki çalışma modu vardır itme modu ve çekme modu.

Push modunda, bir sunucu düğümlere bildirimler gönderir. Bu, yöneticinin bir iş istasyonundan bildirimler gönderdiği tek yönlü bir iletişimdir. Yönetim bir cihazdan çalıştığı için kurulum maliyetleri daha azdır, ancak cihaz ağa bağlı değilse bir bildirim kaybolabilir.

Çekme modunda, BT departmanı, Yönetilen Nesne Biçimi dosyasını kullanarak her düğümün yapılandırma ayrıntılarıyla bir çekme sunucusu oluşturur. Her düğüm, yeni bir yapılandırma olup olmadığını kontrol etmek için çekme sunucusuyla iletişim kurar. Yeni yapılandırma mevcutsa, çekme sunucusu yapılandırmayı düğüme gönderir. Yöneticiler, ağ bağlantılarından bağımsız olarak tüm cihazları yönetebilir. Bir cihaz ağa bağlandığında, yeni bir yapılandırma olup olmadığını kontrol etmek için otomatik olarak çekme sunucusuyla iletişim kurar.

DSC kaynakları​

DSC kaynakları, istenen bir durum yapılandırma betiğinin bileşenleridir. Yöneticiler, Get-DscResource komutuyla bir makinedeki kullanılabilir DSC kaynaklarını kontrol edebilir.

powershell_paneli.webp


Yöneticiler, kayıt defteri anahtarları ve Windows hizmetleri gibi bileşenleri yapılandırmak veya bir yapılandırma betiği aracılığıyla yerel kullanıcılar oluşturmak ve yönetmek için bu kaynakları kullanır. Örneğin, Dosya kaynağı dosyaları ve klasörleri yönetir, Ortam kaynağı ortam değişkenlerini yönetir. Kayıt Defteri kaynağı bir düğümün kayıt defteri anahtarlarını yönetir.

Windows varsayılan veya yerleşik DSC kaynakları şunları içerir:

  • Arşiv kaynağı.
  • Çevre kaynağı.
  • Dosya kaynağı.
  • Grup kaynağı.
  • GroupSet kaynağı.
  • Günlük kaynağı.
  • Paket kaynağı.
  • ProcessSet kaynağı.
  • Kayıt kaynağı.
  • Komut dosyası kaynağı.
  • Hizmet kaynağı.
  • ServiceSet kaynağı.
  • Kullanıcı kaynağı.
  • WindowsFeature kaynağı.
  • WindowsFeatureSet kaynağı.
  • WindowsOptionalFeature kaynağı.
  • WindowsOptionalFeatureSet kaynağı.
  • WindowsPackageCabresource kaynağı.
  • WindowsProcess kaynağı.
Çapraz düğüm bağımlılığı, paket yönetimi ve Linux kaynakları için ek kaynaklar mevcuttur.

PowerShell modülleri​

PowerShell modülleri, yöneticilerin bir görevi otomatikleştirmek için bir betiği yeniden kullanmasını sağlar. Bir PowerShell modülü, belirli bir alanın tüm yönlerini yönetmek üzere gruplandırılmış cmdlet'ler, sağlayıcılar, işlevler, iş akışları, değişkenler ve takma adlar gibi bir dizi PowerShell öğesi olarak tanımlanabilir. PowerShell modülleri, yöneticilerin koda başvurmasını, kodu yüklemesini, kalıcı hale getirmesini ve paylaşmasını sağlar. Bir PowerShell modülü oluşturmanın en basit yolu, betiği bir PSM1 dosyası olarak kaydetmektir.

Bir PowerShell modülü dört temel öğeden oluşur.
  • Modül olan bir PSM dosyası.
  • Modülün ihtiyaç duyduğu yardım dosyaları veya scriptler.
  • Modülü tanımlayan bir bildirim dosyası.
  • İçeriğin depolandığı dizin.
Bir PowerShell modülü dört tipten biri olabilir.
  • Script modülü Yöneticilerin içe aktarma, dışa aktarma ve yönetim işlevlerini gerçekleştirmesini sağlayan çeşitli işlevler içeren bir PSM1 dosyasıdır.
  • İkili modül Derlenmiş kod içeren bir .NET framework derlemesi (DLL dosyası). Geliştiriciler genellikle bir PowerShell betiğiyle kolayca yapılamayan güçlü özelliklere sahip cmdlet'ler oluşturmak için ikili bir modül kullanırlar.
  • Manifest modülü. Manifest modülü, ilişkili bir manifest (PSD1 dosyası) ile bir modül (PSM1) dosyasıdır.
  • Dinamik modül. Dinamik bir modül, bir betik tarafından talep üzerine dinamik olarak oluşturulur. Kalıcı depolamaya depolanmaz veya yüklenmez.

PowerShell cmdlet'leri​

PowerShell cmdlet'leri


Bir cmdlet, PowerShell içinde kullanılan tek bir temel komuttur. Bir cmdlet, bir PowerShell betiğinin parçası olarak çağrılabilir otomasyonun önemli bir öğesi veya PowerShell API'leri aracılığıyla programatik olarak çağrılabilir. Bir cmdlet genellikle belirli bir eylemi gerçekleştirir ve ardından PowerShell'e sonraki bir komut tarafından kullanılabilecek bir .NET nesnesi döndürür. PowerShell cmdlet'leri genellikle belirli işlemleri işlemek için oluşturulur, yani geliştiriciler tarafından kodlanır.

PowerShell için sayısız cmdlet vardır. Örneğin, Get-Service cmdlet'ini çalıştırmak, bilgisayarda şu anda çalışan hizmetlerin bir listesini döndürür.

Tüm cmdlet'ler, kodun cmdlet olduğunu bildirmek için gereken bir özniteliğe ihtiyaç duyar. Cmdlet'ler ayrıca gerekli, adlandırılmış, konumsal ve anahtar parametreleri gibi çeşitli parametrelere sahiptir. Parametreler bir küme olarak kullanılabilir ve bazı parametreler çalışma zamanında dinamik olarak da eklenebilir. PowerShell cmdlet'leri, cmdlet harekete geçmeden önce kullanıcı geri bildirimi istemek için oluşturulabilir ve böylece etkileşimli cmdlet'ler etkili bir şekilde oluşturulur. Techforum.tr olarak PowerShell konusuna değindik.
 
@TechSpiker her zaman ki gibi yine güzel Windows'un eğitici bir konusuna değinmişsin, her zaman şaşırttığın gibi yine şaşırttın. Okumadan önce tamamını başlıklara göz attım PowerShell Nedir konusunu tamamen okuyup tartışmayı güncelleyeceğim.
 

Trend Konular