Snabbstart för PowerShell i Azure Cloud Shell

Det här dokumentet beskriver hur du använder PowerShell i Cloud Shell i Azure Portal.

Anteckning

En Bash i Azure Cloud Shell snabbstart är också tillgänglig.

Starta Cloud Shell

  1. Klicka på Cloud Shell i det övre navigeringsfältet i Azure Portal

    Skärmbild som visar hur du Azure Cloud Shell från Azure Portal.

  2. Välj PowerShell-miljön i listrutan så kommer du till Azure-enheten (Azure:)

    Skärmbild som visar hur du väljer PowerShell-miljön för Azure Cloud Shell.

Köra PowerShell-kommandon

Kör vanliga PowerShell-kommandon i Cloud Shell, till exempel:

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

Interagera med virtuella datorer

Du hittar alla dina virtuella datorer under den aktuella prenumerationen via VirtualMachines katalog.

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

Anropa PowerShell-skript över fjärranslutna virtuella datorer

Förutsatt att du har en virtuell dator, MyVM1, ska vi använda för att Invoke-AzVMCommand anropa ett PowerShell-skriptblock på fjärrdatorn.

Enable-AzVMPSRemoting -Name MyVM1 -ResourceGroupname MyResourceGroup
Invoke-AzVMCommand -Name MyVM1 -ResourceGroupName MyResourceGroup -Scriptblock {Get-ComputerInfo} -Credential (Get-Credential)

Du kan också navigera till katalogen VirtualMachines först och köra Invoke-AzVMCommand på följande sätt.

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

# 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                           :
 ...

Logga in interaktivt på en fjärransluten virtuell dator

Du kan använda för Enter-AzVM att interaktivt logga in på en virtuell dator som körs i Azure.

PS Azure:\> Enter-AzVM -Name MyVM1 -ResourceGroupName MyResourceGroup -Credential (Get-Credential)

Du kan också navigera till VirtualMachines katalogen först och köra på följande Enter-AzVM sätt:

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

Upptäck WebApps

Genom att ange i WebApps katalogen kan du enkelt navigera bland dina webbappresurser

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

SSH

Om du vill autentisera till servrar eller virtuella datorer med hjälp av SSH genererar du det offentliga/privata nyckelparet i Cloud Shell och publicerar den offentliga nyckeln till på authorized_keys fjärrdatorn, till exempel /home/user/.ssh/authorized_keys .

Anteckning

Du kan skapa privata och offentliga SSH-nycklar med ssh-keygen hjälp av och publicera dem i $env:USERPROFILE\.ssh Cloud Shell.

Använda SSH

Följ anvisningarna här för att skapa en ny VM-konfiguration Azure PowerShell cmdlets. Innan du anropar New-AzVM för att starta distributionen lägger du till offentlig SSH-nyckel i VM-konfigurationen. Den nyligen skapade virtuella datorn innehåller den offentliga nyckeln på platsen, vilket möjliggör ~\.ssh\authorized_keys en SSH-session utan autentiseringsuppgifter för den virtuella datorn.

# 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

Lista tillgängliga kommandon

Under Azure enhet skriver du för att hämta Get-AzCommand kontextspecifika Azure-kommandon.

Du kan också alltid använda för att Get-Command *az* -Module Az.* ta reda på tillgängliga Azure-kommandon.

Installera anpassade moduler

Du kan köra Install-Module för att installera moduler från PowerShell-galleriet.

Get-Help

Skriv Get-Help för att få information om PowerShell i Azure Cloud Shell.

Get-Help

För ett visst kommando kan du fortfarande göra Get-Help följt av en cmdlet.

Get-Help Get-AzVM

Använda Azure Files för att lagra dina data

Du kan skapa ett skript, t.ex. helloworld.ps1 , och spara det för att använda det mellan clouddrive shell-sessioner.

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!

Nästa gång du använder PowerShell i Cloud Shell finns filen under katalogen som monterar din helloworld.ps1 $HOME\clouddrive Azure Files resurs.

Använda anpassad profil

Du kan anpassa Din PowerShell-miljö genom att skapa PowerShell-profiler – profile.ps1 (eller Microsoft.PowerShell_profile.ps1 ). Spara den under $profile.CurrentUserAllHosts (eller $profile.CurrentUserAllHosts ), så att den kan läsas in i varje PowerShell Cloud Shell session.

Information om hur du skapar en profil finns i Om profiler.

Använda Git

Om du vill klona en Git-lagringsplatsen i Cloud Shell måste du skapa en personlig åtkomsttoken och använda den som användarnamn. När du har din token klonar du lagringsplatsen på följande sätt:

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

Lämna gränssnittet

Skriv exit för att avsluta sessionen.