Folha de referências dos comandos do Windows PowerShell - O guia definitivo de que você precisa

Folha de referências dos comandos do Windows PowerShell - O guia definitivo de que você precisa

Se você é um usuário avançado do Windows, provavelmente sabe e entende como executar várias operações em seu PC pode ter mais do que apenas uma abordagem e que aplicativos GUI especializados são muitas vezes mais limitantes (e menos satisfatórios, sejamos honestos) do que inserir comandos em uma linha de comando manualmente. Há aquela sensação de satisfação quando você vê aquela parede de texto se desdobrando à sua frente e, se o resultado não for um erro, ainda vale mais a pena.

Folha de referências dos comandos do Windows PowerShell - O guia definitivo de que você precisa

Em PCs com Windows, existem apenas duas maneiras de fazer isso: por meio do CMD ou do PowerShell. Embora o CMD seja um pouco mais popular que o PowerShell, também é menos poderoso, visto que sua contraparte permite que você execute muito mais operações, incluindo aquelas que podem ser executadas por meio do CMD. Você poderia dizer que o PowerShell combina o poder do antigo CMD com habilidades de script e cmdlet, oferecendo uma infinidade de possibilidades em relação às operações que você pode executar com ele.

No entanto, o grande número de operações possíveis que você pode executar usando o PowerShell pode ser bastante intimidante, mesmo para usuários experientes, sem mencionar os usuários que nunca ouviram falar do CMD (muito menos do PowerShell) antes. Não se preocupe, porém, vamos tentar ensinar alguns truques fáceis que você pode fazer com o PowerShell e talvez até mesmo memorizar no longo prazo. Embora este nosso “curso intensivo” não sirva como um manual abrangente para o PowerShell, espero que ajude você a se orientar no PowerShell, fornecendo algumas dicas e explicando vários comandos. Se você estiver pronto, vamos começar.

O que é PowerShell?

Como mencionamos brevemente acima, o PowerShell é uma ferramenta poderosa que você pode usar para uma grande variedade de operações. Mais do que isso, o PowerShell é uma solução de automação de tarefas que compreende várias ferramentas poderosas em seu capô, incluindo, mas não se limitando a, um shell de linha de comando (como CMD), uma linguagem de script, bem como uma estrutura de gerenciamento de configuração.

Ao contrário de outros shells que só podem aceitar e retornar texto, o PowerShell também pode aceitar e retornar objetos .NET graças à grande quantidade de recursos que abrange. Alguns dos recursos mais importantes relacionados ao shell do PowerShell são os seguintes:

  • Previsão de comandos e conclusão de tabulação
  • Suporte a alias de parâmetros e comandos
  • Histórico abrangente de linha de comando
  • A capacidade de encadear comandos através do pipeline
  • Um sistema de ajuda no console que é semelhante às páginas do manual em sistemas baseados em Unix

No entanto, isso é apenas arranhar a ponta do iceberg, pois, como mencionamos antes, o PowerShell é mais do que apenas uma casca; você pode usá-lo como uma linguagem de script poderosa para automatizar operações de gerenciamento de sistema, mas também se quiser construir, analisar, testar e implantar soluções em vários ambientes.

Dado que o PowerShell é baseado no .NET CLR (.NET Common Language Runtime), é fácil ver por que todas as entradas e saídas com as quais o PowerShell funciona são objetos .NET. Além disso, não há absolutamente nenhuma necessidade de analisar a saída de texto apenas para que o PowerShell possa extrair informações dela. Entre os recursos de script do PowerShell, você pode encontrar o seguinte:

  • Um sistema de formatação abrangente que garante uma saída limpa e fácil
  • Crie tipos dinâmicos através de um extenso sistema de tipos
  • Você pode estender os recursos do PowerShell por meio de classes, funções, módulos e scripts
  • Suporte nativo para vários formatos de dados, incluindo XML, JSON e CSV

Se você estiver mais interessado em gerenciar e configurar sua infraestrutura corporativa por meio de código, ficará feliz em saber que o PowerShell também oferece essa possibilidade por meio de sua estrutura de gerenciamento de Configuração de Estado Desejado (DSC). Entre as operações que você pode facilmente realizar usando o DSC do PowerShell, lembramos você de:

  • Implante vários esquemas de configuração usando modelos push ou pull
  • Projete scripts personalizados e configurações declarativas que você pode usar para implantações repetíveis em seu ambiente
  • Aplicar vários esquemas de configuração
  • Relatório sobre desvio de configuração

O PowerShell tem uma linha de comando proprietária que vem com uma linguagem de programação proprietária que é um pouco semelhante ao Perl. Observe que, no início, o PowerShell foi desenvolvido para ajudar os usuários a gerenciar objetos em seus computadores, mas, como você pode imaginar, ele já percorreu um longo caminho e agora é usado para trabalhos mais extensos e complexos.

Por exemplo, você pode usar o extenso ambiente de trabalho do PowerShell não apenas para executar várias operações de gerenciamento de sistema, mas também para automatizá-las, para que não precise se envolver em tarefas tediosas e repetitivas de vez em quando. Também é muito importante mencionar que você pode acessar uma infinidade de recursos por meio de apenas um programa (ou seja, PowerShell), incluindo, mas não se limitando a:

  • Instrumentação de gerenciamento do Windows
  • API .NET Framework
  • Prompt de comando
  • Modelo de objeto de componente do Windows
  • Comandos PowerShell

Hoje em dia, um dos propósitos mais populares do PowerShell é ajudar os usuários finais a automatizar as tarefas de gerenciamento do sistema, ajudando-os a evitar o envolvimento em uma série de operações repetitivas e enfadonhas. A eliminação do fator humano de ações repetitivas provou aumentar a eficiência e reduzir os erros humanos devido a várias razões, então é realmente uma vitória para todos.

Você pode usar o PowerShell para emitir comandos simples ou mais complexos, mas este programa também pode ajudá-lo a criar scripts com base nesses comandos, que serão executados automaticamente pelo PowerShell. Além disso, há uma grande quantidade de comandos que você pode personalizar e emitir posteriormente, chamados cmdlets.

Vale ressaltar que PowerShell é multiplataforma e open-source, o que significa que você também pode usá-lo em outros sistemas como Mac ou Linux de forma nativa, sem recorrer a truques e ferramentas de aprimoramento de compatibilidade como Wine ou Boot Camp.

Lista de comandos básicos do PowerShell

Entendemos que o PowerShell pode parecer um pouco intimidante, especialmente agora que você descobriu que é mais do que simplesmente outro prompt de comando em seu computador e, na verdade, abrange recursos do CMD, mas também uma linguagem de programação específica e vários scripts que você pode usar para automatizar operações de gerenciamento de sistema.

No entanto, se você estiver determinado a dominar o PowerShell e tudo o que ele tem a oferecer, recomendamos que comece com seus recursos mais básicos. Dessa forma, você não terá que retroceder em meses de progresso quando descobrir que usou acidentalmente a função errada e todo o trabalho que você realizou nesse ínterim começa a se parecer mais com uma memória distante.

É exatamente por isso que preparamos uma lista de comandos básicos que você pode usar com segurança em suas sessões do PowerShell para testar os recursos deste poderoso programa e ver qual deles faz exatamente o quê. A lista a seguir contém os nomes dos comandos, seus aliases e uma breve descrição do que cada comando faz.

Observe que você pode usar nomes de comando ou seus apelidos, e o resultado será exatamente o mesmo. A razão pela qual alguém prefere usar aliases é que eles são muito mais rápidos de digitar e se você puder lembrá-los corretamente e associá-los ao nome de comando correspondente, faz mais sentido se você quiser fazer o trabalho rapidamente.

Nome do comando Pseudônimo Descrição
Adicionar conteúdo ac Permite anexar conteúdo (por exemplo, palavras ou dados) a um arquivo
Add-PSSnapIn asnp Ajuda a adicionar vários snap-ins do Windows PowerShell à
sessão atual
Clear-Content clc Limpa o conteúdo de um item sem excluir o item real
Limpar histórico clhy Limpa todas e quaisquer entradas do histórico de comandos
Clear-Host Claro Limpa a tela do programa host
Clear-Host cls Faz a mesma coisa com clareza
Clear-Item cli Remove o conteúdo de um item sem deletar o item real
Clear-ItemProperty clp Limpa o valor de uma propriedade sem realmente excluí-la
Clear-Variable clv Exclui o valor de uma variável
Compare-Object comparar Permite comparar dois conjuntos de objetos
Compare-Object diferença Faz a mesma coisa que comparar
Connect-PSSession cnsn Permite que você se reconecte às sessões das quais se desconectou
Converter caminho CVPA Permite converter um caminho do Windows PowerShell em um
caminho de provedor do Windows PowerShell
Copy-Item cópia de Ajuda a copiar um item de um local específico para outro
Copy-Item cp Faz a mesma coisa que copiar
Copy-Item cpi Faz a mesma coisa que copiar e cp
Copy-ItemProperty cpp Permite que você copie um valor e uma propriedade de um determinado local para outro
diferente
Disable-PSBreakpoint dbp Ajuda a desabilitar pontos de interrupção no console atual
Disconnect-PSSession dnsn Desconecta você da sessão atual
Enable-PSBreakpoint vazante Permite habilitar pontos de interrupção no console atual
Enter-PSSession etsn Ajuda a iniciar uma sessão interativa com um dispositivo remoto
Exit-PSSession exsn Encerra uma sessão interativa com um dispositivo remoto
Export-Alias epal Permite exportar informações sobre apelidos que estão atualmente definidos
para um arquivo de saída
Export-Csv epcsv Permite converter objetos em várias
strings separadas por vírgulas (CSV) e exportar as strings para um documento CSV
Export-PSSession epsn Importa comandos de uma sessão diferente e os exporta para um
módulo do Windows PowerShell
ForEach-Object % Executa uma operação específica em cada um dos itens contidos
em uma coleção de objetos de entrada
ForEach-Object para cada Faz a mesma coisa que %
Format-Custom fc Ajuda você a usar uma visão personalizada para formatar a saída
Format-List fl Permite formatar a saída como uma lista de propriedades onde cada propriedade
é colocada em uma nova linha
Format-Table pés Permite formatar a saída como uma tabela
Formato amplo fw Ajuda a formatar objetos como tabelas largas onde apenas uma propriedade de
cada objeto é exibida
Get-Alias garota Busca seus aliases para sua sessão atual
Get-ChildItem dir Busca uma lista de todos os arquivos e pastas em uma unidade do sistema de arquivos
Get-ChildItem gci Faz a mesma coisa que dir
Get-ChildItem ls Faz a mesma coisa que dir e gci
Get-Command gcm Busca uma lista de todos os comandos que você pode usar
Obter conteudo gato Mostra o conteúdo de um arquivo
Obter conteudo gc Faz a mesma coisa que gato
Get-History raia Busca uma lista de todos os comandos que você digitou durante a sua sessão atual
Get-History h Faz a mesma coisa que ghy
Get-History história Faz a mesma coisa que ghy e h
Get-Item kimono Permite buscar arquivos e pastas
Get-ItemProperty gp Busca as propriedades do item que você especificou
Conseguir emprego gjb Recupera uma lista de todos os trabalhos em segundo plano do Windows PowerShell que estão
atualmente em execução na sua sessão
Get-Location gl Coleta informações sobre sua pilha de localização atual ou local de trabalho
Get-Location pwd Faz a mesma coisa que gl
Get-Member gm Busca todas as propriedades e métodos de objetos especificados
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:

Folha de referências dos comandos do Windows PowerShell - O guia definitivo de que você precisa

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.

  1. Log in to an Administrator account (it won’t work without Admin rights)
  2. Launch PowerShell with Administrator rights (Run as administrator)
  3. Type the following command in PowerShell and press Enter:
    • Set-ExecutionPolicy
  4. If done right, PowerShell will prompt you with a dialog, asking you for the new ExecutionPolicy value
  5. Type RemoteSigned in the PowerShell command prompt and press Enter
  6. PowerShell will give you a heads up on the risks of modifying the value of the ExecutionPolicy
  7. Type Y and press the Enter keyFolha de referências dos comandos do Windows PowerShell - O guia definitivo de que você precisa
  8. If you need to turn custom cmdlets off, just follow steps 1-4, and when PowerShell asks you to type the value, type Restricted and confirm your choice as you did at step 7

If 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:

  1. Launch Notepad (or any other text editor for that matter)
  2. Copy the code above (the script you’ll be creating and running)
  3. Paste it into your new Notepad document
  4. Use CTRL + S to save the document
  5. Type script.ps1 as the file name
  6. Save the file somewhere accessible
  7. Open a PowerShell instance with administrator rights (very important)
  8. Make sure you’ve enabled custom scripts on your system (check sections above)
  9. Navigate to the location where you saved the script
  10. Type the full path of the script to run it
    • For instance, if your script is in a Scripts folder on your C drive, your command will be C:\Scripts\script.ps1
    • Alternatively, you could simply navigate to the location of your script and use this command to run it: .\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:

  1. Launch PowerShell with administrator rights
  2. Type the following command:
    • install-module sqlserver
  3. When asked to confirm your actions, type Y and hit Enter on your keyboard
  4. Confirm the untrusted repository once more by typing Y and EnterFolha de referências dos comandos do Windows PowerShell - O guia definitivo de que você precisa
  5. Once the installation is complete, type the following command:
    • import-module sqlserver
  6. Try running the Backup-SqlDatabase command by typing it in the PowerShell command-line
    • If it works, you should see that PowerShell is asking you to supply values for some parameters
    • If it doesn’t work, make sure that you’ve set PowerShell’s permission to allow it to run custom scripts

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).

Embora existam vários outros métodos para executar o backup SQL com PowerShell de várias maneiras, apresentamos apenas alguns que consideramos mais importantes. Observe que os comandos que usamos em nossos exemplos acima provavelmente não funcionarão em seu ambiente em sua forma atual, portanto, você terá que adaptá-los à sua situação atual.

Por exemplo, você terá que alterar o parâmetro 'Computador \ Instância' para corresponder à sua própria instância do servidor e modificar o nome do seu banco de dados para refletir o nome do seu próprio banco de dados. Lembre-se de que você sempre pode recorrer ao  comando help no PowerShell se sentir que o comando que está tentando executar é confuso ou não funciona como deveria.

Comandos do PowerShell imperdíveis

1. Obtenha ajuda

Não podemos enfatizar isso o suficiente, mas o  comando Get-Help  deve ser o primeiro que você aprende, pois pode tirar você de inúmeras situações complicadas em que você não tem certeza se está usando o comando correto, ou exatamente o que você pode conseguir com o comando que está tentando implantar.

Agora que instalou o módulo sqlserver em seu sistema, você pode tentar o comando Get-Help agora e ver como o Backup-SqlDatabase funciona. Basta digitar  Get-Help Backup-SqlDatabase na linha de comando do PowerShell e aprimorar suas habilidades de backup de banco de dados SQL do PowerShell.

Folha de referências dos comandos do Windows PowerShell - O guia definitivo de que você precisa

Observe que, se você instalou recentemente o módulo sqlserver em seu sistema, o banco de dados de Ajuda ainda pode estar desatualizado e pode ser necessário executar uma atualização nele para que possa atualizar todos os novos scripts. Por padrão, o PowerShell detectará que o conteúdo que você está tentando acessar está disponível online, mas você não pode acessá-lo localmente e até se oferecer para atualizar o banco de dados para você. Nesse caso, tudo o que você precisa fazer é digitar Y quando solicitado e pressionar a tecla Enter no teclado.

No entanto, se o PowerShell apenas exibir um erro informando que não há manual de ajuda disponível para o comando no qual você está interessado, você pode atualizá-lo manualmente digitando Update-Help e pressionando a tecla Enter no teclado. Após o término do processo de atualização, você poderá verificar a documentação de ajuda disponível para o comando no qual está interessado.

2. Get-Process

Get-Process é fundamental se você deseja descobrir mais sobre o sistema no qual está trabalhando atualmente. Para ser mais específico, embora você possa ter adivinhado o que esse comando já faz apenas olhando para ele, Get-Process fornecerá uma lista de todos os processos que estão atualmente em execução no sistema em que você está trabalhando.

Por padrão, Get-Process recuperará uma lista de todos os processos em execução no sistema atual em que você está trabalhando, portanto, pode ser necessário anexar alguns parâmetros extras a este comando se desejar informações mais específicas e restringir a lista de resultados. Verifique nas capturas de tela abaixo o que você obtém quando executa o comando Get-Process sozinho em comparação com sua aparência se você for mais específico e formatar os resultados.

  • Get-Process

Folha de referências dos comandos do Windows PowerShell - O guia definitivo de que você precisa

  • Get-Process explorer | Format-List *

Folha de referências dos comandos do Windows PowerShell - O guia definitivo de que você precisa

O segundo comando pode ser personalizado para exibir detalhes adicionais sobre qualquer processo ativo em seu sistema. Você pode substituir o  explorer por  svchost ou  Chrome ou qualquer outro processo ativo em seu sistema que você esteja interessado. Como mencionamos acima, usar Get-Processes por si só pode ajudá-lo com isso (ou seja, encontrar uma lista de todos os processos em execução )

3. Stop-Process

Este comando é bastante autoexplicativo, pois você já deve ter percebido que ele pode ajudá-lo a interromper processos que estão sendo executados em seu sistema. O motivo mais comum para fazer isso no PowerShell e não usando o Gerenciador de Tarefas do Windows é que às vezes os processos podem congelar e dificultar o uso dos aplicativos da GUI.

Os usuários do PowerShell podem identificar facilmente um processo problemático usando o comando Get-Process que explicamos anteriormente e, em seguida, usando  Stop-Process para encerrá-lo, desobstruindo o sistema. A execução de  Stop-Process por si só (sem nenhum parâmetro adicional) na interface de linha de comando do PowerShell solicitará que você insira a ID do processo que está tentando encerrar. 

No entanto, você também pode encerrar um processo por seu nome (se o souber) anexando o parâmetro -Name ao cmdlet, como no exemplo abaixo:

  • Stop-Process -Name "explorer"

O comando acima encerrará o processo do Explorer, o que pode ser útil especialmente se ele congelar ou travar e se recusar a carregar corretamente. Observe que você precisará usar aspas ao especificar o nome do processo que está tentando encerrar. Se um processo for teimoso e se recusar a terminar (geralmente os processos de liberação superior fazem isso), você pode "convencê-lo" anexando um parâmetro -Force ao seu comando. Digamos, por exemplo, que você não pode encerrar o processo do Explorer. Nesse caso, você pode simplesmente digitar o comando abaixo:

  • Stop-Process -Force -Name "explorer"

Além disso, vale a pena mencionar que usar o parâmetro -Force em seu comando Stop-Process não pedirá confirmação, ao contrário de executar o comando sem esta opção. Se você quiser saber mais sobre este cmdlet, certifique-se de usar o comando Get-Help .

4. Get-Service

Este comando está entre a lista de comandos essenciais por um bom motivo: ele pode fornecer uma lista de todos os serviços que estão atualmente instalados no sistema em que você está trabalhando, independentemente de estarem em execução ou não. Como com muitos outros cmdlets, você pode personalizar Get-Service para fornecer informações mais específicas, seja em relação a um determinado serviço ou até mesmo exibindo uma lista de todos os serviços em execução (ou interrompidos) em sua máquina.

Você pode prosseguir e digitar  Get-Service na linha de comando do PowerShell. Isso deve fornecer a você uma lista de todos os serviços disponíveis em seu computador, bem como seus nomes de exibição e status. Se você anexar um comando adicional ao cmdlet original, poderá alterar a saída, fazendo com que exiba apenas os resultados de seu interesse.

  • Get-Service "W*"

Por exemplo, digitar o comando acima deve retornar uma lista de todos os serviços disponíveis em seu computador que começam com a letra 'W'. No entanto, você pode ir ainda mais longe e personalizar seu comando para restringir ainda mais a lista de resultados.

  • Get-Service | Where-Object {$_.Status -eq “Running”}

O comando acima permitirá que você veja uma lista de todos os serviços disponíveis em seu computador que também estão em execução no momento em que você está executando o cmdlet. Anexar o “W *”  como fizemos no exemplo anterior exibirá uma lista de todos os serviços em execução em seu computador que começam com a letra 'W', e o comando deve ter a seguinte aparência:

  • Get-Service "W*" | Where-Object {$_.Status -eq "Running"}

Folha de referências dos comandos do Windows PowerShell - O guia definitivo de que você precisa

5. Get-EventLog

Todo administrador de sistema responsável deve saber trabalhar com logs de eventos, visto que esses documentos podem fornecer um conhecimento útil sobre o que aconteceu em seu sistema, a que horas ocorreu e, às vezes, até o que acionou aquele evento específico.

Portanto, podemos presumir com segurança que o comando Get-EventLog  do PowerShell não é algo que você deseja que falte em seu conjunto de ferramentas, especialmente se você planeja aprimorar suas habilidades de administração de sistema. Se você sabe tudo o que há para saber sobre logs de eventos e seus nomes, pode prosseguir e digitar Get-EventLog diretamente na linha de comando do PowerShell. Observe que o PowerShell solicitará que você insira o nome do log que está tentando visualizar.

Se você digitar o nome de um log de eventos vazio (sem entradas), o PowerShell exibirá um erro e o levará de volta à interface da linha de comando. Portanto, seria mais fácil se você apenas usasse o comando abaixo, que fornecerá uma lista de Logs de eventos em seu sistema, junto com detalhes adicionais sobre cada um, como a ação de estouro padrão e o número de entradas.

  • Get-EventLog -List

Um dos casos de uso mais populares para logs de eventos é a verificação de erros, especialmente se eles ocorreram silenciosamente, foram logo seguidos por uma falha do sistema ou levaram a um BSOD, o que todos nós sabemos como pode ser enigmático. No entanto, você precisará ser mais específico com o cmdlet Get-EventLog se quiser restringir a lista de resultados, que muitas vezes pode ser enorme.

  • Get-EventLog -LogName Security -EntryType Error

Digitar o comando acima na interface de linha de comando do PowerShell deve fornecer uma lista de todos os erros registrados no log de eventos de segurança. Observe que você pode usar o parâmetro -List para ver todos os tipos de log em seu sistema e substituir Securityno comando acima por qualquer outro tipo de log que encontrar em sua lista, desde que tenha mais de zero entradas.

Se você quiser saber mais sobre como usar o  comando Get-EventLog  no PowerShell, sinta-se à vontade para usar o  comando Get-Help sobre o qual falamos na primeira seção deste subcapítulo. 

6. ConvertTo-HTML

Às vezes, ao usar o PowerShell, você pode topar com certas informações que deseja extrair e manter para referência futura, criar relatórios ou simplesmente importá-las de um aplicativo diferente. Uma das maneiras mais usadas de extrair esses dados do PowerShell e exportá-los para um arquivo externo em seu computador é o comando ConvertTo-HTML  .

O uso desse comando o ajudará a construir relatórios abrangentes que podem ajudá-lo a analisar as informações extraídas e os insights de uma maneira mais eficaz, fornecendo tabelas HTML que podem ser personalizadas posteriormente adicionando estilos personalizados e dados codificados por cores. Tal como acontece com muitos outros comandos do PowerShell, ConvertTo-HTML não funciona por si só, e você precisará emparelhá-lo com um comando adicional que ele usará como uma entrada (ou uma fonte de dados).

Por exemplo, se você está tentando imprimir um relatório que consiste em todos os serviços que começam com a letra 'W' e estão em execução no seu computador, você pode digitar o comando abaixo:

  • Get-Service "W*" | Where-Object {$_.Status -eq "Running"} | ConvertTo-HTML

Isso fornecerá um código HTML dos dados que você alimentou para a função ConvertTo-HTML, que você pode simplesmente copiar diretamente da interface de linha de comando do PowerShell, colá-lo em seu editor de texto favorito e salvá-lo como um arquivo HTML, que você pode usar para ver o resultado em qualquer navegador da web.

Você pode usar ConvertTo-HTML com virtualmente qualquer comando do PowerShell, contanto que o comando que você está usando como fonte de dados gere saída. Você pode tentar com outros cmdlets, como Get-Process , Get-EventLog ou Get-Help . Observe que, além das conversões HTML, o cmdlet ConvertTo também pode ser usado para gerar arquivos JSON, CSV e XML. Você só precisa substituir o HTML na sintaxe do comando pelo formato no qual está interessado.

7. Export-CSV

Se você estiver trabalhando com vários objetos que você acha que podem se encaixar muito melhor em uma tabela, você pode usar o PowerShell para converter os itens com os quais está lidando atualmente em uma série de strings CSV (valores separados por vírgula) e exportar as strings para um arquivo em um movimento rápido por meio do cmdlet Export-CSV.

Assim como o ConvertTo-HTML, o Export-CSV precisa de uma entrada que possa ser convertida em strings CSV, pois não pode funcionar por conta própria. Portanto, você precisará emparelhá-lo com um comando que pode ser usado para gerar dados, como Get-Service ou Get-Process que explicamos anteriormente.

Essencialmente, Export-CSV faz quase a mesma coisa que o cmdlet ConvertTo-HTML que discutimos acima, exceto por um aspecto importante que não deve ser esquecido: este cmdlet realmente gera um arquivo e o salva em seu computador, ao invés de o comando ConvertTo, que fornece apenas a saída e permite que você crie o arquivo por conta própria.

Vamos supor, por exemplo, que você gostaria de transformar a lista de serviços em execução em seu computador em um arquivo CSV para que possa processar o arquivo com software de terceiros ou colocá-lo em uma planilha para referência futura. Tudo o que você precisa fazer é digitar o comando Get-Service seguido do comando Export-CSV e mencionar um local onde deseja que o arquivo CSV seja gerado, como no exemplo abaixo:

  • Get-Service | Export-CSV c:\Tips.WebTech360.csv

O comando acima irá buscar uma lista de todos os serviços que estão disponíveis em seu computador, rodando ou não, convertendo-os em uma série de strings CSV e salvando o resultado como um arquivo CSV chamado 'Tips.WebTech360' na raiz de seu drive C . Você pode então abrir o arquivo em uma solução de software de terceiros, convertê-lo em uma mesa completa ou apenas armazená-lo para uso futuro.

Folha de cheats do PowerShell - CONCLUSÃO

Embora ainda haja muitas pessoas defendendo o CMD, verdade seja dita que o PowerShell é mais versátil, muito mais poderoso, mas ao mesmo tempo mais complicado de trabalhar do que sua contraparte CMD tradicional. A grande quantidade de recursos, combinada com o fato de que você pode criar scripts de automação no PowerShell e executar operações complicadas de gerenciamento de sistema, deixa o CMD em um cone de sombra.

Se você está apenas começando a descobrir o PowerShell e está lutando para descobrir o que cada comando faz, como canalizar vários comandos ou como criar e executar scripts PowerShell simples por conta própria, nosso guia é um excelente ponto de partida. Dedicamos nosso tempo para explicar alguns dos comandos mais importantes que você deve conhecer no PowerShell, criamos alguns tutoriais curtos e também incluímos uma lista de comandos básicos do PowerShell, seus aliases e descrições curtas para cada item, apenas para simplificar sua jornada de descoberta do PowerShell.


6 melhores ferramentas de gerenciamento de rede que acompanham o desempenho

6 melhores ferramentas de gerenciamento de rede que acompanham o desempenho

O mercado de software de gerenciamento de rede está muito lotado. Atalho sua pesquisa seguindo nossas recomendações das melhores ferramentas de gerenciamento de rede.

10 melhores ferramentas de varredura de ping para saber mais sobre sua rede

10 melhores ferramentas de varredura de ping para saber mais sobre sua rede

As varreduras de ping podem ser usadas em seu benefício de várias maneiras. Continue lendo enquanto discutimos como e apresentamos as 10 melhores ferramentas de varredura de ping que você pode encontrar.

6 melhores ferramentas para monitorar sites

6 melhores ferramentas para monitorar sites

Os sites são importantes e devem ser constantemente monitorados de perto para um desempenho adequado. Aqui estão algumas das melhores ferramentas para monitorar sites.

Melhores ferramentas de implantação de software para equipes de desenvolvimento em 2022

Melhores ferramentas de implantação de software para equipes de desenvolvimento em 2022

Aqui está uma olhada em algumas das melhores ferramentas de implantação de software para aliviar a dor de gerenciar qualquer número de máquinas

Lista de verificação de conformidade HIPAA e ferramentas a serem usadas

Lista de verificação de conformidade HIPAA e ferramentas a serem usadas

Se você está no setor de saúde ou de alguma forma envolvido com TI nesse setor, é provável que já tenha ouvido falar do HIPAA. A portabilidade do seguro saúde

Melhores ferramentas e software de monitoramento de infraestrutura sem agente em 2021

Melhores ferramentas e software de monitoramento de infraestrutura sem agente em 2021

Para ajudá-lo a escolher a certa, apresentamos as melhores ferramentas de monitoramento de infraestrutura sem agente e fornecemos uma revisão rápida de cada uma delas.

SolarWinds Mail Assure - REVER 2021

SolarWinds Mail Assure - REVER 2021

A segurança de e-mail é uma tarefa importante dos provedores de serviços gerenciados. Estamos analisando o SolarWinds Mail Assure, uma das melhores ferramentas para esse fim.

Folha de referências dos comandos do Windows PowerShell - O guia definitivo de que você precisa

Folha de referências dos comandos do Windows PowerShell - O guia definitivo de que você precisa

Se você é um usuário avançado do Windows, provavelmente conhece e entende como executar várias operações em seu PC pode ter mais do que apenas uma abordagem e

Melhores ferramentas de teste e monitoramento de latência de rede em 2021

Melhores ferramentas de teste e monitoramento de latência de rede em 2021

A latência parece ser o inimigo número um das redes. Essas ferramentas de medição de latência ensinam como testar a latência para detectar, localizar e corrigir problemas.

Melhores ferramentas de monitoramento de rede para Windows 10 em 2021

Melhores ferramentas de monitoramento de rede para Windows 10 em 2021

O monitor de rede do Windows requer ferramentas com requisitos limitados. Hoje, estamos dando uma olhada nas melhores ferramentas de monitoramento de rede para Windows 10.