Démarrage rapide de PowerShell dans Azure Cloud Shell (préversion)Quickstart for PowerShell in Azure Cloud Shell (Preview)

Ce document explique comment utiliser PowerShell dans Cloud Shell dans le portail Azure.This document details how to use the PowerShell in Cloud Shell in the Azure portal.

Note

Un démarrage rapide de Bash dans Azure Cloud Shell est également disponible.A Bash in Azure Cloud Shell Quickstart is also available.

Démarrer Cloud ShellStart Cloud Shell

  1. Cliquez sur le bouton Cloud Shell dans la barre de navigation supérieure du portail AzureClick on Cloud Shell button from the top navigation bar of the Azure portal

  2. Sélectionnez l’environnement PowerShell à partir de la liste déroulante pour basculer vers le lecteur Azure(Azure:)Select the PowerShell environment from the drop-down and you will be in Azure drive (Azure:)

Exécuter des commandes PowerShellRun PowerShell commands

Exécuter des commandes PowerShell normales dans Cloud Shell, telles que :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-AzureRmVM -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. Répertorier tous vos abonnements à partir du lecteur AzureList all your subscriptions from Azure drive

    PS Azure:\> dir
    
  2. cd sur votre abonnement préférécd to your preferred subscription

    PS Azure:\> cd MySubscriptionName
    PS Azure:\MySubscriptionName>
    
  3. Afficher toutes vos ressources Azure sous l’abonnement actuelView all your Azure resources under the current subscription

    Saisir dir pour répertorier plusieurs vues de vos ressources 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
    

Vue AllResourcesAllResources view

Saisissez dir sous le répertoire AllResources pour afficher vos ressources Azure.Type dir under AllResources directory to view your Azure resources.

PS Azure:\MySubscriptionName> dir AllResources

Explorer les groupes de ressourcesExplore resource groups

Vous pouvez accéder au répertoire ResourceGroups et à l’intérieur d’un groupe de ressources spécifique rechercher des machines virtuelles.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

Note

Vous pouvez remarquer que la deuxième fois que vous tapez dir, Cloud Shell est en mesure d’afficher les éléments beaucoup plus rapidement.You may notice that the second time when you type dir, the Cloud Shell is able to display the items much faster. Cela est rendu possible par les éléments enfants mis en mémoire cache pour améliorer l’expérience utilisateur.This is because the child items are cached in memory for a better user experience. Toutefois, vous pouvez toujours utiliser dir -Force pour obtenir des données actualisées.However, you can always use dir -Force to get fresh data.

En accédant au répertoire StorageAccounts, vous pouvez facilement parcourir la totalité de vos ressources de stockage.By 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>

La chaîne de connexion vous permet d’utiliser la commande suivante pour monter le partage Azure Files.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>

Pour en savoir plus, consultez Montage d’un partage Azure Files et accès au partage dans Windows.For details, see Mount an Azure Files share and access the share in Windows.

Vous pouvez également parcourir les répertoires sous le partage Azure Files comme suit :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 avec des machines virtuellesInteract with virtual machines

Vous pouvez trouver toutes vos machines virtuelles sous l’abonnement actuel via le répertoire 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

Appeler un script PowerShell sur les machines virtuelles à distanceInvoke PowerShell script across remote VMs

En supposant que vous avez une machine virtuelle, MyVM1, utilisons Invoke-AzureRmVMCommand pour appeler un bloc de script PowerShell sur la machine distante.Assuming you have a VM, MyVM1, let's use Invoke-AzureRmVMCommand to invoke a PowerShell script block on the remote machine.

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

Vous pouvez également commencer par accéder au répertoire virtualMachines, puis exécuter Invoke-AzureRmVMCommand comme suit.You can also navigate to the VirtualMachines directory first and run Invoke-AzureRmVMCommand as follows.

PS Azure:\> cd MySubscriptionName\MyResourceGroup\Microsoft.Compute\virtualMachines
PS Azure:\MySubscriptionName\MyResourceGroup\Microsoft.Compute\virtualMachines> Get-Item MyVM1 | Invoke-AzureRmVMCommand -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                           :
 ...

Se connecter de manière interactive à une machine virtuelle à distanceInteractively log on to a remote VM

Vous pouvez utiliser Enter-AzureRmVM pour la connexion interactive à une machine virtuelle s’exécutant dans Azure.You can use Enter-AzureRmVM to interactively log into a VM running in Azure.

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

Vous pouvez également commencer par naviguer vers le répertoire VirtualMachines et exécuter Enter-AzureRmVM comme suit.You can also navigate to the VirtualMachines directory first and run Enter-AzureRmVM as follows

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

Découvrir les applications webDiscover WebApps

En accédant au répertoire WebApps, vous pouvez facilement parcourir vos ressources d’applications web.By 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-AzureRmWebApp -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

Pour vous authentifier auprès des serveurs ou machines virtuelles à l’aide de SSH, générez la paire de clés publique/privée dans le Cloud Shell et publiez la clé publique dans authorized_keys sur l’ordinateur distant, tel que /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.

Note

Vous pouvez créer des clés publique/privée SSH à l’aide de ssh-keygen et les publier sur $env:USERPROFILE\.ssh dans le Cloud Shell.You can create SSH private-public keys using ssh-keygen and publish them to $env:USERPROFILE\.ssh in Cloud Shell.

Utilisation de SSHUsing SSH

Suivez les instructions fournies ici pour créer une configuration de machine virtuelle à l’aide d’applets de commande AzureRM.Follow instructions here to create a new VM configuration using AzureRM cmdlets. Avant d’appeler New-AzureRmVM pour lancer le déploiement, ajoutez la clé publique SSH à la configuration de machine virtuelle.Before calling into New-AzureRmVM to kick off the deployment, add SSH public key to the VM configuration. La machine virtuelle créée contient la clé publique à l’emplacement ~\.ssh\authorized_keys ; vous pouvez ainsi ouvrir une session SSH sur la machine virtuelle sans recourir à des informations d’identification.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-AzureRmVMSshPublicKey -VM $vmConfig -KeyData $sshPublicKey -Path "/home/azureuser/.ssh/authorized_keys"

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

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

Répertorier les commandes disponiblesList available commands

Sous le lecteur Azure, tapez Get-AzureRmCommand pour obtenir les commandes Azure spécifiques au contexte.Under Azure drive, type Get-AzureRmCommand to get context-specific Azure commands.

Vous pouvez également continuer d’utiliser Get-Command *azurerm* -Module AzureRM.* pour rechercher les commandes Azure disponibles.Alternatively, you can always use Get-Command *azurerm* -Module AzureRM.* to find out the available Azure commands.

Installer des modules personnalisésInstall custom modules

Vous pouvez exécuter Install-Module pour installer les modules à partir de PowerShell Gallery.You can run Install-Module to install modules from the PowerShell Gallery.

Get-HelpGet-Help

Tapez Get-Help pour obtenir des informations sur PowerShell dans Azure Cloud Shell.Type Get-Help to get information about PowerShell in Azure Cloud Shell.

Get-Help

Pour une commande spécifique, vous pouvez toujours exécuter Get-Help suivi d’une applet de commande.For a specific command, you can still do Get-Help followed by a cmdlet.

Get-Help Get-AzureRmVM

Utiliser Azure Files pour stocker vos donnéesUse Azure Files to store your data

Vous pouvez créer un script, par exemple helloworld.ps1, et l’enregistrer dans votre clouddrive pour l’utiliser dans les sessions d’interpréteur de commandes.You can create a script, say helloworld.ps1, and save it to your clouddrive to use it across shell sessions.

cd $HOME\clouddrive
code .\helloworld.ps1
# Add the content, such as 'Hello World!'
.\helloworld.ps1
Hello World!

La prochaine fois que vous utiliserez PowerShell dans Cloud Shell, le fichier helloworld.ps1 existera sous le répertoire $HOME\clouddrive qui monte le partage de fichiers 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.

Utiliser le profil personnaliséUse custom profile

Vous pouvez personnaliser votre environnement PowerShell en créant un ou plusieurs profils 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). Enregistrez ces profils sous $profile.CurrentUserAllHosts (ou $profile.CurrentUserAllHosts) pour qu’ils puissent être chargés dans chaque session PowerShell dans Cloud Shell.Save it under $profile.CurrentUserAllHosts (or $profile.CurrentUserAllHosts), so that it can be loaded in every PowerShell in Cloud Shell session.

Pour savoir comment créer un profil, consultez À propos des profils.For how to create a profile, refer to About Profiles.

Utiliser GitUse Git

Pour cloner un dépôt Git dans le Cloud Shell, vous devez créer un jeton d’accès personnel et l’utiliser comme nom d’utilisateur.To clone a Git repo in the Cloud Shell, you need to create a personal access token and use it as the username. Dès que vous disposez de votre jeton, clonez le dépôt comme suit :Once you have your token, clone the repository as follows:

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

Quittez l’interpréteur de commandes.Exit the shell

Entrez exit pour mettre fin à la session.Type exit to terminate the session.