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
Klicka på Cloud Shell i det övre navigeringsfältet i Azure Portal

Välj PowerShell-miljön i listrutan så kommer du till Azure-enheten
(Azure:)
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
Varning
Mer information finns i Felsöka fjärrhantering av virtuella Azure-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.