Início rápido do PowerShell no Azure Cloud ShellQuickstart for PowerShell in Azure Cloud Shell

Este documento fornece detalhes sobre como usar o PowerShell no Cloud Shell no Portal do Azure.This document details how to use the PowerShell in Cloud Shell in the Azure portal.

Observação

Um início rápido do Bash no Azure Cloud Shell também está disponível.A Bash in Azure Cloud Shell Quickstart is also available.

Observação

Este artigo foi atualizado para usar o novo módulo Az do Azure PowerShell.This article has been updated to use the new Azure PowerShell Az module. Você ainda pode usar o módulo AzureRM, que continuará a receber as correções de bugs até pelo menos dezembro de 2020.You can still use the AzureRM module, which will continue to receive bug fixes until at least December 2020. Para saber mais sobre o novo módulo Az e a compatibilidade com o AzureRM, confira Apresentação do novo módulo Az do Azure PowerShell.To learn more about the new Az module and AzureRM compatibility, see Introducing the new Azure PowerShell Az module. Para obter instruções de instalação do módulo Az, confira Instalar o Azure PowerShell.For Az module installation instructions, see Install Azure PowerShell.

Iniciar o Cloud ShellStart Cloud Shell

  1. Clique no botão Cloud Shell no painel de navegação superior do portal do AzureClick on Cloud Shell button from the top navigation bar of the Azure portal

  2. Selecione o ambiente do PowerShell na lista suspensa e você irá para unidade do Azure(Azure:)Select the PowerShell environment from the drop-down and you will be in Azure drive (Azure:)

Executar comandos do PowerShellRun PowerShell commands

Execute comandos regulares do PowerShell no Cloud Shell, tais como:Run regular PowerShell commands in the Cloud Shell, such as:

PS Azure:\> Get-Date

# Expected Output
Friday, July 27, 2018 7:08:48 AM

PS Azure:\> Get-AzVM -Status

# Expected Output
ResourceGroupName       Name       Location                VmSize   OsType     ProvisioningState  PowerState
-----------------       ----       --------                ------   ------     -----------------  ----------
MyResourceGroup2        Demo        westus         Standard_DS1_v2  Windows    Succeeded           running
MyResourceGroup         MyVM1       eastus            Standard_DS1  Windows    Succeeded           running
MyResourceGroup         MyVM2       eastus   Standard_DS2_v2_Promo  Windows    Succeeded           deallocated
  1. Listar todas as suas assinaturas da Azure unidadeList all your subscriptions from Azure drive

    PS Azure:\> dir
    
  2. cd para sua assinatura preferencialcd to your preferred subscription

    PS Azure:\> cd MySubscriptionName
    PS Azure:\MySubscriptionName>
    
  3. Exibir todos os seus recursos do Azure na assinatura atualView all your Azure resources under the current subscription

    Digite dir para listar vários modos de exibição de recursos do Azure.Type dir to list multiple views of your Azure resources.

    PS Azure:\MySubscriptionName> dir
    
        Directory: azure:\MySubscriptionName
    
    Mode Name
    ---- ----
    +    AllResources
    +    ResourceGroups
    +    StorageAccounts
    +    VirtualMachines
    +    WebApps
    

Exibição de AllResourcesAllResources view

Digite dir no diretório AllResources para exibir os recursos do Azure.Type dir under AllResources directory to view your Azure resources.

PS Azure:\MySubscriptionName> dir AllResources

Explorar grupos de recursosExplore resource groups

Você pode ir para o diretório ResourceGroups e, dentro de um grupo de recursos específico, é possível encontrar máquinas virtuais.You can go to the ResourceGroups directory and inside a specific resource group you can find virtual machines.

PS Azure:\MySubscriptionName> cd ResourceGroups\MyResourceGroup1\Microsoft.Compute\virtualMachines

PS Azure:\MySubscriptionName\ResourceGroups\MyResourceGroup1\Microsoft.Compute\virtualMachines> dir


    Directory: Azure:\MySubscriptionName\ResourceGroups\MyResourceGroup1\Microsoft.Compute\virtualMachines


VMName    Location   ProvisioningState VMSize          OS            SKU             OSVersion AdminUserName  NetworkInterfaceName
------    --------   ----------------- ------          --            ---             --------- -------------  --------------------
TestVm1   westus     Succeeded         Standard_DS2_v2 WindowsServer 2016-Datacenter Latest    AdminUser      demo371
TestVm2   westus     Succeeded         Standard_DS1_v2 WindowsServer 2016-Datacenter Latest    AdminUser      demo271

Observação

Pode-se perceber que ao digitar dir pela segunda vez, o Cloud Shell consegue exibir os itens muito mais rapidamente.You may notice that the second time when you type dir, the Cloud Shell is able to display the items much faster. Isso ocorre porque os itens filhos são armazenados em cache na memória para oferecer uma melhor experiência de usuário.This is because the child items are cached in memory for a better user experience. No entanto, você sempre pode usar dir -Force para obter dados atualizados.However, you can always use dir -Force to get fresh data.

Ao entrar no diretório StorageAccounts, você pode navegar facilmente por todos os seus recursos de armazenamentoBy entering into the StorageAccounts directory, you can easily navigate all your storage resources

PS Azure:\MySubscriptionName\StorageAccounts\MyStorageAccountName\Files> dir

    Directory: Azure:\MySubscriptionNameStorageAccounts\MyStorageAccountName\Files

Name          ConnectionString
----          ----------------
MyFileShare1  \\MyStorageAccountName.file.core.windows.net\MyFileShare1;AccountName=MyStorageAccountName AccountKey=<key>
MyFileShare2  \\MyStorageAccountName.file.core.windows.net\MyFileShare2;AccountName=MyStorageAccountName AccountKey=<key>
MyFileShare3  \\MyStorageAccountName.file.core.windows.net\MyFileShare3;AccountName=MyStorageAccountName AccountKey=<key>

Com a cadeia de conexão, você pode usar o comando a seguir para montar o compartilhamento de arquivos do Azure.With the connection string, you can use the following command to mount the Azure Files share.

net use <DesiredDriveLetter>: \\<MyStorageAccountName>.file.core.windows.net\<MyFileShareName> <AccountKey> /user:Azure\<MyStorageAccountName>

Para obter detalhes, consulte montar um compartilhamento de arquivos do Azure e acessar o compartilhamento no Windows.For details, see Mount an Azure Files share and access the share in Windows.

Você também pode navegar pelos diretórios no compartilhamento de arquivos do Azure da seguinte maneira:You can also navigate the directories under the Azure Files share as follows:

PS Azure:\MySubscriptionName\StorageAccounts\MyStorageAccountName\Files> cd .\MyFileShare1\
PS Azure:\MySubscriptionName\StorageAccounts\MyStorageAccountName\Files\MyFileShare1> dir

Mode  Name
----  ----
+     TestFolder
.     hello.ps1

Interagir com máquinas virtuaisInteract with virtual machines

Você pode encontrar todas as suas máquinas virtuais da assinatura atual por meio do diretório VirtualMachines.You can find all your virtual machines under the current subscription via VirtualMachines directory.

PS Azure:\MySubscriptionName\VirtualMachines> dir

    Directory: Azure:\MySubscriptionName\VirtualMachines


Name       ResourceGroupName  Location  VmSize          OsType              NIC ProvisioningState  PowerState
----       -----------------  --------  ------          ------              --- -----------------  ----------
TestVm1    MyResourceGroup1   westus    Standard_DS2_v2 Windows       my2008r213         Succeeded     stopped
TestVm2    MyResourceGroup1   westus    Standard_DS1_v2 Windows          jpstest         Succeeded deallocated
TestVm10   MyResourceGroup2   eastus    Standard_DS1_v2 Windows           mytest         Succeeded     running

Invocar o script do PowerShell entre VMs remotasInvoke PowerShell script across remote VMs

Supondo que você tenha uma VM, MyVM1, vamos usar Invoke-AzVMCommand para invocar um bloco de script do PowerShell no computador remoto.Assuming you have a VM, MyVM1, let's use Invoke-AzVMCommand to invoke a PowerShell script block on the remote machine.

Invoke-AzVMCommand -Name MyVM1 -ResourceGroupName MyResourceGroup -Scriptblock {Get-ComputerInfo} -EnableRemoting

Você também pode primeiro navegar até o diretório VirtualMachines e executar Invoke-AzVMCommand como mostrado a seguir.You can also navigate to the VirtualMachines directory first and run Invoke-AzVMCommand as follows.

PS Azure:\> cd MySubscriptionName\MyResourceGroup\Microsoft.Compute\virtualMachines
PS Azure:\MySubscriptionName\MyResourceGroup\Microsoft.Compute\virtualMachines> Get-Item MyVM1 | Invoke-AzVMCommand -Scriptblock {Get-ComputerInfo}

# You will see output similar to the following:

PSComputerName                                          : 65.52.28.207
RunspaceId                                              : 2c2b60da-f9b9-4f42-a282-93316cb06fe1
WindowsBuildLabEx                                       : 14393.1066.amd64fre.rs1_release_sec.170327-1835
WindowsCurrentVersion                                   : 6.3
WindowsEditionId                                        : ServerDatacenter
WindowsInstallationType                                 : Server
WindowsInstallDateFromRegistry                          : 5/18/2017 11:26:08 PM
WindowsProductId                                        : 00376-40000-00000-AA947
WindowsProductName                                      : Windows Server 2016 Datacenter
WindowsRegisteredOrganization                           :
 ...

Fazer logon interativamente em uma VM remotaInteractively log on to a remote VM

Você pode usar Enter-AzVM para fazer logon interativamente em uma VM em execução no Azure.You can use Enter-AzVM to interactively log into a VM running in Azure.

PS Azure:\> Enter-AzVM -Name MyVM1 -ResourceGroupName MyResourceGroup -EnableRemoting

Você também pode primeiro navegar até o diretório VirtualMachines e executar Enter-AzVM como mostrado a seguirYou can also navigate to the VirtualMachines directory first and run Enter-AzVM as follows

PS Azure:\MySubscriptionName\ResourceGroups\MyResourceGroup\Microsoft.Compute\virtualMachines> Get-Item MyVM1 | Enter-AzVM

Descobrir WebAppsDiscover WebApps

Inserindo no WebApps diretório, você pode navegar facilmente seus recursos de aplicativos webBy entering into the WebApps directory, you can easily navigate your web apps resources

PS Azure:\MySubscriptionName> dir .\WebApps\

    Directory: Azure:\MySubscriptionName\WebApps

Name            State    ResourceGroup      EnabledHostNames                  Location
----            -----    -------------      ----------------                  --------
mywebapp1       Stopped  MyResourceGroup1   {mywebapp1.azurewebsites.net...   West US
mywebapp2       Running  MyResourceGroup2   {mywebapp2.azurewebsites.net...   West Europe
mywebapp3       Running  MyResourceGroup3   {mywebapp3.azurewebsites.net...   South Central US

# You can use Azure cmdlets to Start/Stop your web apps
PS Azure:\MySubscriptionName\WebApps> Start-AzWebApp -Name mywebapp1 -ResourceGroupName MyResourceGroup1

Name           State    ResourceGroup        EnabledHostNames                   Location
----           -----    -------------        ----------------                   --------
mywebapp1      Running  MyResourceGroup1     {mywebapp1.azurewebsites.net ...   West US

# Refresh the current state with -Force
PS Azure:\MySubscriptionName\WebApps> dir -Force

    Directory: Azure:\MySubscriptionName\WebApps

Name            State    ResourceGroup      EnabledHostNames                  Location
----            -----    -------------      ----------------                  --------
mywebapp1       Running  MyResourceGroup1   {mywebapp1.azurewebsites.net...   West US
mywebapp2       Running  MyResourceGroup2   {mywebapp2.azurewebsites.net...   West Europe
mywebapp3       Running  MyResourceGroup3   {mywebapp3.azurewebsites.net...   South Central US

SSHSSH

Para autenticar servidores ou VMs usando o SSH, gere o par de chaves privadas/públicas no Cloud Shell e publique a chave pública para authorized_keys no computador remoto, como /home/user/.ssh/authorized_keys.To authenticate to servers or VMs using SSH, generate the public-private key pair in Cloud Shell and publish the public key to authorized_keys on the remote machine, such as /home/user/.ssh/authorized_keys.

Observação

É possível criar chaves privadas/públicas SSH usando ssh-keygen e publicá-las para $env:USERPROFILE\.ssh no Cloud Shell.You can create SSH private-public keys using ssh-keygen and publish them to $env:USERPROFILE\.ssh in Cloud Shell.

Usando o SSHUsing SSH

Siga as instruções aqui para criar uma nova configuração de VM usando cmdlets Azure PowerShell.Follow instructions here to create a new VM configuration using Azure PowerShell cmdlets. Antes de chamar em New-AzVM para iniciar a implantação, adicione chave pública SSH à configuração da VM.Before calling into New-AzVM to kick off the deployment, add SSH public key to the VM configuration. A VM recém-criada conterá a chave pública no local ~\.ssh\authorized_keys, permitindo assim a sessão SSH sem credenciais para a VM.The newly created VM will contain the public key in the ~\.ssh\authorized_keys location, thereby enabling credential-free SSH session to the VM.

# Create VM config object - $vmConfig using instructions on linked page above

# Generate SSH keys in Cloud Shell
ssh-keygen -t rsa -b 2048 -f $HOME\.ssh\id_rsa 

# Ensure VM config is updated with SSH keys
$sshPublicKey = Get-Content "$HOME\.ssh\id_rsa.pub"
Add-AzVMSshPublicKey -VM $vmConfig -KeyData $sshPublicKey -Path "/home/azureuser/.ssh/authorized_keys"

# Create a virtual machine
New-AzVM -ResourceGroupName <yourResourceGroup> -Location <vmLocation> -VM $vmConfig

# SSH to the VM
ssh azureuser@MyVM.Domain.Com

Listar comandos disponíveisList available commands

Na unidade Azure, digite Get-AzCommand para obter comandos do Azure específicos ao contexto.Under Azure drive, type Get-AzCommand to get context-specific Azure commands.

Como alternativa, você pode sempre usar Get-Command *az* -Module Az.* para descobrir os comandos disponíveis do Azure.Alternatively, you can always use Get-Command *az* -Module Az.* to find out the available Azure commands.

Instalar módulos personalizadosInstall custom modules

Você pode executar Install-Module o para instalar os módulos do Galeria do PowerShell.You can run Install-Module to install modules from the PowerShell Gallery.

Get-HelpGet-Help

Digite Get-Help para obter informações sobre o PowerShell no Azure Cloud Shell.Type Get-Help to get information about PowerShell in Azure Cloud Shell.

Get-Help

Para um comando específico, você também pode executar Get-Help seguido de um cmdlet, por exemplo.For a specific command, you can still do Get-Help followed by a cmdlet.

Get-Help Get-AzVM

Usar os Arquivos do Azure para armazenar seus dadosUse Azure Files to store your data

Você pode criar um script, digamos helloworld.ps1, e salvá-lo em seu clouddrive para usá-lo em sessões de shell.You can create a script, say helloworld.ps1, and save it to your clouddrive to use it across shell sessions.

cd $HOME\clouddrive
# Create a new file in clouddrive directory
New-Item helloworld.ps1
# Open the new file for editing
code .\helloworld.ps1
# Add the content, such as 'Hello World!'
.\helloworld.ps1
Hello World!

Na próxima vez que utilizar o PowerShell no Cloud Shell, o arquivo helloworld.ps1 estará no diretório $HOME\clouddrive que monta o compartilhamento de arquivos do Azure.Next time when you use PowerShell in Cloud Shell, the helloworld.ps1 file will exist under the $HOME\clouddrive directory that mounts your Azure Files share.

Usar perfil personalizadoUse custom profile

Você pode personalizar seu ambiente do PowerShell criando perfis do PowerShell - profile.ps1 (ou Microsoft.PowerShell_profile.ps1).You can customize your PowerShell environment, by creating PowerShell profile(s) - profile.ps1 (or Microsoft.PowerShell_profile.ps1). Salve-o em $profile.CurrentUserAllHosts (ou $profile.CurrentUserAllHosts), de modo que ele pode ser carregado em cada PowerShell na sessão do Cloud Shell.Save it under $profile.CurrentUserAllHosts (or $profile.CurrentUserAllHosts), so that it can be loaded in every PowerShell in Cloud Shell session.

Para saber como criar um perfil, consulte aboutProfiles.For how to create a profile, refer to About Profiles.

Usar o GitUse Git

Para clonar um repositório git no Cloud Shell, você precisa criar um token de acesso pessoal e usá-lo como o nome de usuário.To clone a Git repo in the Cloud Shell, you need to create a personal access token and use it as the username. Quando tiver seu token, faça um clone do repositório da seguinte maneira:Once you have your token, clone the repository as follows:

  git clone https://<your-access-token>@github.com/username/repo.git

Sair do shellExit the shell

Digite exit para encerrar a sessão.Type exit to terminate the session.