Performansı İzleyen En İyi 6 Ağ Yönetim Aracı
Ağ yönetim yazılımı pazarı çok kalabalık. En iyi ağ yönetimi araçlarıyla ilgili önerilerimizi izleyerek aramanızı kısaltın.
Uzman bir Windows kullanıcısıysanız, muhtemelen PC'nizde çeşitli işlemlerin nasıl birden fazla yaklaşıma sahip olabileceğini ve özelleştirilmiş GUI uygulamalarının komutları girmekten daha sınırlayıcı (ve daha az tatmin edici, dürüst olalım) olduğunu biliyor ve anlıyorsunuzdur. manuel olarak bir komut satırı. O metin duvarının önünüzde açıldığını gördüğünüzde sadece o tatmin duygusu var ve sonuç bir hata değilse, onu daha da değerli kılıyor.
Windows PC'lerde bunu başarmanın yalnızca iki yolu vardır: CMD veya PowerShell aracılığıyla. CMD, PowerShell'den biraz daha popüler olsa da, muadili CMD'den geçebilecekleriniz de dahil olmak üzere çok daha fazla işlem gerçekleştirmenize izin verdiği için daha az güçlüdür. PowerShell'in eski CMD'nin gücünü komut dosyası oluşturma ve cmdlet yetenekleriyle birleştirdiğini ve onunla gerçekleştirebileceğiniz işlemlerle ilgili size çok sayıda olanak sağladığını söyleyebilirsiniz.
Bununla birlikte, PowerShell kullanarak gerçekleştirebileceğiniz çok sayıda olası işlem, daha önce CMD'yi (PowerShell şöyle dursun) hiç duymamış kullanıcılar bir yana, deneyimli kullanıcılar için bile oldukça korkutucu olabilir. Endişelenmeyin, size PowerShell ile yapabileceğiniz ve belki de uzun vadede ezberleyebileceğiniz birkaç kolay numara öğretmeye çalışacağız. Bu "çarpışma rotamız" PowerShell için kapsamlı bir el kitabı olarak hizmet etmeyecek olsa da, size birkaç işaret vererek ve bir dizi komutu açıklayarak PowerShell'de yolunuzu bulmanıza yardımcı olacağını umuyoruz. Hazırsanız başlayalım.
PowerShell nedir?
Yukarıda kısaca bahsettiğimiz gibi PowerShell, çok çeşitli işlemler için kullanabileceğiniz güçlü bir araçtır. Bunun da ötesinde, PowerShell, bir komut satırı kabuğu (CMD gibi), bir komut dosyası dili ve bir yapılandırma yönetimi çerçevesi dahil ancak bunlarla sınırlı olmamak üzere, başlığı altında birkaç güçlü araç içeren bir görev otomasyonu çözümüdür.
Yalnızca metin kabul edip döndürebilen diğer kabukların aksine, PowerShell, içerdiği olağanüstü özellikler sayesinde .NET nesnelerini de kabul edebilir ve döndürebilir. PowerShell'in kabukla ilgili en önemli özelliklerinden bazıları şunlardır:
Ancak, daha önce de belirttiğimiz gibi, PowerShell bir kabuktan daha fazlası olduğu için, bu sadece buzdağının görünen kısmını çiziyor; sistem yönetimi işlemlerini otomatikleştirmek için güçlü bir komut dosyası dili olarak kullanabilirsiniz, ayrıca çeşitli ortamlarda çözümler oluşturmak, analiz etmek, test etmek ve dağıtmak istiyorsanız.
PowerShell'in .NET CLR'yi (.NET Common Language Runtime) temel aldığı göz önüne alındığında, PowerShell'in çalıştığı tüm giriş ve çıkışların neden .NET nesneleri olduğunu görmek kolaydır. Ek olarak, PowerShell'in ondan bilgi çıkarabilmesi için metin çıktısını ayrıştırmaya kesinlikle gerek yoktur. PowerShell'in komut dosyası oluşturma özellikleri arasında aşağıdakileri bulabilirsiniz:
Kurumsal altyapınızı kod aracılığıyla yönetmek ve yapılandırmakla daha fazla ilgileniyorsanız, PowerShell'in size bu olanağı İstenen Durum Yapılandırması (DSC) yönetim çerçevesi aracılığıyla da sunduğunu öğrenmekten memnuniyet duyacaksınız. PowerShell'in DSC'sinden faydalanarak kolayca gerçekleştirebileceğiniz işlemler arasında size şunu hatırlatıyoruz:
PowerShell, Perl'e biraz benzeyen tescilli bir programlama diliyle birlikte gelen tescilli bir komut satırına sahiptir. Başlangıçta, PowerShell'in kullanıcıların bilgisayarlarındaki nesneleri yönetmelerine yardımcı olmak için geliştirildiğini, ancak anlayabileceğiniz gibi, uzun bir yol kat ettiğini ve şimdi daha kapsamlı, karmaşık işler için kullanıldığını unutmayın.
Örneğin, PowerShell'in kapsamlı çalışma ortamından yalnızca çeşitli sistem yönetimi işlemlerini gerçekleştirmek için değil, aynı zamanda bunları otomatik hale getirmek için de kullanabilirsiniz, böylece arada bir sıkıcı, tekrarlayan görevlerle uğraşmak zorunda kalmazsınız. Ayrıca, bunlarla sınırlı olmamak üzere, yalnızca bir program (yani PowerShell) aracılığıyla çok sayıda kaynağa erişebileceğinizi belirtmek de oldukça önemlidir:
Günümüzde, PowerShell'in en popüler amaçlarından biri, son kullanıcıların sistem yönetimi görevlerini otomatikleştirmelerine yardımcı olmak, böylece bir dizi sıkıcı, tekrarlayan işlem yapmaktan kaçınmalarına yardımcı olmaktır. Tekrarlayan eylemlerden insan faktörünü ortadan kaldırmanın, verimliliği artırdığı ve çeşitli nedenlerle insan hatalarını azalttığı kanıtlanmıştır, bu nedenle gerçekten herkes için bir kazan-kazan.
Basit veya daha karmaşık komutlar vermek için PowerShell'i kullanabilirsiniz, ancak bu program aynı zamanda PowerShell tarafından otomatik olarak çalıştırılacak bu komutlara dayalı komut dosyaları oluşturmanıza da yardımcı olabilir. Ayrıca, özelleştirebileceğiniz ve daha sonra cmdlet adı verilen yayınlayabileceğiniz olağanüstü miktarda komut vardır.
PowerShell'in platformlar arası ve açık kaynaklı olduğunu belirtmekte fayda var, yani Wine veya Boot Camp gibi hilelere ve uyumluluk artırıcı araçlara başvurmadan Mac veya Linux gibi diğer sistemlerde de yerel olarak kullanabilirsiniz.
Temel PowerShell Komutlarının Listesi
PowerShell'in biraz korkutucu gelebileceğini anlıyoruz, özellikle de bunun bilgisayarınızdaki başka bir komut isteminden daha fazlası olduğunu keşfettiğinizde ve aslında CMD özelliklerini, aynı zamanda otomatikleştirmek için kullanabileceğiniz belirli bir programlama dilini ve çeşitli komut dosyalarını da kapsıyor. sistem yönetimi işlemleri.
Ancak, PowerShell'de ve sunduğu her şeyde uzmanlaşmaya kararlıysanız, en temel özellikleriyle başlamanızı şiddetle öneririz. Bu şekilde, yanlışlıkla yanlış işlevi kullandığınızı ve bu arada yaptığınız tüm işlerin daha çok uzak bir anı gibi görünmeye başladığını keşfettiğinizde, aylarca süren ilerlemeyi geri almak zorunda kalmazsınız.
İşte tam da bu nedenle, bu güçlü programın özelliklerini test etmek ve hangisinin tam olarak ne yaptığını görmek için PowerShell oturumlarınızda güvenle kullanabileceğiniz temel komutların bir listesini hazırladık. Aşağıdaki liste, komut adlarını, takma adlarını ve her komutun ne yaptığının kısa bir açıklamasını içerir.
Komut adlarını veya diğer adlarını kullanabileceğinizi ve sonucun kesinlikle aynı olacağını unutmayın. Takma ad kullanmayı tercih etmenin nedeni, yazmanın çok daha hızlı olmasıdır ve bunları doğru bir şekilde hatırlayabilir ve karşılık gelen komut adlarıyla ilişkilendirebilirseniz, işi hızlı bir şekilde halletmek istiyorsanız bu daha mantıklı olur.
Komut adı | takma ad | Açıklama |
---|---|---|
İçerik Ekle | AC | Bir dosyaya içerik (ör. kelimeler veya veriler) eklemenizi sağlar |
Add-PSSnapIn | asnp | Geçerli oturuma birden çok Windows PowerShell ek bileşeni eklemenize yardımcı olur |
Açık İçerik | clc | Gerçek öğeyi silmeden bir öğenin içeriğini temizler |
Geçmişi Temizle | clhy | Komut geçmişindeki tüm girişleri temizler |
Clear-Host | açık | Ana bilgisayar programının ekranını temizler |
Clear-Host | cls | Net olarak aynı şeyi yapar |
Temizle-Öğe | klişe | Gerçek öğeyi silmeden bir öğenin içeriğini kaldırır |
Clear-ItemProperty | clp | Mülkün kendisini gerçekten silmeden bir mülkün değerini siler |
Temizle-Değişken | clv | Bir değişkenin değerini siler |
Karşılaştır-Nesne | karşılaştırmak | İki nesne grubunu karşılaştırmanıza izin verir |
Karşılaştır-Nesne | fark | Karşılaştırma ile aynı şeyi yapar |
Connect-PSSession | cnsn | Bağlantısını kestiğiniz oturumlara yeniden bağlanmanızı sağlar |
Dönüştürme Yolu | özgeçmiş | Bir Windows PowerShell yolunu bir Windows PowerShell sağlayıcı yoluna dönüştürmenize olanak tanır |
Kopya-Öğe | kopyala | Bir öğeyi belirli bir konumdan diğerine kopyalamanıza yardımcı olur |
Kopya-Öğe | cp | Kopya ile aynı şeyi yapar |
Kopya-Öğe | işlemci | Copy ve cp ile aynı şeyi yapar |
Copy-ItemProperty | tbp | Belirli bir konumdan farklı bir konuma bir değeri ve özelliği kopyalamanıza olanak tanır |
Disable-PSBreakpoint | dbp | Geçerli konsolda kesme noktalarını devre dışı bırakmanıza yardımcı olur |
Disconnect-PSSession | dnsn | Geçerli oturumla bağlantınızı keser |
Enable-PSBreakpoint | ebp | Geçerli konsolda kesme noktalarını etkinleştirmenizi sağlar |
Enter-PSSession | etsn | Uzak bir cihazla etkileşimli bir oturum başlatmanıza yardımcı olur |
Çıkış-PSSession | exsn | Uzak bir cihazla etkileşimli bir oturumu sonlandırır |
Dışa Aktarma Takma Ad | epal | Halihazırda tanımlanmış olan takma adlar hakkındaki bilgileri bir çıktı dosyasına aktarmanıza olanak tanır |
İhracat-Csv | epcsv | Nesneleri birden çok virgülle ayrılmış (CSV) dizeye dönüştürmenize ve dizeleri bir CSV belgesine aktarmanıza olanak tanır |
İhracat-PSSession | epsn | Komutları farklı bir oturumdan içe aktarır ve bunları bir Windows PowerShell modülüne dışa aktarır |
ForEach-Object | % | Girdi nesneleri koleksiyonunda bulunan öğelerin her birine karşı belirli bir işlem gerçekleştirir |
ForEach-Object | her biri için | % ile aynı şeyi yapar |
Biçim-Özel | fc | Çıktıyı biçimlendirmek için özelleştirilmiş bir görünüm kullanmanıza yardımcı olur |
Format-Listesi | fl | Çıktıyı, her özelliğin yeni bir satıra yerleştirildiği bir özellikler listesi olarak biçimlendirmenizi sağlar |
Format-Tablo | ft | Çıktıyı tablo olarak biçimlendirmenizi sağlar |
Format Genişliği | fw | Nesneleri, her nesnenin yalnızca bir özelliğinin görüntülendiği geniş tablolar olarak biçimlendirmenize yardımcı olur |
takma ad | gal | Mevcut oturumunuz için takma adlarınızı getirir |
Get-ChildItem | yön | Bir dosya sistemi sürücüsündeki tüm dosya ve klasörlerin bir listesini getirir |
Get-ChildItem | gci | dir ile aynı şeyi yapar |
Get-ChildItem | ls | dir ve gci ile aynı şeyi yapar |
Get-Komut | gcm | Kullanabileceğiniz tüm komutların bir listesini getirir |
İçeriğe eriş | kedi | Bir dosyanın içeriğini görüntüler |
İçeriğe eriş | gc | kedi ile aynı şeyi yapar |
Get-Geçmiş | ghy | Geçerli oturumunuz sırasında girdiğiniz tüm komutların bir listesini getirir |
Get-Geçmiş | H | Ghy ile aynı şeyi yapıyor |
Get-Geçmiş | Tarih | ghy ve h ile aynı şeyi yapar |
Get-Ürün | gi | Dosya ve klasörleri getirmenizi sağlar |
Get-ItemProperty | gp | Belirttiğiniz öğenin özelliklerini getirir |
İş bul | gjb | Oturumunuzda çalışmakta olan tüm Windows PowerShell arka plan işlerinin bir listesini alır |
Al-Konum | gl | Geçerli konum yığınınız veya çalışma konumunuz hakkında bilgi getirir |
Al-Konum | pwd | gl ile aynı şeyi yapar |
Üye Ol | gm | Belirtilen nesnelerin tüm özelliklerini ve yöntemlerini getirir |
Get-Modülü | gdo | Geçerli oturuma aktarılabilen içe aktarılan modüllerin veya modüllerin bir listesini alır |
Al-İşlemi | Küresel Konumlama Sistemi | Yerel olarak veya uzak bir bilgisayarda çalışan tüm işlemlerin bir listesini getirir. |
Al-İşlemi | ps | gps ile aynı şeyi yapıyor |
Get-PSBreakpoint | İngiliz Poundu | Geçerli oturumunuzda ayarlanan tüm kesme noktalarını alır |
Get-PSCallStack | gcs | Mevcut çağrı yığınınızı görüntüler |
Get-PSDrive | gdr | Geçerli oturumunuzdaki sürücüleri getirir |
Get-PSSession | gsn | Yerel ve uzak Windows PowerShell oturumlarının bir listesini alır |
Get-PSSnapIn | gsnp | Bilgisayardaki tüm Windows PowerShell ek bileşenlerinin bir listesini getirir |
Hizmet Al | gsv | Yerel veya uzak bir bilgisayardaki tüm hizmetleri listeler |
Eşsiz | gu | Sıralanmış bir listeden benzersiz öğeleri alır |
Değişken Al | gv | Geçerli konsoldaki tüm değişkenlerin bir listesini görüntüler |
Get-WmiObject | gwmi | Windows Yönetim Araçları (WMI) sınıfları örneklerini veya mevcut sınıflarla ilgili bilgileri getirir |
Grup-Nesne | grup | Belirttiğiniz özellikler için aynı değeri içeren nesneleri gruplamanıza olanak tanır |
Yardım Edin | adam | Windows PowerShell komutları ve kavramları hakkında daha fazla ayrıntı görüntüler |
İçe Aktarma Takma Ad | ipal | Bir dosyadan takma ad listesini içe aktarmanıza olanak tanır |
İçe Aktar-Csv | ipcsv | Bir CSV dosyasında bulunan tüm öğeleri kullanarak tablo benzeri özel nesneler oluşturun |
İçe Aktarma Modülü | ipmo | Modülleri mevcut oturumunuza aktarın |
İthalat-PSSes | ipsn | Komutları farklı bir oturumdan mevcut oturumunuza aktarır |
Invoke-Komut | icm | Yerel ve uzak bilgisayarlarda komutları yürütmenizi sağlar |
Invoke-İfade | iex | Yerel bilgisayarda komutları veya ifadeleri yürütmenizi sağlar |
Invoke-Geçmişi | ihy | Oturum geçmişinizden komutları yürütür |
Invoke-Geçmişi | r | ihy ile aynı şeyi yapar |
Invoke-Item | ii | Belirtilen bir öğe üzerinde varsayılan eylemi gerçekleştirir |
Invoke-RestMethod | irm | RESTful web hizmetine bir HTTP veya HTTPS isteği gönderir |
Invoke-WebRequest | kıvrılmak | İnternetteki bir web sayfasından içerik alır |
Invoke-WebRequest | iwr | curl ile aynı şeyi yapar |
Invoke-WMIMethod | iwmi | Windows Yönetim Araçları (WMI) yöntemlerini çağırmanıza izin verir |
Ölçü-Nesne | ölçüm | Dize nesnelerindeki sözcüklerin, satırların ve karakterlerin yanı sıra nesnelerin sayısal özelliklerini belirler |
mkdir | md | Yeni bir öğe (dizin) oluşturur |
Taşı-Öğe | mi | Bir öğeyi belirli bir konumdan farklı bir konuma taşımanıza olanak tanır |
Taşı-Öğe | taşınmak | Aynı işi yapar mi |
Taşı-Öğe | mv | Mi ve hareket etmekle aynı şeyi yapar |
Move-ItemProperty | mp | Bir mülkü belirli bir konumdan farklı bir yere taşımanıza olanak tanır |
Yeni Takma Ad | nal | Yeni bir takma ad oluşturmanıza olanak tanır |
Yeni öğe | hayır | Yeni bir öğe oluşturmanıza izin verir |
Yeni-Modül | nmo | Yalnızca bellekte bulunan yeni bir dinamik modül oluşturur |
Yeni-PSDrive | binmek | Geçici ve kalıcı eşlenmiş ağ sürücüleri oluşturmanıza olanak tanır |
Yeni-PSDrive | ndr | Mount ile aynı şeyi yapıyor |
Yeni-PSSession | nsn | Yerel veya uzak bir bilgisayara kalıcı bir bağlantı kurar |
Yeni-PSSessionConfigurationFile | npssc | Bir oturum yapılandırma dosyası oluşturur |
Yeni-Değişken | nv | Yeni bir değişken oluşturmanıza izin verir |
Out-GridView | ogv | Ayrı bir pencerede etkileşimli bir tabloya çıktı göndermenizi sağlar |
Ana Bilgisayar Dışı | Ey | Çıktıyı komut satırına gönderir (CMD) |
Çıkış Yazıcısı | lp | Çıktıyı bir yazıcıya göndermenizi sağlar |
Pop-Lokasyon | popd | Geçerli konumunuzu, yığına en son aktarılan konumla değiştirir . Konumu varsayılan yığınından veya oluşturduğunuz bir yığından açmak için Push-Locationcmdlet'ini ( pushd ) kullanabilirsiniz . |
powershell_ise.exe | ise | PowerShell_ISE.exe komut satırı aracını nasıl kullanabileceğinize ilişkin bir açıklama görüntüler |
Push-Konum | itti | Geçerli konumu bir konum yığınının en üstüne ekler |
Alma-İş | rcjb | Geçerli oturum Windows PowerShell arka plan işlerinin sonuçlarını getirir |
Alma-PSSession | rcsn | Bağlantısı kesilen oturumlardan komutların sonuçlarını alır |
Öğeyi kaldırmak | del | Dosyaları ve klasörleri kaldırır |
Öğeyi kaldırmak | silmek | del ile aynı şeyi yapar |
Öğeyi kaldırmak | rd | del ve silme ile aynı şeyi yapar |
Öğeyi kaldırmak | ri | Does the same thing as del, erase and rd |
Remove-Item | rm | Does the same thing as del, erase, rd, and ri |
Remove-Item | rmdir | Deletes folders |
Remove-ItemProperty | rp | Allows you to delete a property and its value from a given item |
Remove-Job | rjb | Lets you delete a Windows PowerShell background job |
Remove-Module | rmo | Helps you remove modules from your current session |
Remove-PSBreakpoint | rbp | Lets you remove breakpoints from the current console |
Remove-PSDrive | rdr | Removes temporary Windows PowerShell drives, as well as disconnects mapped network drives |
Remove-PSSession | rsn | Lets you close one or more Windows PowerShell sessions (PSSessions) |
Remove-PSSnapin | rsnp | Enables you to remove Windows PowerShell snap-ins from your current session |
Remove-Variable | rv | Clears a variable and its value |
Remove-WMIObject | rwmi | Lets you delete an instance of an existing Windows Management Instrumentation (WMI) class |
Rename-Item | ren | Helps you rename an item in a Windows PowerShell provider namespace |
Rename-Item | rni | Does the same thing as ren |
Rename-ItemProperty | rnp | Enables you to rename an item’s property |
Resolve-Path | rvpa | Resolves wildcard characters in a path, as well as displays the contents of the path |
Resume-Job | rujb | Helps you restart a job that was suspended |
Select-Object | select | Lets you select objects as well as their properties |
Set-Alias | sal | Lets you create or change a cmdlet’s or command element’s alias (alternate name) in the current Windows PowerShell session |
Set-Content | sc | Allows you to replace a file’s contents with contents that you specify. |
Set-Item | si | Changes an item’s value to a value that’s specified in the command |
Set-Location | cd | Lets you set your current working location to a specified location (changes the active location) |
Set-Location | chdir | Does the same thing as cd |
Set-PSBreakpoint | sbp | Lets you set a breakpoint on a command, variable, or line |
Set-Variable | set | Enables you to set a variable’s value or generates a variable if one with the requested name does not exist |
Show-Command | shcm | Displays a list of Windows PowerShell commands in a graphical command window |
Start-Job | sajb | Starts a background job in Windows PowerShell |
Start-Process | saps | Launches one or more local processes |
Start-Service | sasv | Lets you start one or more stopped services |
Stop-Process | kill | Helps you stop one or more running processes |
Where-Object | ? | Enables you to select certain objects from a collection based on their property values |
Write-Output | echo | Allows you to send an object to the next command in the pipeline. If it reaches the last command in the pipeline, the command will display the objects in the console |
Don’t let the sheer amount of basic PowerShell commands intimidate you. Although we called them basic, there’s absolutely no need for you to start memorizing them. In fact, that’s the exact reason why we created the table above so that you can go on about your work without worrying about having to remember each and every command we mentioned above.
You can use it as a quick refresher or even use your browser’s search feature to locate a specific command, its alias, and what it does if you’re confused. Although we already included this piece of information in the table above, if you’re ever confused while working in PowerShell, using the help command will display a few helpful details on how you can use this program and its commands more efficiently.
You can also pair the help command with another command or alias if you want more details about that specific command. For instance, this is what PowerShell displays when you type help Add-Computer:
However, you can use help with any other of the commands or their aliases in our table above. Make sure you understand that the same command can have multiple aliases, which means that you can achieve the same result by using various aliases. Although this may sound confusing, it actually gives you plenty of flexibility in case you can’t remember one command alias, but you remember another one that can help you achieve the same goal.
Using PowerShell
Naturally, the first thing you’d want to do is locate PowerShell and launch it. One sure way to launch PowerShell from just about anywhere you are on your PC is to hold down the Shift button on your keyboard, right-click any empty spot on your screen (not a menu, icon, button, or similar object), and select Open PowerShell window here from the context menu.
In addition to giving you quick access to the PowerShell console anywhere on your PC, doing so will automatically switch the default working directory for PowerShell to the one you’re currently located at. If you’re on a Windows 10 PC, you can also launch PowerShell by pressing the Win key on your keyboard, typing PowerShell in the Start menu, and selecting PowerShell when it becomes visible in the list of results.
On older versions of Windows, you’ll need to manually locate the PowerShell executable, which you can either find in the Accessories or System folders in your Start menu. Furthermore, seeing how older systems (such as Windows 7) don’t provide you with PowerShell by default, you’ll also have to install it on your computer, along with all of its dependencies.
Notice how launching PowerShell from the Start menu will set your active working directory to C:\Users\[your username here]
. By comparison, using the Shift + Right-click method we’ve presented above will set PowerShell’s active directory to the one you’re currently at when you spawn the console. For instance, if you use Shift + right-click and open PowerShell from your desktop, you’ll notice that the active directory will be C:\Users\[your username here]\Desktop
. For obvious reasons, the [your username here]
part will be different depending on your username.
Although you can keep PowerShell for home usage just fine, it’s better if you could make use of all that it has to offer. Incidentally, these features make PowerShell awesome for corporate usage, where you need to perform a large number of operations in a short time, and most likely on a huge number of devices.
Thus, instead of running each command manually on every single machine, you could simply create an automation script in PowerShell and receive the information you need automatically, without having to physically interact with the devices in case or even be near them. Just as CMD, PowerShell can be used through command lines. However, unlike its more rudimentary counterpart (i.e. the CMD), PowerShell also lets you summon scripts and cmdlets, which makes it more powerful, but also more complicated to use.
How to use cmdlets
We’ve used the term cmdlets quite a few times in our guide, so you’re probably left wondering whatever they mean. Well, to start at the beginning, it’s worth reminding you that CMD works with commands. A cmdlet, which is pronounced command-let, is also a command, but unlike traditional CMD commands, cmdlets are specific to PowerShell and let you perform single specific operations, such as copying files, moving items from one place to another, changing the active directory, or see the contents of an item.
Simply put, cmdlets are single function commands that you can type directly in PowerShell’s command line. If you have any prior experience with the CMD, you’ll find PowerShell somewhat intuitive to work with. One interesting thing about PowerShell is that it shares plenty of commands with CMD. Therefore, using CD with PowerShell will still change your active directory, DIR will still display the contents of the current folder, and CP will still let you copy an item from one place to another.
It’s quite worth mentioning that PowerShell is not case sensitive, unlike many other shells, which return errors if you miss using the correct case when typing your commands in them. Thus, copy-item will work just as well as Copy-Item, and if you remember neither one of them you can also use Copy, CP, and CPI (but also copy, COPY, cp, or cpi).
Most PowerShell cmdlets are written in C# and are specially built to perform operations that will return a .NET object as their result. At the time being, you could find more than a couple of hundred cmdlets you can use in PowerShell, which, let’s be fair, gives you more than just a little elbow room as far as performing operations goes.
Although it will be difficult to remember all the cmdlets you may have to work with (remember that you can use the table above), there are a few that you’ll use more frequently, which will make them incredibly easy to remember. Not to mention the fact that some of them are intuitive enough that their name actually gives away their purpose (e.g. copy is used to copy items, move can be used to move files, compare helps you compare sets of objects, etc).
However, if you’re not exactly in the mood to bookmark this article to use it later, you could also type in the Get-Command cmdlet in PowerShell, or gcm, if you want to keep things short. Doing so will display a full list of commands that are available to you, and you can use that list to plan ahead on whatever it is you’re trying to do.
Unlocking custom cmdlets
On the downside, Microsoft doesn’t just give you full access to the whole array of cmdlets that you can use in PowerShell by default, so you’ll have to jump through a bunch of extra hoops to unlock this feature and use it at your leisure. The good news is that the unlocking process doesn’t take long, and then there’s the fact that it can also be done through the PowerShell, which will make great practice for you. Without any further ado, let’s see how you can unlock custom cmdlets privileges in PowerShell.
Set-ExecutionPolicy
RemoteSigned
in the PowerShell command prompt and press EnterRestricted
and confirm your choice as you did at step 7If you want to streamline the whole process and not waste time typing everything down in PowerShell’s command prompt, you’ll be glad to learn that there’s an even simpler way to achieve the same result. Launch PowerShell with Administrator rights as you did at step one, and instead of typing each command and waiting for the prompt, you’re gonna pipeline everything up until the confirmation by typing this:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned
Naturally, you will still need to confirm your choice by typing Y and hitting Enter on your keyboard, but you just skipped a step and performed a series of operations at the same time. This is exactly why advanced PowerShell users create automation scripts to perform various management operations automatically: to save time and hassle. If you want, you can use the same command above to disable custom cmdlets on your system, but you’ll have to replace RemoteSigned
with Restricted
and also confirm your choice at the end.
You can also use AllSigned
and Unrestricted
to grant yourself even more privileges when it comes to running potentially unsafe scripts on your Windows PowerShell. The AllSigned option will let you run all scripts that were created by trusted publishers, whereas the Unrestricted option will enable PowerShell to run any script, regardless of its provenience and trustworthiness. Naturally, the Unrestricted option is also the most dangerous, so try to avoid it as best as you can, if possible, especially if you are a PC novice.
See? PowerShell is already starting to look a lot more accessible than it did just a few minutes back.
How to create and use scripts in PowerShell
As we’ve mentioned before and we’re positively sure you remember, you can use PowerShell to run automation scripts. However, you can’t just yell at PowerShell “Hey you, create this script for me!” and expect it to magically work, so you’ll have to put in some elbow grease and get it done yourself. However inconvenient this may sound right now, trust us, you’ll be thankful in the long run, considering all the work you won’t need to do anymore.
Although most of us rely on specialized software such as IDEs to create scripts or programs in a specific programming language, truth be told you can use any text editor as long as it can save files to the right extension. And even if it can’t, you can just navigate to the file you created and modify its extension manually by renaming it, but let’s get back to our sheep.
If you’re interested in creating a script that can work in PowerShell, you’ll be thrilled to learn that this script you’ve probably heard a lot of, is merely a text document with an extension that makes it compatible with PowerShell, PS1. Therefore, it’s easy to see why creating these scripts can be actually handled from within virtually any text editor, as long as you save it with the right (PS1) extension.
Write-host "Please enter your name:"
$Name = read-host
"Hello $Name! Visit TipsWebTech360.com for more awesome tutorials and guides!"
Now for the actual creation part:
script.ps1
as the file nameC:\Scripts\script.ps1
.\script.ps1
If you can’t run the script and PowerShell returns an error, make sure you’ve enabled PowerShell to run custom scripts on your system, and that you’re running PowerShell as an administrator. Not doing any or both things that we’ve specified in our instructions will most likely result in an error and you won’t be able to run your script.
Remember that this is merely a basic script that is somewhat similar to the classic “Hello, world!” one. It puts a spin on it by interacting with you (i.e. asking what your name is) and letting you interact with it (i.e. typing your name which will be used to print a message for you). However, PowerShell is capable of running far more complex scripts, ranging from collecting data from an array of machines to intricate data management, advanced system configuration operations, and even creating backups of SQL databases in a blink of an eye.
How can I backup SQL databases with PowerShell?
We’re glad you asked. As we’ve mentioned countless times in our guide, there are almost endless possibilities when it comes to operations that PowerShell can help you perform. One of the most popular ones is backing up an SQL database without having to go great lengths or possess extraordinary database management capabilities. All you have to do is fire up an elevated instance of PowerShell (with Administrator privileges) and use the Backup-SqlDatabase command. However, things are a bit more complicated than that, but we’ll get to that in a few.
Backing up an SQL database isn’t as easy as simply copying files from your PC to a safe location and hope they stay safe for whenever you may need them to perform data restoration operations, but on the bright side, using PowerShell can make it look like a walk in the park. Although there are several ways to achieve this, using the command we’ve mentioned above is the fastest, simplest way to backup an SQL database.
Among the capabilities of the Backup-SqlDatabase command, it’s possible to find full database backups, database file backups, as well as transaction log backups, so you got the full package within a single command-line tool. By default, using this command will perform a full database backup, so you will need to specify if you want it to follow a certain set of rules by using the BackupFile parameter.
Note that some versions of PowerShell won’t feature this command by default, so you’ll either have to import it or install it. The good news is that installing the SQL module isn’t exactly rocket science and can be accomplished even by novices. Here’s what you’ll have to do if you can’t use the Backup-SqlDatabase command in your PowerShell session:
install-module sqlserver
import-module sqlserver
1. Complete SQL database backup
Backup-SqlDatabase -ServerInstance "Computer\Instance" -Database "Tips.WebTech360"
The command we’ve exemplified above will generate a full database backup of a database called TipsWebTech360 and save it to the default backup location of the “Computer\Instance” server instance as ‘Tips.WebTech360.bak’.
2. Perform a location-based database backup
Set-Location "SQLSERVER:\SQL\Computer\Instance"
PS SQLSERVER:\SQL\Computer\Instance> Backup-SqlDatabase -Database "Tips.WebTech360"
The first command above will change your location to the active directory within the server instance on which the backup will occur. Essentially, this technique works almost like the full database backup we’ve exemplified above, but in this example, you get to change the working directory in order to locate the server instance where the backup occurs.
This operation will also create a full backup of a database called Tips.WebTech360 and export it as an ‘Tips.WebTech360.bak’ file in the default location of the server instance you’re connected to.
3. Perform a transaction log backup
Backup-SqlDatabase -ServerInstance "Computer\Instance" -Database "Tips.WebTech360" -BackupAction Log
If you only need to backup the transaction log of a specific database, PowerShell can also help you do that through a single command you can input straight in its command-line interface. The command above will generate a backup copy of the ‘Tips.WebTech360’ database’s transaction log and export it to the default location of the ‘Computer\Instance’ server instance as a file named ‘Tips.WebTech360.trn’.
4. Create an encrypted SQL database backup
$EncryptionOption = New-SqlBackupEncryptionOption -Algorithm Aes256 -EncryptorType ServerCertificate -EncryptorName "BackupCert"
Backup-SqlDatabase -ServerInstance "." -Database "Tips.WebTech360" -BackupFile "Tips.WebTech360.bak" -CompressionOption On -EncryptionOption $EncryptionOption
If you’re worried that your database backup may fall in the wrong hands, PowerShell can also help you create ready-encrypted backup files. Naturally, you’ll have to specify some parameters such as the encryption algorithm, the encryption type (i.e. certificate), server instance, database name, backup file, and whether or not you want the output to be compressed.
The example above will create a backup of a certain ‘Tips.WebTech360’ database, encrypt it with AES-256 encryption and a server certificate, compress it, and save the resulting ‘Tips.WebTech360.bak’ file on the server instance’s default backup location. This is quite important if you plan a migration and have no surefire way to transport all backup files without risking estranging any single one of them.
5. Perform a backup on all databases in a server instance
Get-ChildItem "SQLSERVER:\SQL\Computer\Instance\Databases" | Backup-SqlDatabase
Another tool that may come in handy is PowerShell’s ability to backup all the databases on a server instance at the same time. Regardless of their number, you just fire up PowerShell, type an adaptation of the command above, and wait for the backup process to come to an end. Note that since this will backup all the databases within the server instance, you may have to wait for a while, so be patient.
The command above will back up all the databases located on the ‘Computer\Instance’ server instance and export the resulting files to the default backup location on the same server instance. The names of the backup files will be generated automatically according to each one’s corresponding database followed by the BAK extension (i.e. .bak).
Although there are several more methods to perform SQL backup with PowerShell in various ways, we’ve only presented a few that we felt were more important. Note that the commands we used in our examples above are not likely to work on your environment in their current form, so you will have to adapt them to your current situation.
For instance, you will have to change the ‘Computer\Instance’ parameter to match your own server instance and modify the name of your database to reflect the name of your own database. Remember that you can always turn to the help command in PowerShell if you ever feel that the command you’re trying to run is confusing or doesn’t work as it should.
Must-know PowerShell commands
1. Get-Help
We can’t stress this enough, but the Get-Help command should be the first one you ever learn, as it can seriously get you out of numerous sticky situations where you’re not exactly sure if you’re using the correct command, or exactly what you can achieve with the command that you’re trying to deploy.
Now that you’ve installed the sqlserver module on your system, you can try the Get-Help command now and see how Backup-SqlDatabase works. Just type Get-Help Backup-SqlDatabase in the command-line of PowerShell and brush up your PowerShell SQL database backup skills.
Note that if you just recently installed the sqlserver module on your system, the Help database may still be outdated, and you may need to run an update on it so that it can catch up on any new scripts. By default, PowerShell will detect that the content you’re trying to reach is available online, but you can’t access it locally, and even offer to update the database for you. In this case, all you need to do is type Y when prompted and hit the Enter key on your keyboard.
However, if PowerShell just prompts you with an error stating that there’s no help manual available for the command you’re interested in, you can update it manually by typing Update-Help and hitting the Enter key on your keyboard. After the update process comes to an end, you should be able to check available help documentation for the command you’re interested in.
2. Get-Process
Get-Process is paramount if you want to discover more about the system you’re currently working on. To be more specific, although you might’ve guessed what this command does already by merely looking at it, Get-Process will provide you with a list of all the processes that are currently running on the system you’re working on.
By default, Get-Process will retrieve a list of every process running on the current system you’re working on, so you may need to append some extra parameters to this command if you want more specific information and narrow the list of results. Check out in the screenshots below what you get when you run the Get-Process command by itself versus how it looks if you’re more specific and format the results.
Get-Process
Get-Process explorer | Format-List *
The second command can be customized to display additional details about any active process on your system. You can replace explorer with svchost or Chrome or any other active process on your system that you’re interested in. As we’ve mentioned above, using Get-Processes by itself can help you with that (i.e. finding a list of all running processes).
3. Stop-Process
This command is pretty much self-explanatory, as you may already have figured out that it can help you stop processes that are currently running on your system. The most common reason for doing that from PowerShell and not by using the Windows Task Manager is that sometimes processes can freeze and make GUI apps barely usable.
PowerShell users can easily identify a troublesome process using the Get-Process command we’ve previously explained, then using Stop-Process to terminate it, thus unclogging the system. Running Stop-Process by itself (without any additional parameter) in your PowerShell command-line interface will prompt you to input the ID of the process you’re trying to terminate.
However, you can also terminate a process by its name (if you know it) by appending the -Name parameter to the cmdlet, like in the example below:
Stop-Process -Name "explorer"
The command above will terminate the Explorer process, which can be useful especially if it freezes or crashes on you and refuses to load properly. Note that you’ll need to use quotes when specifying the name of the process you’re trying to terminate. If a process is stubborn and refuses to terminate (usually higher clearance processes do that), you can “convince” it by appending a -Force parameter to your command. Say, for instance, that you can’t terminate your Explorer process. In this case, you can simply type the command below:
Stop-Process -Force -Name "explorer"
Furthermore, it’s worth mentioning that using the -Force parameter in your Stop-Process command won’t ask for confirmation, as opposed to running the command without this option. If you want to find out more about this cmdlet, make sure to use the Get-Help command.
4. Get-Service
This command is among the essential command list for a good reason: it can provide you with a list of all the services that are currently installed on the system you’re working on, regardless of whether they’re running or not. As with many other cmdlets, you can customize Get-Service to provide you with more specific information, either regarding a certain service or even displaying a list of all running (or stopped) services on your machine.
You can go ahead and type Get-Service in your PowerShell command line. Doing so should provide you with a list of all the services available on your computer, as well as their display names and statuses. If you append an additional command to the original cmdlet, you can change the output, making it display only results that you’re interested in.
Get-Service "W*"
For instance, typing the command above should return a list of all services available on your computer that start with the letter ‘W’. However, you can go even further and customize your command in order to narrow the list of results even more.
Get-Service | Where-Object {$_.Status -eq “Running”}
The command above will let you see a list of all the available services on your computer that are also running at the time you’re running the cmdlet. Appending the “W*” as we did in the previous example will display a list of all the running services on your computer that start with the letter ‘W’, and the command should look like this:
Get-Service "W*" | Where-Object {$_.Status -eq "Running"}
5. Get-EventLog
Every responsible system administrator should know its way around working with event logs, seeing that these documents can provide you with useful knowledge about what happened on your system, at what time did it occur, and sometimes even what triggered that specific event.
Therefore, we can safely assume that PowerShell’s Get-EventLog command is not something you want to be missing from your toolbelt, especially if you plan on honing your system administration skills. If you know everything there is to know about event logs and their names, you can go ahead and type Get-EventLog directly in your PowerShell’s command line. Note that PowerShell will prompt you to input the name of the log you’re trying to view.
If you type the name of an empty event log (one with no entries), PowerShell will prompt you with an error and return you to the command-line interface. Therefore, it would be easier if you just used the command below, which will provide you with a list of Event Logs on your system, along with additional details about each one, such as the default overflow action, and the number of entries.
Get-EventLog -List
One of the most popular use cases for event logs is checking for errors, especially if they occurred silently, were shortly followed by a system crash, or lead to a BSOD, which we all know how cryptic can be. However, you will need to be more specific with the Get-EventLog cmdlet if you want to narrow down the list of results, which oftentimes can be huge.
Get-EventLog -LogName Security -EntryType Error
Typing the command above in your PowerShell’s command-line interface should provide you with a list of all the errors registered in your Security event log. Note that you can use the -List parameter to see all the log types in your system and replace Security
in the command above with any other log type that you find on your list, just as long as it has more than zero entries.
If you want to learn more about using the Get-EventLog command in PowerShell, feel free to use the Get-Help command we’ve talked about in the first section of this subchapter.
6. ConvertTo-HTML
Sometimes when you’re using PowerShell, you may stumble upon certain information that you want to extract and keep for future reference, create reports, or simply import it from a different application. One of the most frequently-used ways to extract this data from PowerShell and export it to an external file on your computer is the ConvertTo-HTML command.
Using this command will help you build comprehensive reports that can help you analyze extracted information and insights in a more effective manner by providing you with HTML tables that you can customize later by adding custom styles and color-coded data. As with many other PowerShell commands, ConvertTo-HTML doesn’t work by itself, and you’ll need to pair it up with an additional command which it will use as an input (or a source of data).
For instance, if you’re trying to print a report consisting of every service that starts with the letter ‘W’ and is currently running on your computer, you can type the command below:
Get-Service "W*" | Where-Object {$_.Status -eq "Running"} | ConvertTo-HTML
This will provide you with an HTML code of the data you fed to the ConvertTo-HTML function, which you can simply copy directly from the PowerShell’s command-line interface, paste it in your favorite text editor and save it as an HTML file, which you can use to view the result in any web browser.
You can use ConvertTo-HTML with virtually any PowerShell command, as long as the command you’re using as a data source will generate output. You can try it with other cmdlets, such as Get-Process, Get-EventLog, or Get-Help. Note that aside from HTML conversions, the ConvertTo cmdlet can also be used to generate JSON, CSV, and XML files. You just have to replace HTML in the command syntax with the format you’re interested in.
7. Export-CSV
If you’re working with various objects that you feel may fit way better in a table, you can use PowerShell to convert the items you’re currently handling into a series of CSV (comma-separated value) strings and export the strings to a file in one swift motion through the Export-CSV cmdlet.
As with ConvertTo-HTML, Export-CSV needs an input that it can convert to CSV strings, as it can’t just work on its own. Thus, you will need to pair it with a command that can be used to generate data, such as the Get-Service or Get-Process ones we’ve explained earlier.
Essentially, Export-CSV does almost the same thing as the ConvertTo-HTML cmdlet we’ve discussed above, aside from one important aspect that shouldn’t be overlooked: this cmdlet actually generates a file and saves it on your computer, as opposed to the ConvertTo command, which only gives you the output and lets you create the file on your own.
Let’s assume, for instance, that you’d like to turn the list of services running on your computer into a CSV file so that you can process the file further with third-party software, or put it in a spreadsheet for further reference. All you’d have to do is type the Get-Service command followed by the Export-CSV one, and mention a location where you’d like the CSV file to be generated, like in the example below:
Get-Service | Export-CSV c:\Tips.WebTech360.csv
The command above will fetch a list of all the services that are available on your computer, running or not, convert them into a series of CSV strings, and save the result as a CSV file named ‘Tips.WebTech360’ in the root of your C drive. You can then open the file in a third-party software solution, convert it into a fully-fledged table, or just store it for future usage.
PowerShell cheatsheet – CONCLUSION
Although there’s still a lot of people advocating for CMD, truth be told PowerShell is more versatile, way more powerful, but at the same time more complicated to work with than its traditional CMD counterpart. The sheer amount of features, combined with the fact that you can create automation scripts in PowerShell and perform complicated system management operations just leaves CMD in a cone of shadow.
PowerShell'i yeni keşfetmeye başlıyorsanız ve her bir komutun ne yaptığını, birkaç komutu nasıl boru hattına bağlayacağınızı veya kendi başınıza basit PowerShell komut dosyalarını nasıl oluşturup çalıştıracağınızı bulmakta zorlanıyorsanız, kılavuzumuz harika bir başlangıç noktasıdır. PowerShell'de bilmeniz gereken en önemli komutlardan bazılarını açıklamak için zaman ayırdık, birkaç kısa öğretici hazırladık ve ayrıca basitleştirmek için temel PowerShell komutlarının bir listesini, bunların takma adlarını ve her öğe için kısa açıklamaları ekledik. PowerShell keşif yolculuğunuz.
Ağ yönetim yazılımı pazarı çok kalabalık. En iyi ağ yönetimi araçlarıyla ilgili önerilerimizi izleyerek aramanızı kısaltın.
Ping taramaları birçok şekilde sizin yararınıza kullanılabilir. Bulabileceğiniz En İyi 10 Ping tarama aracını nasıl tanıttığımızı tartışırken okumaya devam edin.
Web siteleri önemlidir ve yeterli performans için sürekli yakından izlenmelidir. İşte web sitelerini izlemek için en iyi araçlardan bazıları.
Herhangi bir sayıda makineyi yönetmenin acısını hafifletmek için en iyi yazılım dağıtım araçlarından bazılarına bir göz atın.
Sağlık sektöründeyseniz veya bir şekilde bu sektördeki BT ile ilgiliyseniz, HIPAA'yı duyma şansınız vardır. Sağlık Sigortası Taşınabilirliği
sFlow, çok sayıda ağ aygıtında yerleşik olarak bulunan bir akış analizi protokolüdür. En iyi beş En İyi Ücretsiz sFlow Toplayıcı ve Analizörünü inceliyoruz.
Doğru olanı seçmenize yardımcı olmak için en iyi aracısız altyapı izleme araçlarını tanıtıyor ve size her biri hakkında hızlı bir inceleme sunuyorduk.
Linux'un veri merkezlerinde giderek daha popüler hale gelmesiyle birlikte, Linux'ta bant genişliğini izlemeye ve aynı zamanda en iyi araçları gözden geçirmeye başladılar.
E-posta güvenliği, yönetilen hizmet sağlayıcıların önemli bir görevidir. Bu amaç için en iyi araçlardan biri olan SolarWinds Mail Assure'ı inceliyorduk.
Uzman bir Windows kullanıcısıysanız, muhtemelen PC'nizde çeşitli işlemlerin nasıl birden fazla yaklaşıma sahip olabileceğini biliyor ve anlıyorsunuzdur.