Ev Kullanıcıları için PowerShell'i Kullanma - Yeni Başlayanlar Kılavuzu

Kim bir sihirbaz olmayı ve sihirli şeylerin gerçekleşmesi için birkaç kelime söylemeyi istemez ki? Size(Well) nasıl sihirbaz olunacağını gösteremiyoruz, ama size küçük bir bilgisayar büyüsünün nasıl yapıldığını gösterebiliriz.

Üzerinde Windows 7(Windows 7) bulunan bir Windows bilgisayarınız varsa, PowerShell'iniz(PowerShell) vardır . Ayrıca, Windows 7(Windows 7) yüklü bir bilgisayarınız varsa, lütfen güvenlik açısından güncelleyin.

Ancak bu makale yalnızca Windows kullanıcıları için değildir. PowerShell'in(PowerShell) en son sürümü ücretsizdir ve Mac ve Linux bilgisayarlarına yüklenebilir ve kullanılabilir .

Bu önemlidir çünkü PowerShell(PowerShell) hakkında öğrendikleriniz artık hemen hemen her bilgisayarda kullanılabilir. Kim bilir? Bu beceriyi bir sonraki seviyeye taşıyabilir ve Bilgi Teknolojisinde(Information Technology) bir kariyere girebilirsiniz .

PowerShell nedir?

Microsoft'un(Microsoft) yüksek teknoloji ürünü yanıtı, bunun özellikle sistem yöneticileri için tasarlanmış bir "komut satırı kabuğu" olduğudur. †Kulağa(” Sounds) korkutucu geliyor. Ama değil. Bilgisayarınıza bakar mısınız? Evet, o zaman evinizdeki sistem yöneticisi sizsiniz.

Bilgisayarınıza tıklamalar ve tuş vuruşlarıyla ne yapacağını söylüyor musunuz? Evet, komut satırı kabuğunu, bilgisayarınıza ne yapacağını söylemek için bir şeyler yazdığınız başka bir pencere olarak düşünün. Bunu yapabilirsiniz.

PowerShell , bir programlama dili gibidir, ancak çoğu kadar şifreli değildir. Gerçekten normal İngilizceye(English) çok benziyor , bu da Microsoft'un(Microsoft) programcı olmayanlar tarafından alınabilmesi için çabaladığı bir şeydi.

Windows işletim sisteminin yapmasını istediğiniz bir şeyi yapmasını sağlamak için komut dosyası adı verilen birkaç satır komut yazmanın bir yolu . Ardından, bu satırları bir dosyaya kaydedebilir ve bir tıklama ile çalıştırabilir veya periyodik olarak çalışacak şekilde programlayabilirsiniz.

PowerShell ile Neler Yapabilirsiniz?

PowerShell'in(PowerShell) üst düzey noktası, görevleri otomatikleştirebilmektir, böylece tekrar tekrar sıradan şeyler yaparak zaman kaybetmek zorunda kalmazsınız. Profesyonel bir Sistem Yöneticisi(Systems Administrator) için bu, yeni kullanıcılar oluşturmak, onlar için parolalar oluşturmak ve yeni denetçilerine ayrıntıları içeren bir e-posta göndermek gibi bir şey olabilir.

Tıklamalar ve yazma ile manuel olarak yapıldığında, bu işlem 5 dakika ile bir saat veya daha fazla sürebilir. Doğru komut dosyalarıyla, Sistem Yöneticisinin(Systems Administrator) bunun herhangi bir bölümünü yapması bile gerekmeyebilir.

Ancak evde PowerShell ile neler yapabileceğinizi bilmek istiyorsunuz . Tekrar tekrar yapmaktan hoşlanmadığınız hemen hemen her şey. İhtiyacınız olmayan geçici ve günlük dosyalarını silerek sabit sürücünüzde yer açmak için kullanın.

Çocuğunuzun bilgisayarına sokağa çıkma yasağı koyun. Bir grup dosyayı yeniden adlandırın veya düzenleyin. (Rename)PowerShell'in(PowerShell) güzelliği budur . Bilgisayarınızda yapabileceğiniz hemen hemen(Almost) her şeyi , bir tıklamayla veya bir zamanlamaya göre otomatikleştirmek ve çalıştırmak için bir PowerShell betiği oluşturabilirsiniz.(PowerShell)

PowerShell'i Nasıl Kullanırım?

PowerShell ile çalışmanın en kolay yolu , PowerShell Tümleşik Komut Dosyası Ortamında (ISE)(PowerShell Integrated Scripting Environment (ISE)) . Windows 10'da (Windows 10)Başlat'a(Start) tıklayıp arama çubuğuna powershell ise yazarak bulabilirsiniz . Aşağıda gösterildiği gibi görmelisiniz.

İlk kez kullandığımızda, onu Yönetici(Administrator) olarak çalıştıracağız . Bunu yapmak için önce bilgisayarınızda yönetici haklarına sahip olmanız gerekir. Başlat Menünüzde(Start Menu) , PowerShell ISE'ye(PowerShell ISE) sağ tıklayın , ardından Yönetici Olarak Çalıştır'a(Run as Administrator) tıklayın .

Bunu yapmak istediğinizden emin olup olmadığınızı soran bir Kullanıcı Erişim Denetimi(User Access Control) ( UAC ) uyarı penceresi alabilirsiniz. (UAC)Evet'i(Yes) tıklayın .

Şimdi PowerShell IDE'ye(PowerShell IDE) bakıyorsunuz . Pencerenin (1) üst bölmesi komut dosyası bölmesidir. Senaryonuzu burada yazacaksınız. Pencerenin (2) alt bölmesi konsol alanıdır. Komut dosyanızı test ettiğinizde, bu bölmede çıktıyı göreceksiniz.

Burası aynı zamanda hata mesajlarını göreceğiniz yerdir ve bunlar, komut dosyalarınızı düzeltmenize ve daha iyi hale getirmenize yardımcı olacaktır. Pencerenin (3) sağ tarafındaki bölme , komut eklentisidir. Kullanabileceğiniz tüm PowerShell(PowerShell) komutlarının bir sözlüğü olarak düşünün .

PowerShell , zaten (PowerShell)Windows'un(Windows) bir parçası olanlardan başka hiçbir komut dosyasını çalıştırmayacak şekilde gelir . Kendi komut dosyalarınızı çalıştırabilmeniz için değiştirmeniz gerekecek.

Komut dosyası penceresinde aşağıdakileri kopyalayıp yapıştırın:

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned

Bunun Set-ExecutionPolicy kısmına cmdlet (telaffuz edilen komut uygulaması) denir. Cmdlet'ler güçlü şeylerdir. Bunları Windows'a(Windows) verebileceğiniz kısa komutlar olarak düşünün(Think) ve Windows komutunuzu yerine getirmek için bir sürü daha karmaşık şey yapacaktır.

Çocuğunuza odasını temizlemesini söyleyen bir benzetme olabilir. Kısa(Short) ve öz. Çocuğunuz oda temizliği konusunda bilgiliyse, gidip yatağını yapacak, çamaşırlarını sepete koyacak, oyuncaklarını ve kitaplarını rafa kaldıracak ve hatta yeri süpürecektir. Clean-YourRoom cmdlet'inin tüm bu anlama geldiğini anlıyorlar.

Pencerenin üst kısmında yeşil bir ok ucu göreceksiniz. Komutu çalıştırmak için buna tıklayın .(Click)

-ExecutionPolicy bölümü, Set-ExecutionPolicy'ye(Set-ExecutionPolicy) hangi politikanın ayarlanacağını söylüyor . (-ExecutionPolicy)Bu bir parametre. “Bu yönergeler dahilinde çalışmanızı ve özellikle bunu yapmanızı istiyorum” diyor. RemoteSigned'ın(RemoteSigned) belirli politikasını kullanmasını söyler .

RemoteSigned ilkesi , güvenilir bir yayıncı tarafından imzalanmadıkça , PowerShell'in (PowerShell)Internet'ten(Internet) indirilen herhangi bir komut dosyasını yürütemeyeceğini veya çalıştıramayacağını belirtir .

Dolaylı bir şekilde, PowerShell'e(PowerShell) yerel olarak oluşturulan herhangi bir komut dosyasını çalıştırmanın uygun olduğunu, çünkü bunların uzak güvenilir bir yayıncı tarafından imzalanması gerekmediğini söyler . Artık PowerShell betiğiniz, bilgisayarınızda yazdığınız herhangi bir betiği çalıştırabilecek.

Geçici dosyaları silmek için bir komut dosyasına bakalım. CCleaner kadar güçlü veya kapsamlı değildir , ancak CCleaner kendi sorunlarıyla birlikte gelir.

(Use PowerShell)Sabit Diskinizde (Your Hard Drive)Alan Yaratmak(Create Space) için PowerShell'i Kullanın

Nasıl çalıştığını görebilmeniz için bu komut dosyasını satır satır inceleyeceğiz. Sonunda, komut dosyası tamamen gösterilecektir, böylece isterseniz kopyalayıp yapıştırabilirsiniz.

$TempFileLocation = "C:\Users\username\Appdata\Local\Temp\*"

Önünde dolar işareti olan her şey bir değişken adıdır. Değerli eşyalarınızı koyabileceğiniz bir cüzdan gibi düşünün. Cüzdan(Wallet) bize dolar işaretini hatırlatır, değerli eşyalar kulağa değişken gibi gelir, bu yüzden onu da hatırlayacağız. $TempFileLocation adında bir cüzdan veya değişken oluşturuyoruz . Eşittir işareti, PowerShell'e(PowerShell) bu değişkene ne koyacağını söyler.

Bu durumda, Windows'un geçici dosya konumunun konumuna – C:\Users\username\AppData\Local\Temp\* koyuyoruz . Bunu iki nedenden dolayı yapıyoruz; dosyaları silmek için her zaman güvenli olan bir konumdur ve bunu PowerShell'e(PowerShell) dosyaları silmek için nereye gitmesi gerektiğini söylemek için kullanacağız.

Bu konumda kullanıcı adı yazdığı yerde, kullanıcı adınızla değiştirin. Bu, bilgisayarınızda oturum açmak için kullandığınız kullanıcı adıdır. Sonundaki yıldız işareti (*) bir jokerdir. Temsil ettiği şey Temp klasöründeki her şeydir, çünkü Temp klasöründeki her şey geçicidir ve onu silmek istiyoruz.

Konumun etrafındaki çift tırnak da önemlidir. Bu, PowerShell'e(PowerShell) oradakinin bir dize olduğunu söyler. Dizeyi bir harf ve karakter dizisi olarak düşünün . (Think)Sıradan sayılar olsaydı, tırnak işaretlerini kullanmazdık.

$TempFile = Get-ChildItem $TempFileLocation -Recurse

Başka bir değişken yapıyoruz. $TempFile değişkenine koyacak bir şey bulmak için bir komut kullanacağız .

Get-ChildItem 

Get-ChildItem gibi cmdlet'ler hakkında farkedeceğiniz başka bir şey de tamamen okunabilir olmasıdır. İlk kelimenin nasıl bir fiil olduğunu gördün mü? Cmdlet'lerin(Cmdlets) tümü eylem sözcükleriyle başlar, böylece ne yaptığını hemen anlarsınız. ChildItem iki isimdir.

Cmdlet'in ikinci kısmı bize her zaman PowerShell'in(PowerShell) eylemi uygulayacağını söyleyecektir. ChildItem, bir üst konumun tüm çocukları anlamına gelir. Bu, bir klasördeki tüm dosyaları al demeye benzer, dosyalar alt öğeler ve klasör üst öğelerdir.

Alt öğeleri alan cmdlet nedir? $TempFileLocation değişkenindeki her şey . PowerShell , daha önce $ (PowerShell)TempFileLocation içine koyduğumuz konuma gidecek ve oradaki tüm alt öğeleri alacak. Ardından, onları $TempFile değişkenine koyacaktır .

Peki, -Recurse kısmı ne durumda? Bu Get-ChildItem'e(Get-ChildItem) o konumdaki her şeyi gözden geçirmesini söylüyor . Dosyaları hemen ana klasörün içine almayın. Bu klasörde klasörler varsa, tüm çocuklarını da alın, çocuklarını vb. Hepsini alacağız.

$TempFileCount = ($TempFile).count

Evet, $TempFileCount adında üçüncü bir değişken yaratıyoruz ve bu değişkene bir sayı koyacağız. Numara nerede? Pekala, ( $TempFile).count bize bu sayıyı verecek. Muhtemelen .count bölümünün, $ (.count)TempFile içinde depoladığımız tüm dosyaların sayımını yapacağını anladınız .

Bunu neden yaptık? Çoğunlukla, komut dosyasının geri kalanıyla birlikte kaç tane işe yaramaz dosyayı temizlediğimizi bilmek güzel olduğu için, bunun ne kadar etkili olduğunu anlayabiliriz.

if($TempFileCount -eq 0)

Şimdi koşullu bir ifade oluşturuyoruz. 'Eğer' diye sorduğunu görebilirsiniz. Eğer ne? Parantez içindeki şey doğru veya yanlışsa. Köşeli ayraçlar önemlidir, aksi halde If neyi karşılaştıracağını bilemez. Burada $TempFileCount içinde sakladığımız sayının sıfıra eşit olup olmadığını soruyor.

-eq eşittir(-eq) kısaltmasıdır. Bu bir tür karşılaştırma operatörüdür. Bu, çocuklarınıza “Odanız temizse, harikaysa, bir şeyler yapacağız” demeye benzer(TempFileCount) . sıradaki şey.

{Write-Host "There are no files in the folder $TempFileLocation" -ForegroundColor Green}

$TempFileCount sıfırsa olacak şey budur . Kıvrımlı parantezler önemlidir. $ TempFileCount sıfıra eşitse, (TempFileCount)PowerShell'e(PowerShell) yalnızca içlerinde olanı yapmasını söylerler .

Ana bilgisayara veya ekrana “C:\Users\username\Appdata\Local\Temp\* klasöründe dosya yok” yazacaktır. Sondaki parametre - ForegroundColor , PowerShell'e(PowerShell) metni yeşil yapmasını söyler . Bu, normalde kırmızı olan bir hata mesajını ayırt etmeyi kolaylaştırır.

Else

Başka ne anlama geldiğini biliyorsun. Bu, çocuğunuzun odasını temizleyip temizlemediğini kontrol etmenin "Odanız temiz olsa iyi olur, yoksa" kısmıdır. $TempFileCount sıfır değilse olacağı budur.

{$TempFile | Remove-Item -WhatIf -Confirm:$false -Recurse -Force -WarningAction SilentlyContinue -ErrorAction SilentlyContinue}

$TempFile içinde depolanan geçerli konuma gidin diyor . Ondan sonraki dikey çizgiye boru denir. PowerShell'e $ (PowerShell)TempFile içeriğini cmdlet'e , sanki bir çamaşır makinesine boru hattıyla aktarılıyormuş gibi yönlendirmesini söylediği için, gerçek hayattaki bir boru gibi çalışır . Ardından cmdlet Remove-Item , söylediklerini yapar; o konumda ne varsa kaldırır.

-WhatIf parametresi bu aşamada çok önemlidir . ( -WhatIf )PowerShell'e(PowerShell) komutu çalıştırmasını söyler , ancak yalnızca deneyin, hiçbir şeyi kaldırmayın. Bunu(Just) gerçekten yaparsak ne olacağını bize göster.

Bu, bilgisayarınızda hiçbir şeyi değiştirmeden komutları test etmenizi sağlar. -WhatIf'i, betiğin sizin istediğinizi yapacağından ve başka bir şey yapmadığından emin olana kadar orada bırakın. O zaman bunu silin ve komut dosyası işini yapacak.

-Confirm:$false parametresi , komut dosyasının dosyayı gerçekten silmek isteyip istemediğinizi sormasını engeller. -Recurse'un(-Recurse) ne yaptığını biliyorsun . -Force , ne olursa olsun o şeyi silmek demektir. -WarningAction , SilentlyContinue olarak ayarlandı .

Bu, komut dosyasının sildikleriniz hakkında size uyarı vermesini engeller. -ErrorAction SilentlyContinue (-ErrorAction)olarak(SilentlyContinue ) ayarlandı, böylece süreçte herhangi bir hata varsa, sadece ilerlemeye devam ediyor.

Şimdi son satırdayız.

Write-Host "Cleared $TempFileCount files in the folder $TempFileLocation" -ForegroundColor Green}

Write-(Write-Host) Host'un ilk seferinde yaptığı gibi , aşağıdaki cümleyi çıkaracak, bu yüzden ne olduğunu biliyoruz. Az önce işlediği klasörden kaç dosyanın silindiğini bize söyleyecek ve tespit edilmesini kolaylaştırmak için yeşil renkte yapacaktır.

Senaryoya hep birlikte bakalım:

$TempFileLocation = "C:\Users\guymcd\Appdata\Local\Temp\*"
$TempFile = Get-ChildItem $TempFileLocation -Recurse
$TempFileCount = ($TempFile).count

if($TempFileCount -eq "0") {
Write-Host "There are no files in the folder $TempFileLocation" - ForegroundColor Green
}
Else {
$TempFile | Remove-Item -Confirm:$false -Recurse -Force -WarningAction SilentlyContinue -ErrorAction SilentlyContinue
Write-Host "Cleared $TempFileCount files in the folder $TempFileLocation" -ForegroundColor Green
}

Bunu PowerShell ISE'nize kopyalayıp yapıştırabilir ve (PowerShell ISE)delete-TemporaryFiles.ps1 gibi bir şey olarak kaydedebilirsiniz . Artık onları anladığınıza göre cmdlet'lerin adlandırma kuralına bağlı kalabilirsiniz.

Kod herhangi bir nedenle sizin için çalışmıyorsa, oluşturduğumuz PowerShell betiğini de indirebilir ve çalıştırabilirsiniz. Komut(Just) dosyasını görüntülemek için önce sıkıştırmasını açın.

Bu betiği ne zaman çalıştırmak isterseniz, üzerine sağ tıklayın ve Run with PowerShell öğesini(Run with PowerShell) seçin . Komut dosyanız işini yaparken bir veya iki saniye için bir PowerShell konsolu açılır ve ardından herhangi bir hata yoksa kaybolur.

Daha Fazla PowerShell'i Nereden Öğrenebilirim?

Bu çok gibi görünüyor! İlk PowerShell betiğiniz için bu biraz adil. Buraya kadar geldiyseniz, kendinizi alkışlayın. Bugün çok şey öğrendin, ama şimdi daha fazlasını öğrenmek istiyorsun. Bu harika!

PowerShell hakkında daha fazla bilgi edinmek için Internet'te(Internet) pek çok kaynak vardır . Başlamak için iyi bir yer, “ Komut Satırı veya PowerShell aracılığıyla Başlangıç ​​Programlarının Listesini Oluşturun(Generate a List of Startup Programs via Command Line or PowerShell) ” makalemizdir . Ardından şu diğer kaynaklara göz atın:

  • (Getting Started with Microsoft PowerShell)Microsoft PowerShell - Microsoft Sanal Akademisi'ne Başlarken
  • PowerShell Eğitimi(PowerShell Tutorial) – TutorialsPoint.com



About the author

Ben profesyonel bir yorumcu ve üretkenlik arttırıcıyım. İnternette video oyunları oynayarak, yeni şeyler keşfetmeyi ve teknoloji ihtiyaçları konusunda insanlara yardım ederek vakit geçirmeyi seviyorum. Xbox ile biraz deneyimim var ve 2009'dan beri müşterilerin sistemlerini güvende tutmalarına yardımcı oluyorum.



Related posts