6 лучших инструментов управления сетью, которые отслеживают производительность
Рынок программного обеспечения для управления сетью очень переполнен. Сократите свой поиск, следуя нашим рекомендациям по лучшим инструментам управления сетью.
Если вы опытный пользователь Windows, вы, вероятно, знаете и понимаете, как выполнение различных операций на вашем ПК может иметь больше, чем один подход, и что специализированные приложения с графическим интерфейсом часто более ограничивают (и менее удовлетворяют, давайте будем честными), чем ввод команд в командную строку вручную. Когда вы видите эту стену текста, разворачивающуюся перед вами, возникает чувство удовлетворения, и, если результат не является ошибкой, это делает ее еще более целесообразной.
На ПК с Windows это можно сделать только двумя способами: через CMD или PowerShell. Хотя CMD немного более популярен, чем PowerShell, он также менее мощный, поскольку его аналог позволяет выполнять гораздо больше операций, включая те, которые вы можете запускать через CMD. Можно сказать, что PowerShell сочетает в себе мощь старого CMD со сценариями и возможностями командлетов, предоставляя вам множество возможностей в отношении операций, которые вы можете выполнять с его помощью.
Однако огромное количество возможных операций, которые вы могли бы выполнить с помощью PowerShell, может быть довольно пугающим даже для опытных пользователей, не говоря уже о тех, кто никогда раньше не слышал о CMD (не говоря уже о PowerShell). Но не волнуйтесь, мы постараемся научить вас нескольким простым трюкам, которые вы сможете реализовать с помощью PowerShell и, возможно, даже запомнить в долгосрочной перспективе. Хотя этот наш «ускоренный курс» не будет служить исчерпывающим руководством для PowerShell, мы надеемся, что он поможет вам сориентироваться в PowerShell, дав вам несколько указателей и объяснив ряд команд. Если вы готовы, давайте начнем.
Что такое PowerShell?
Как мы вкратце упоминали выше, PowerShell - это мощный инструмент, который можно использовать для огромного количества операций. Более того, PowerShell - это решение для автоматизации задач, которое включает в себя несколько мощных инструментов, включая, помимо прочего, оболочку командной строки (например, CMD), язык сценариев, а также структуру управления конфигурацией.
В отличие от других оболочек, которые могут принимать и возвращать только текст, PowerShell также может принимать и возвращать объекты .NET благодаря выдающемуся количеству функций, которые он включает. Вот некоторые из наиболее важных функций PowerShell, связанных с оболочкой:
Однако это только верхушка айсберга, поскольку, как мы упоминали ранее, PowerShell - это больше, чем просто оболочка; вы можете использовать его как мощный язык сценариев для автоматизации операций управления системой, а также если вы хотите создавать, анализировать, тестировать и развертывать решения в различных средах.
Учитывая, что PowerShell основан на .NET CLR (.NET Common Language Runtime), легко понять, почему все входные и выходные данные, с которыми работает PowerShell, являются объектами .NET. Кроме того, нет никакой необходимости анализировать вывод текста, чтобы PowerShell мог извлекать из него информацию. Среди функций сценариев PowerShell вы можете найти следующее:
Если вас больше интересует управление и настройка корпоративной инфраструктуры с помощью кода, вы будете рады узнать, что PowerShell также предлагает вам эту возможность через свою структуру управления Desired State Configuration (DSC). Среди операций, которые вы могли бы легко выполнить с помощью DSC PowerShell, мы напоминаем вам:
PowerShell имеет проприетарную командную строку, которая поставляется с проприетарным языком программирования, чем-то похожим на Perl. Обратите внимание, что вначале PowerShell был разработан, чтобы помочь пользователям управлять объектами на своих компьютерах, но, как вы понимаете, он прошел долгий путь и теперь используется для более обширных и сложных задач.
Например, вы можете использовать обширную рабочую среду PowerShell не только для выполнения различных операций по управлению системой, но и для их автоматизации, чтобы вам не приходилось время от времени выполнять утомительные, повторяющиеся задачи. Также очень важно отметить, что вы можете получить доступ к множеству ресурсов с помощью только одной программы (например, PowerShell), включая, но не ограничиваясь:
В настоящее время одна из самых популярных целей PowerShell - помочь конечным пользователям автоматизировать задачи управления системой, тем самым помогая им избежать серии скучных повторяющихся операций. Доказано, что устранение человеческого фактора из повторяющихся действий повышает эффективность и снижает количество человеческих ошибок по разным причинам, так что это действительно беспроигрышный вариант для всех.
Вы можете использовать PowerShell для выполнения простых или более сложных команд, но эта программа также может помочь вам создавать сценарии на основе этих команд, которые будут автоматически запускаться PowerShell. Кроме того, существует огромное количество команд, которые вы можете настроить и впоследствии запускать, называемые командлетами.
Стоит упомянуть, что PowerShell является кроссплатформенным и имеет открытый исходный код, а это означает, что вы также можете использовать его в других системах, таких как Mac или Linux, без использования уловок и инструментов повышения совместимости, таких как Wine или Boot Camp.
Список основных команд PowerShell
Мы понимаем, что PowerShell может показаться немного пугающим, особенно теперь, когда вы обнаружили, что это больше, чем просто еще одна командная строка на вашем компьютере, и на самом деле она включает в себя функции CMD, а также конкретный язык программирования и различные сценарии, которые вы можете использовать для автоматизации. система управления операциями.
Однако, если вы чувствуете решимость освоить PowerShell и все, что он может предложить, мы настоятельно рекомендуем вам начать с его самых основных функций. Таким образом, вам не придется откатывать месяцы прогресса, когда вы обнаружите, что случайно использовали неправильную функцию, и вся работа, которую вы выполняли за это время, начинает больше походить на далекое воспоминание.
Именно поэтому мы подготовили список основных команд, которые вы можете безопасно использовать в сеансах PowerShell, чтобы протестировать функции этой мощной программы и посмотреть, какая из них именно что делает. Список ниже включает имена команд, их псевдонимы и краткое описание того, что делает каждая команда.
Обратите внимание, что вы можете использовать либо имена команд, либо их псевдонимы, и результат будет точно таким же. Причина, по которой предпочтительнее использовать псевдонимы, заключается в том, что они намного быстрее набираются, и если вы можете правильно их запомнить и связать с их соответствующим именем команды, это имеет больше смысла, если вы хотите быстро выполнить работу.
Имя команды | Псевдоним | Описание |
---|---|---|
Добавить содержание | ac | Позволяет добавлять содержимое (например, слова или данные) в файл |
Добавить PSSnapIn | asnp | Помогает добавить несколько оснасток Windows PowerShell в текущий сеанс. |
Clear-Content | clc | Очищает содержимое элемента, не удаляя фактический элемент |
Чистая история | clhy | Удаляет все записи из истории команд |
Clear-Host | чистый | Очищает отображение основной программы |
Clear-Host | cls | Делает то же самое, что и ясно |
Clear-Item | cli | Удаляет содержимое элемента без удаления самого элемента |
Clear-ItemProperty | clp | Стирает значение свойства без фактического удаления самого свойства |
Очистить переменную | clv | Удаляет значение переменной |
Сравнить-объект | сравнивать | Позволяет сравнить два набора объектов |
Сравнить-объект | разница | То же, что и сравнение |
Connect-PSSession | cnsn | Позволяет повторно подключаться к сеансам, от которых вы отключились |
Преобразовать путь | cvpa | Позволяет преобразовать путь Windows PowerShell в путь поставщика Windows PowerShell. |
Копировать элемент | копировать | Помогает скопировать элемент из одного места в другое |
Копировать элемент | cp | Делает то же самое, что и копирование |
Копировать элемент | cpi | Делает то же самое, что и copy и cp |
Копировать-ItemProperty | cpp | Позволяет скопировать значение и свойство из одного места в другое. |
Отключить-PSBreakpoint | dbp | Помогает отключить точки останова в текущей консоли |
Отключить-PSSession | dnsn | Отключает вас от текущего сеанса |
Включить-PSBreakpoint | ebp | Позволяет включить точки останова в текущей консоли |
Enter-PSSession | etsn | Помогает запустить интерактивный сеанс с удаленным устройством |
Выход-PSSession | exsn | Завершает интерактивный сеанс с удаленным устройством |
Экспорт-Псевдоним | эпал | Позволяет экспортировать информацию о псевдонимах, которые в настоящее время определены, в выходной файл. |
Экспорт-CSV | epcsv | Позволяет преобразовывать объекты в несколько строк, разделенных запятыми (CSV), и экспортировать строки в документ CSV. |
Экспорт-PSSession | epsn | Импортирует команды из другого сеанса и экспортирует их в модуль Windows PowerShell. |
ForEach-Object | % | Выполняет определенную операцию с каждым из элементов, содержащихся в коллекции входных объектов. |
ForEach-Object | для каждого | Делает то же самое, что и % |
Формат-Пользовательский | fc | Помогает вам использовать настраиваемый вид для форматирования вывода |
Формат-Список | эт | Позволяет отформатировать вывод как список свойств, где каждое свойство помещается в новую строку. |
Формат-таблица | футов | Позволяет отформатировать вывод в виде таблицы |
Широкий формат | fw | Помогает форматировать объекты в виде широких таблиц, в которых отображается только одно свойство каждого объекта. |
Get-Alias | гал | Выбирает вам псевдонимы для текущего сеанса |
Get-ChildItem | реж | Получает список всех файлов и папок на диске с файловой системой |
Get-ChildItem | gci | То же, что и dir |
Get-ChildItem | ls | Делает то же самое, что и dir и gci |
Get-Command | гсм | Fetches a list of all commands you can use |
Get-Content | cat | Displays the contents of a file |
Get-Content | gc | Does the same thing as cat |
Get-History | ghy | Fetches a list of all the commands you entered during your current session |
Get-History | h | Does the same thing as ghy |
Get-History | history | Does the same thing as ghy and h |
Get-Item | gi | Lets you fetch files and folders |
Get-ItemProperty | gp | Fetches the properties of the item you specified |
Get-Job | gjb | Retrieves a list of all the Windows PowerShell background jobs that are currently running in your session |
Get-Location | gl | Fetches information about your current location stack or working location |
Get-Location | pwd | Does the same thing as gl |
Get-Member | gm | Fetches all the properties and methods of specified objects |
Get-Module | gmo | Retrieves a list of imported modules or modules that can be imported into the current session |
Get-Process | gps | Fetches a list of all the processes that are running locally or on a remote computer |
Get-Process | ps | Does the same thing as gps |
Get-PSBreakpoint | gbp | Retrieves all the breakpoints set in your current session |
Get-PSCallStack | gcs | Displays your current call stack |
Get-PSDrive | gdr | Fetches the drives in your current session |
Get-PSSession | gsn | Retrieves a list of local and remote Windows PowerShell sessions |
Get-PSSnapIn | gsnp | Fetches a list of all the Windows PowerShell snap-ins on the computer |
Get-Service | gsv | Lists all the services on a local or remote computer |
Get-Unique | gu | Retrieves unique items from a sorted list |
Get-Variable | gv | Displays a list of all the variables in the current console |
Get-WmiObject | gwmi | Fetches Windows Management Instrumentation (WMI) classes instances or information about available classes |
Group-Object | group | Lets you group objects that contain the same value for the properties that you specify |
help | man | Displays more details about Windows PowerShell commands and concepts |
Import-Alias | ipal | Allows you to import a list of aliases from a file |
Import-Csv | ipcsv | Build table-like custom objects using all the items contained within a CSV file |
Import-Module | ipmo | Import modules to your current session |
Import-PSSes sion | ipsn | Imports commands from a different session into your current session |
Invoke-Command | icm | Lets you execute commands on local and remote computers |
Invoke-Expression | iex | Lets you execute commands or expressions on the local computer |
Invoke-History | ihy | Executes commands from your session history |
Invoke-History | r | Does the same thing as ihy |
Invoke-Item | ii | Performs the default action on a specified item |
Invoke-RestMethod | irm | Sends either an HTTP or an HTTPS request to a RESTful web service |
Invoke-WebRequest | curl | Retrieves content from a webpage on the Internet |
Invoke-WebRequest | iwr | Does the same thing as curl |
Invoke-WMIMethod | iwmi | Allows you to call Windows Management Instrumentation (WMI) methods |
Measure-Object | measure | Determines numeric properties of objects, as well as words, lines, and characters in string objects |
mkdir | md | Creates a new item (directory) |
Move-Item | mi | Allows you to move an item from a specific location to a different one |
Move-Item | move | Does the same thing as mi |
Move-Item | mv | Does the same thing as mi and move |
Move-ItemProperty | mp | Allows you to move a property from a specific location to a different one |
New-Alias | nal | Allows you to create a new alias |
New-Item | ni | Lets you create a new item |
New-Module | nmo | Generates a new dynamic module that exists only in memory |
New-PSDrive | mount | Allows you to create temporary and persistent mapped network drives |
New-PSDrive | ndr | Does the same thing as mount |
New-PSSession | nsn | Establishes a persistent connection to a local or remote computer |
New-PSSessionConfigurationFile | npssc | Creates a session configuration file |
New-Variable | nv | Lets you create a new variable |
Out-GridView | ogv | Allows you to send output to an interactive table in a separate window |
Out-Host | oh | Sends the output to the command line (CMD) |
Out-Printer | lp | Lets you send the output to a printer |
Pop-Location | popd | Modifies your current location to the location that was pushed to the stack most recently. You can use the Push-Locationcmdlet (pushd) to pop the location either its default stack or from a stack that you create. |
powershell_ise.exe | ise | Displays an explanation on how you can use the PowerShell_ISE.exe command-line tool |
Push-Location | pushd | Appends the current location to the top of a location stack |
Receive-Job | rcjb | Fetches the results of current session Windows PowerShell background jobs |
Receive-PSSession | rcsn | Retrieves results of commands from disconnected sessions |
Remove-Item | del | Removes files and folders |
Remove-Item | erase | Does the same thing as del |
Remove-Item | rd | Does the same thing as del and erase |
Remove-Item | 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.
Однако, если PowerShell просто выводит сообщение об ошибке, в котором говорится, что для интересующей вас команды нет справочного руководства, вы можете обновить его вручную, набрав Update-Help и нажав клавишу Enter на клавиатуре. После завершения процесса обновления вы сможете проверить доступную справочную документацию по интересующей вас команде.
2. Get-Process
Get-Process имеет первостепенное значение, если вы хотите узнать больше о системе, над которой вы сейчас работаете. Чтобы быть более конкретным, хотя вы, возможно, уже догадались, что делает эта команда, просто взглянув на нее, Get-Process предоставит вам список всех процессов, которые в настоящее время выполняются в системе, над которой вы работаете.
По умолчанию Get-Process получит список всех процессов, запущенных в текущей системе, над которой вы работаете, поэтому вам может потребоваться добавить некоторые дополнительные параметры к этой команде, если вы хотите получить более конкретную информацию и сузить список результатов. Посмотрите на снимки экрана ниже, что вы получаете, когда запускаете команду Get-Process отдельно, в сравнении с тем, как она выглядит, если вы более конкретны и форматируете результаты.
Get-Process
Get-Process explorer | Format-List *
Вторую команду можно настроить для отображения дополнительных сведений о любом активном процессе в вашей системе. Вы можете заменить проводник на svchost или Chrome или любой другой активный процесс в вашей системе, который вас интересует. Как мы упоминали выше, использование Get-Processes само по себе может помочь вам в этом (т.е. найти список всех запущенных процессов ).
3. Остановить процесс
Эта команда в значительной степени не требует пояснений, поскольку вы, возможно, уже догадались, что она может помочь вам остановить процессы, которые в настоящее время выполняются в вашей системе. Самая распространенная причина, по которой это делается из PowerShell, а не с помощью диспетчера задач Windows, заключается в том, что иногда процессы могут зависать и делать приложения с графическим интерфейсом практически непригодными для использования.
Пользователи PowerShell могут легко идентифицировать проблемный процесс с помощью команды Get-Process, которую мы объяснили ранее, а затем с помощью Stop-Process для ее завершения и, таким образом, очистки системы. Запуск Stop-Process сам по себе (без каких-либо дополнительных параметров) в интерфейсе командной строки PowerShell предложит вам ввести идентификатор процесса, который вы пытаетесь завершить.
Однако вы также можете завершить процесс по его имени (если вы его знаете), добавив параметр -Name к командлету, как в примере ниже:
Stop-Process -Name "explorer"
Приведенная выше команда завершит процесс Explorer, что может быть полезно, особенно если он зависает или дает сбой и отказывается загружаться должным образом. Обратите внимание, что вам нужно будет использовать кавычки при указании имени процесса, который вы пытаетесь завершить. Если процесс упрямый и отказывается завершиться (обычно это делают процессы с более высоким уровнем допуска), вы можете «убедить» его, добавив к своей команде параметр -Force . Скажем, например, что вы не можете завершить процесс Explorer. В этом случае вы можете просто ввести команду ниже:
Stop-Process -Force -Name "explorer"
Кроме того, стоит упомянуть, что при использовании параметра -Force в вашей команде Stop-Process не будет запрашиваться подтверждение, в отличие от выполнения команды без этой опции. Если вы хотите узнать больше об этом командлете, обязательно используйте команду Get-Help .
4. Get-Service
Эта команда входит в список основных команд по уважительной причине: она может предоставить вам список всех служб, которые в настоящее время установлены в системе, над которой вы работаете, независимо от того, запущены они или нет. Как и многие другие командлеты, вы можете настроить Get-Service, чтобы предоставлять вам более конкретную информацию, касающуюся определенной службы или даже отображения списка всех запущенных (или остановленных) служб на вашем компьютере.
Вы можете продолжить и ввести Get-Service в командной строке PowerShell. Это должно предоставить вам список всех служб, доступных на вашем компьютере, а также их отображаемые имена и статусы. Если вы добавите дополнительную команду к исходному командлету, вы можете изменить вывод, заставив его отображать только те результаты, которые вам интересны.
Get-Service "W*"
Например, ввод приведенной выше команды должен вернуть список всех служб, доступных на вашем компьютере, которые начинаются с буквы «W». Однако вы можете пойти еще дальше и настроить свою команду, чтобы еще больше сузить список результатов.
Get-Service | Where-Object {$_.Status -eq “Running”}
Приведенная выше команда позволит вам увидеть список всех доступных на вашем компьютере служб, которые также работают во время выполнения командлета. Добавление буквы «W *», как мы делали в предыдущем примере, отобразит список всех запущенных служб на вашем компьютере, которые начинаются с буквы «W», и команда должна выглядеть так:
Get-Service "W*" | Where-Object {$_.Status -eq "Running"}
5. Get-EventLog
Каждый ответственный системный администратор должен знать, как работать с журналами событий, так как эти документы могут предоставить вам полезную информацию о том, что произошло в вашей системе, в какое время это произошло, а иногда даже о том, что вызвало это конкретное событие.
Следовательно, мы можем с уверенностью предположить, что команда PowerShell Get-EventLog - это не то, чего вы хотели бы упустить из своего набора инструментов, особенно если вы планируете оттачивать свои навыки системного администрирования. Если вы знаете все, что нужно знать о журналах событий и их именах, вы можете продолжить и ввести Get-EventLog непосредственно в командной строке PowerShell. Обратите внимание, что PowerShell предложит вам ввести имя журнала, который вы пытаетесь просмотреть.
Если вы введете имя пустого журнала событий (без записей), PowerShell выдаст вам сообщение об ошибке и вернет вас в интерфейс командной строки. Поэтому было бы проще, если бы вы просто использовали приведенную ниже команду, которая предоставит вам список журналов событий в вашей системе, а также дополнительные сведения о каждом из них, такие как действие переполнения по умолчанию и количество записей.
Get-EventLog -List
Один из самых популярных вариантов использования журналов событий - это проверка ошибок, особенно если они произошли незаметно, вскоре за ними последовал сбой системы или привел к BSOD, который, как мы все знаем, может быть загадочным. Однако вам нужно будет уточнить командлет Get-EventLog, если вы хотите сузить список результатов, который часто может быть огромным.
Get-EventLog -LogName Security -EntryType Error
Ввод приведенной выше команды в интерфейсе командной строки PowerShell должен предоставить вам список всех ошибок, зарегистрированных в журнале событий безопасности. Обратите внимание, что вы можете использовать параметр -List, чтобы просмотреть все типы журналов в вашей системе, и заменить Security
в приведенной выше команде любой другой тип журнала, который вы найдете в своем списке, если в нем больше нуля записей.
Если вы хотите узнать больше об использовании команды Get-EventLog в PowerShell, не стесняйтесь использовать команду Get-Help, о которой мы говорили в первом разделе этого подраздела.
6. ConvertTo-HTML
Иногда, когда вы используете PowerShell, вы можете наткнуться на определенную информацию, которую хотите извлечь и сохранить для использования в будущем, создать отчеты или просто импортировать ее из другого приложения. Одним из наиболее часто используемых способов извлечения этих данных из PowerShell и их экспорта во внешний файл на вашем компьютере является команда ConvertTo-HTML .
Использование этой команды поможет вам создавать исчерпывающие отчеты, которые могут помочь вам анализировать извлеченную информацию и идеи более эффективным образом, предоставляя вам таблицы HTML, которые вы можете настроить позже, добавив пользовательские стили и данные с цветовой кодировкой. Как и многие другие команды PowerShell, ConvertTo-HTML не работает сам по себе, и вам нужно объединить его с дополнительной командой, которую он будет использовать в качестве ввода (или источника данных).
Например, если вы пытаетесь распечатать отчет, состоящий из каждой службы, которая начинается с буквы «W» и в настоящее время запущена на вашем компьютере, вы можете ввести следующую команду:
Get-Service "W*" | Where-Object {$_.Status -eq "Running"} | ConvertTo-HTML
Это предоставит вам HTML-код данных, которые вы передали в функцию ConvertTo-HTML, которые вы можете просто скопировать прямо из интерфейса командной строки PowerShell, вставить в свой любимый текстовый редактор и сохранить как HTML-файл, который вы можете использовать для просмотра результата в любом веб-браузере.
Вы можете использовать ConvertTo-HTML практически с любой командой PowerShell, если команда, которую вы используете в качестве источника данных, будет генерировать выходные данные. Вы можете попробовать это с другими командлетами, такими как Get-Process , Get-EventLog или Get-Help . Обратите внимание, что помимо преобразования HTML, командлет ConvertTo также можно использовать для создания файлов JSON, CSV и XML. Вам просто нужно заменить HTML в синтаксисе команды на интересующий вас формат.
7. Экспорт в CSV
Если вы работаете с различными объектами, которые, по вашему мнению, могут лучше уместиться в таблице, вы можете использовать PowerShell для преобразования элементов, которые вы сейчас обрабатываете, в серию строк CSV (значения, разделенные запятыми) и экспортировать строки в одним быстрым движением с помощью командлета Export-CSV.
Как и в случае с ConvertTo-HTML, Export-CSV требует ввода, который он может преобразовать в строки CSV, поскольку он не может работать сам по себе. Таким образом, вам нужно будет связать его с командой, которую можно использовать для генерации данных, такой как Get-Service или Get-Process, которые мы объясняли ранее.
По сути, Export-CSV делает почти то же самое, что и командлет ConvertTo-HTML, который мы обсуждали выше, за исключением одного важного аспекта, который не следует упускать из виду: этот командлет фактически создает файл и сохраняет его на вашем компьютере, в отличие от команда ConvertTo, которая дает вам только выходные данные и позволяет вам создавать файл самостоятельно.
Предположим, например, что вы хотите превратить список служб, работающих на вашем компьютере, в файл CSV, чтобы вы могли обрабатывать файл с помощью стороннего программного обеспечения, или поместить его в электронную таблицу для дальнейшего использования. Все, что вам нужно сделать, это ввести команду Get-Service, а затем команду Export-CSV и указать место, где вы хотите создать файл CSV, как в примере ниже:
Get-Service | Export-CSV c:\Tips.WebTech360.csv
Приведенная выше команда получит список всех служб, доступных на вашем компьютере, запущенных или нет, преобразует их в серию строк CSV и сохранит результат в виде файла CSV с именем «Tips.WebTech360» в корне диска C. . Затем вы можете открыть файл в стороннем программном решении, преобразовать его в полноценную таблицу или просто сохранить для использования в будущем.
Шпаргалка по PowerShell - ЗАКЛЮЧЕНИЕ
Хотя по-прежнему много людей, защищающих CMD, по правде говоря, PowerShell более универсален, намного мощнее, но в то же время более сложен в работе, чем его традиционный аналог CMD. Огромное количество функций в сочетании с тем фактом, что вы можете создавать сценарии автоматизации в PowerShell и выполнять сложные операции по управлению системой, просто оставляет CMD в конусе тени.
Если вы только начинаете знакомиться с PowerShell и изо всех сил пытаетесь понять, что делает каждая команда, как конвейерно организовать несколько команд или как создавать и запускать простые сценарии PowerShell самостоятельно, наше руководство станет отличной отправной точкой. Мы потратили время, чтобы объяснить некоторые из наиболее важных команд, о которых вы должны знать в PowerShell, создали несколько коротких руководств, а также включили список основных команд PowerShell, их псевдонимы и краткие описания для каждого элемента, чтобы упростить ваше путешествие по PowerShell.
Рынок программного обеспечения для управления сетью очень переполнен. Сократите свой поиск, следуя нашим рекомендациям по лучшим инструментам управления сетью.
Проверка связи может быть использована в ваших интересах многими способами. Читайте дальше, пока мы обсуждаем, как и представляем 10 лучших инструментов проверки Ping, которые вы можете найти.
Веб-сайты важны и должны постоянно контролироваться для адекватной работы. Вот некоторые из лучших инструментов для мониторинга веб-сайтов.
Вот некоторые из лучших инструментов для развертывания программного обеспечения, которые облегчают управление любым количеством машин.
Если вы работаете в сфере здравоохранения или каким-либо образом связаны с ИТ в этой отрасли, скорее всего, вы слышали о HIPAA. Переносимость медицинского страхования
sFlow - это протокол анализа потока, который встроен во многие сетевые устройства. Мы рассматриваем пятерку лучших бесплатных сборщиков и анализаторов sFlow.
Чтобы помочь вам выбрать правильный, мы представили лучшие инструменты безагентного мониторинга инфраструктуры и дали вам быстрый обзор каждого из них.
Безопасность электронной почты - важная задача поставщиков управляемых услуг. Мы рассматривали SolarWinds Mail Assure, один из лучших инструментов для этой цели.
Для сетевого монитора Windows требуются инструменты с ограниченными требованиями. Сегодня мы познакомились с лучшими инструментами сетевого мониторинга для Windows 10.
Чтобы помочь вам разобраться в лабиринте инструментов, доступных для устранения неполадок в сети, мы раскрыли наш выбор лучших инструментов для устранения неполадок в сети.