Kim onların büyücü olmalarını ve büyülü şeylerin gerçekleşmesi için birkaç kelime söylemelerini istemez ki? Size nasıl bir sihirbaz olacağınızı gösteremiyoruz, ama size küçük bir bilgisayar sihri yapmayı gösterebiliriz.
Üzerinde Windows 7 bulunan bir Windows bilgisayarınız varsa, PowerShell'e sahipsiniz. Ayrıca, üzerinde Windows 7 bulunan bir bilgisayarınız varsa, lütfen güvenliği sağlamak için güncelleyin.
Ancak bu makale yalnızca Windows kullanıcıları için değildir. PowerShell'in en son sürümü ücretsizdir ve Mac’lerde ve Linux bilgisayarlarda kurulabilir ve kullanılabilir.
Bu önemlidir, çünkü PowerShell hakkında öğrendikleriniz hemen hemen her bilgisayarda kullanılabilir. Kim bilir? Bu beceriyi bir üst seviyeye taşıyabilir ve Bilgi Teknolojileri alanında bir kariyere girebilirsiniz.
PowerShell nedir?
Microsoft'un yüksek teknoloji cevabı şudur: “ … Özellikle sistem yöneticileri için tasarlanmış komut satırı kabuğu. ”Kulağa korkutucu geliyor. Ama değil. Bilgisayarınızla ilgilenir misiniz? Evet, o zaman evinizde sistem yöneticisi sizsiniz.
Bilgisayarınıza tıklamalar ve tuş vuruşlarıyla ne yapacağınızı söyler misiniz? Evet, komut satırı kabuğunu, bilgisayarınıza ne yapmanız gerektiğini söyleyeceğiniz şeyleri yazdığınız başka bir pencere olarak düşünün. Bunu yapabilirsiniz.In_content_1 tümü: [300x250] / dfp: [640x360]->
PowerShell bir programlama dili gibidir, ancak çoğu kadar şifreli değildir. Gerçekten, programcı olmayanlar tarafından toplanabilmesi için Microsoft'un istediği bir şey olan normal İngilizce gibi çok şey okuyor.
Windows işletim sisteminin yapmasını istediğiniz bir şeyi yapmasını sağlamak için komut dosyası adı verilen birkaç komut satırı yazmanın bir yoludur. Ardından, bu satırları bir dosyaya kaydedebilir ve bir tıklatmayla çalıştırabilir veya düzenli aralıklarla çalışacak şekilde zamanlayabilirsiniz.
PowerShell ile Ne Yapabilirsiniz?
Üst düzey nokta PowerShell, görevleri otomatikleştirebilmek için sıradan şeyler yaparak zamanınızı boşa harcamanıza gerek kalmaz. Profesyonel bir Sistem Yöneticisi için bu, yeni kullanıcılar oluşturmak, onlar için şifreler oluşturmak ve yeni amirlerine detayları içeren bir e-posta göndermek gibi bir şey olabilir.
Tıklamalar ve yazarak el ile yapılır, bu işlem 5 dakika ile bir saat kadar sürebilir. Doğru komut dosyalarıyla, Sistem Yöneticisi bunun bir bölümünü bile yapmak zorunda kalmayabilir.
Ama evde PowerShell ile neler yapabileceğinizi bilmek istersiniz. Tekrar tekrar yapmaktan hoşlanmadığınız bir şey. Geçici olarak silerek sabit diskinizde yer açmak ve gerek duymadığınız günlük dosyalarını kaydetmek için kullanın.
Çocuğunuzun bilgisayarına sokağa çıkma yasağı bırakmayın. Bir sürü dosyayı yeniden adlandırın veya düzenleyin. Bu PowerShell'in güzelliği. Bilgisayarınızda yapabileceğiniz hemen hemen her şeyi, bir tıklamayla veya bir zamanlamayla otomatikleştirmek ve çalıştırmak için bir PowerShell betiği oluşturabilirsiniz.
PowerShell'i Nasıl Kullanırım?
PowerShell ile çalışmanın en kolay yolu PowerShell Tümleşik Komut Dosyası Ortamı (ISE)'dır. Başlat'ı tıklayıp Windows 10'daki arama çubuğuna powershell iseyazarak bulabilirsiniz. Aşağıda gösterildiği gibi görmelisiniz.
İlk kullanışımızda Yönetici olarak çalıştırıyoruz. Bunu yapmak için önce bilgisayarınızda yönetici haklarına sahip olmanız gerekir. Başlat Menünüzde, PowerShell ISE'ye sağ tıklayın, ardından Yönetici Olarak Çalıştır' a tıklayın.
Bir
Şimdi PowerShell IDE'ye bakıyorsunuz. (1)penceresinin üst paneli, komut dosyası bölmesidir. Senaryoyu burada yazacaksın. (2)penceresinin alt bölmesi konsol alanıdır. Komut dosyanızı test ettiğinizde, çıktıyı bu bölmede göreceksiniz.
Bu, aynı zamanda hata iletilerini göreceğiniz yerdir ve komut dosyalarını düzeltmenize ve daha iyi hale getirmenize yardımcı olacak bir durumdur. (3)penceresinin sağ tarafındaki bölme komut eklentisidir. Bunu size sunulan tüm PowerShell komutlarının sözlüğü olarak düşünün.
PowerShell, thosealready Windows’un bir parçası dışında bir komut dosyasını çalıştırmayacak şekilde geliyor. Siz, o kodları çalıştırabilmeniz için değiştirmeniz gerekir.
Komut dosyası penceresinde aşağıdakini kopyalayıp yapıştırın:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned
The Set-ExecutionPolicykısmına cmdlet (telaffuz edilmiş komut dosyası) adı verilir. Cmdlet'ler güçlü şeyler. Onları Windows'a verebileceğiniz kısa komutlar olarak düşünün ve Windows komutunuzu yerine getirmek için daha karmaşık şeyler yapacaktır.
Bir benzetme çocuğunuza odalarını temizlemesini söylerdi. Kısa ve konuya. Çocuğunuz oda temizliğinde ustalaşmışsa, gidip yatağını yapacak, çamaşırlarını sepete koyacak, oyuncaklarını ve kitaplarını rafa yerleştirecek ve hatta zemini süpürecektir. Cmdlet Clean-YourRoom'un hepsinin anlamı olduğunu biliyorlar.
Pencerenin üst kısmında yeşil bir ok ucu göreceksiniz. Komutu çalıştırmak için üzerine tıklayın.
- ExecutionPolicybölümü, Set-ExecutionPolicy'ye hangi politikanın ayarlanacağını söylüyor. Bu bir parametre. “Bu kurallara uymanızı ve özel olarak bunu yapmanı istiyorum” diyor. RemoteSigned'ın belirli politikasını kullanmasını söyler.
RemoteSignedpolitikası, PowerShell’in, güvenilir bir yayıncı tarafından imzalanmadıkça İnternet’ten indirilen herhangi bir komut dosyasını yürütemeyeceğini veya çalıştıramayacağını belirtir.
Dolambaçlı bir şekilde, PowerShell'e yerel olarak oluşturulmuş herhangi bir komut dosyasını çalıştırmanın uygun olmadığını çünkü bunun uzak bir güvenilir yayıncı tarafından imzalanması gerekmediğini söyler. Artık, PowerShell betiğiniz bilgisayarınıza yazdığınız herhangi bir betiği çalıştırabilir.
Geçici dosyaları silmek için bir betiğe bakalım. CCleaner kadar güçlü ya da eksiksiz değildir, ancak CCleaner kendi sorunlarıyla birlikte gelir.
Sabit Diskinizde Alan Oluşturmak için PowerShell'i Kullanın
Bu betiği parçalayacağız, satır satır, böylece nasıl çalıştığını görebilirsiniz. Sonunda, komut dosyası tamamen gösterilecek, böylece isterseniz kopyalayıp yapıştırabilirsiniz.
$TempFileLocation = "C:\Users\username\Appdata\Local\Temp\*"
Önünde dolar işareti olan bir şey değişken bir addır. . Değerli şeyleri koymak için bir cüzdan gibi düşünün. Cüzdan bize dolar işaretini, değerli gibi değişken sesleri hatırlatır, bu yüzden bunu da hatırlayacağız. $ TempFileLocationadlı bir cüzdan veya değişken oluşturuyoruz. Eşittir işareti PowerShell'e bu değişkene ne yazacağını söyler.
Bu durumda, bir Windows’un geçici dosya konumu - C: \ Users \ username \ AppData \ Local \ Temp \ *. Bunu iki nedenden dolayı yapıyoruz; dosyaları silmek için her zaman güvenli olan bir konumdur ve PowerShell'e dosyaları silmek için nereye gitmesi gerektiğini söylemek için kullanacağız.
Bu konumdaki kullanıcı adını söylediği yerde, kullanıcı için onu değiştir ad. 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 şey, çünkü Temp klasöründeki her şey geçicidir ve silmek istiyoruz.
Konumun etrafındaki çift tırnak işareti de önemlidir. Bu, PowerShell'i orada bulunan bir dize olduğunu söyler. Dizeyi stringof harfleri ve karakterleri olarak düşünün. Normal sayılar olsaydı, alıntıları kullanmazdık.
$TempFile = Get-ChildItem $TempFileLocation -Recurse
Başka bir değişken yapmıyoruz. Bu kez, $ TempFiledeğişkenine koymak için bir komut bulmak için bir komut kullanacağız.
Get-ChildItem
Yapacağınız başka bir şey Get-ChildItemgibi cmdlet'ler hakkındaki fark, tamamen okunabilir olduğudur. İlk kelimenin bir fiil olduğunu görüyor musun? Cmdlet'lerin hepsi eylem sözcükleriyle başlar, böylece ne yaptığını hemen anlarsınız. ChildItem iki isimdir.
cmdlet'in ikinci kısmı her zaman bize PowerShell'in işlemi uygulayacağını söyleyecektir. ChildItem, bir ebeveyn konumunun tüm çocukları anlamına gelir. Bu, bir klasördeki tüm dosyaları alma, dosyalar çocuk, klasör üst olma gibi demek gibi.
cmdlet alt öğelerini nereden alıyor? $ TempFileLocationdeğişkenindeki her şey. PowerShell, daha önce $ TempFileLocation uygulamasında koyduğumuz konuma gidip orada bulunan tüm alt öğeleri alır. Ardından, bunları $ TempFiledeğişkenine yerleştirir.
Öyleyse, -Tekrarbölümünün nesi var? Bu, söz konusu konumdaki her şeyi gözden geçirmesini Get-ChildItem'e söylüyor. Dosyaları hemen ana klasörün içine sokmayın. Bu klasörde klasörler varsa, tüm çocuklarını ve çocuklarını vb. Edinin. Hepsini alacağız.
$TempFileCount = ($TempFile).count
Evet, $ TempFileCountadlı üçüncü bir değişken oluşturuyoruz ve bu değişkene bir sayı koyacağız. Numara nerede? Peki, ($ TempFile) .countbize bu numarayı verecek. Muhtemelen .count bölümünün sadece $ TempFile uygulamasında kaydettiğimiz tüm dosyaların sayımını yapacağını öğrendiniz.
Bunu neden yaptık? Çoğunlukla betiğin geri kalanıyla ne kadar gereksiz dosyayı temizlediğimizi bilmek güzel olduğu için ne kadar etkili olduğunu söyleyebiliriz.
if($TempFileCount -eq 0)
Şimdi belirliyoruz şartlı bir ifade kadar. '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 takdirde, neyin karşılaştırılacağını bilmiyor. Burada, $ TempFileCountiçinde depoladığımız sayının sıfıra eşit olup olmadığını soruyor.
-eqeşittir için kısa yoldur. Bir tür karşılaştırma operatörü. Çocuklarınıza, “Odanız temiz, harikaysa, bir şeyler yapacağız…” demeye benziyor. Bu ifade, $ TempFileCount içinde depolanan sayı sıfıra eşitse bir sonraki şeyi yapıp yapmadığını söylüyor. >
{Write-Host "There are no files in the folder $TempFileLocation" -ForegroundColor Green}
$ TempFileCountsıfırsa gerçekleşecek olan budur. Kıvrımlı parantez önemlidir. PowerShell'e yalnızca $ TempFileCount sıfıra eşitse, içindekileri yapmasını söylerler.
Ana bilgisayara veya “C: \ Users \ username \ Appdata \ Local \ Temp \ * klasöründe dosya yok” ekranına yazar. Sonunda yer alan parametre - ForegroundColor, PowerShell'e metni yeşil hale getirmesini söyler. Bu, normalde kırmızı olan bir hata mesajından ayırt edilmesini kolaylaştırır.
Else
Başka ne anlama geldiğini biliyorsunuz. Bu, “Odanız temiz olsa iyi olur……” çocuğunuzun odalarını temizleyip temizlemediğini kontrol etmenin bir parçası. $ TempFileCountsıfır değilse bu olur.
{$TempFile | Remove-Item -WhatIf -Confirm:$false -Recurse -Force -WarningAction SilentlyContinue -ErrorAction SilentlyContinue}
Bu, $ TempFile. Dikey çizgiden sonra boru adı verilir. PowerShell'e $ TempFile içeriğini cmdlet'e aktarmasını söylerken gerçek bir boru gibi işlev görür, sanki bir çamaşır makinesine su aktarılıyormuş gibi. Sonra cmdlet Kaldır-Öğesine diyorsa onu yapar; o konumda olanı kaldırır.
-WhatIfparametresi bu aşamada çok önemlidir. PowerShell'e komutu çalıştırmasını söyler, ancak yalnızca deneyin, hiçbir şeyi silmez. Sadece bunu gerçekten yaparsak ne olacağını bize göster.
Bu, bilgisayarınızdaki hiçbir şeyi değiştirmeden komutları test etmenizi sağlar. Senaryonun yapmasını istediğin şeyi yapmasını ve başka bir şey yapmamasını söyleyene kadar -WhatIf'i orada bırak. O zaman bunu silin ve komut dosyası işini yapacaktır.
-Onayla: $ falseparametresi, komut dosyasının dosyayı gerçekten silmek isteyip istemediğinizi sormasını durdurur. -Recurse'ın ne yaptığını biliyorsun. -Force, ne olursa olsun, o şeyi silmek anlamına gelir. -WarningAction, SilentlyContinueolarak ayarlanmıştır.
Bu, komut dosyasının size sildikleriniz hakkında uyarılar vermesini önler. -ErrorAction, SilentlyContinueolarak ayarlanmıştır, böylece işlemde herhangi bir hata varsa, devam etmeyi sürdürür.
Şimdi de devam ediyoruz Son satır.
Write-Host "Cleared $TempFileCount files in the folder $TempFileLocation" -ForegroundColor Green}
Tıpkı Yazma Sunucusuilk kez yaptığı gibi, şu cümleyi yazacaktır, bu yüzden ne olduğunu biliyoruz . Yeni işlem yaptığı klasörden kaç tane dosyanın silindiğini bize söyler ve tespit edilmesini kolaylaştırmak için yeşil renkte yapar.
Komut dosyasına 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 delete-TemporaryFiles.ps1gibi bir şey olarak kaydedebilirsiniz. Artık cmdlet'lerin adlandırma kurallarına uyup uymadığınızı da anlayabilirsiniz.
Kod bir nedenden dolayı sizin için çalışmıyorsa, biz de PowerShell betiğini indirin 'ı yarattık ve Sadece çalıştır. Sadece komut dosyasını görüntülemek için önce onu açın.
Bu betiği ne zaman çalıştırmak isterseniz, üzerine sağ tıklayın ve PowerShell ile Çalıştır'ı seçin. Bir ya da iki saniye boyunca bir PowerShell konsolu açılacak, betiğinizde bir şey yapacak ve hata yoksa kaybolacak.
Daha Fazla Nereden Öğrenebilirim?
Çok görünüyor! İlk PowerShell betiğiniz için adil bir bit. Bu kadarını başardıysan, kendini alkışla. Bugün çok şey öğrendin, ama şimdi daha fazla şey öğrenmek istiyorsun. Bu harika!
İnternette PowerShell hakkında daha fazla bilgi edinmek için çok fazla kaynak var. Başlamak için iyi bir yer “Komut Satırı veya PowerShell ile Başlangıç Programları Listesi Oluşturun ” makalemizdir. Sonra şu diğer kaynakları inceleyin: