Delen via


PowerShell-aanvragen voor de Uitvoeringsopdracht op servers met Azure Arc (Preview)

Met de PowerShell-opdrachten voor de Verbindingsmachine-uitvoeringsopdracht kunt u op afstand en veilig scripts of opdrachten uitvoeren op Arc-compatibele virtuele machines, zonder er rechtstreeks verbinding mee te maken via Remote Desktop Protocol of SSH.

Dit artikel bevat voorbeelden die verschillende PowerShell-opdrachten gebruiken om te begrijpen hoe u PowerShell gebruikt om scripts of opdrachten uit te voeren op uw server met Arc.

Vereiste voorwaarden

  • De versie van de Connected Machine-agent op de server met Arc moet 1.33 of hoger zijn.

PowerShell-voorbeeldaanvragen

In de volgende voorbeelden worden verschillende PowerShell-opdrachten gebruikt om te werken met run-opdrachten op een server met Arc.

Een script uitvoeren op een computer

Met deze opdracht wordt het script aan de machine geleverd, uitgevoerd en wordt de vastgelegde uitvoer geretourneerd.

New-AzConnectedMachineRunCommand -ResourceGroupName "myRG" -MachineName "myMachine" -Location "eastus" -RunCommandName "RunCommandName" –SourceScript "echo Hello World!"

Opmerking

U kunt meerdere opdrachten toevoegen in de -SourceScript parameter. Gebruik ; om elke opdracht te scheiden. Voorbeeld: –SourceScript "id; echo Hello World!"

Een script uitvoeren op de computer met behulp van een scriptbestand in de opslag

Met deze opdracht wordt de Connected Machine-agent omgeschakeld naar een SAS-URI (Shared Access Signature) voor een opslagblob waar een script is geüpload, waarna de agent wordt omgeschakeld om het script uit te voeren en de vastgelegde uitvoer te retourneren.

New-AzConnectedMachineRunCommand -ResourceGroupName "MyRG0" -MachineName "MyMachine" -RunCommandName "MyRunCommand" -Location "eastus" -SourceScriptUri “< SAS URI of a storage blob with read access or public URI>”

Opmerking

Het scriptUri is een SAS-URI (Shared Access Signature) voor de opslagblob en moet leestoegang tot de blob bieden. Er wordt een verlooptijd van 24 uur voorgesteld voor de SAS-URI. U kunt een SAS-URI genereren in Azure Portal met behulp van blobs-opties of SAS-token met behulp van New-AzStorageBlobSASToken. Als u een SAS-token genereert met behulp van New-AzStorageBlobSASToken, is de SAS-URI-indeling: base blob URL + "?" + het SAS-token van New-AzStorageBlobSASToken.

Een lijst weergeven van alle geïmplementeerde run-opdrachtbronnen op een computer

Met deze opdracht wordt een volledige lijst met eerder geïmplementeerde run-opdrachten geretourneerd, samen met de bijbehorende eigenschappen.

Get-AzConnectedMachineRunCommand -ResourceGroupName "myRG" -MachineName "myMachine"

Uitvoeringsstatus en -resultaten ophalen

Met deze opdracht wordt de huidige uitvoeringsvoortgang opgehaald voor een opdracht Uitvoeren, inclusief de meest recente uitvoer, de begin- en eindtijd, afsluitcode en de terminalstatus van de uitvoering.

Get-AzConnectedMachineRunCommand -ResourceGroupName "myRG" - MachineName "myMachine" -RunCommandName "RunCommandName"

Statusinformatie ophalen voor een Run-opdracht via Instance View

Statusinformatie ophalen voor een uitvoeropdracht op de machine met exemplaarweergave. De exemplaarweergave bevat de uitvoeringsstatus van de opdracht Uitvoeren (geslaagd, mislukt, enzovoort), afsluitcode, standaarduitvoer en standaardfout die wordt gegenereerd door het uitvoeren van het script. Een andere afsluitcode dan nul geeft een mislukte uitvoering van het programma aan.

Get-AzConnectedMachineRunCommand -ResourceGroupName "MyRG" -MachineName "MyMachine" -RunCommandName "MyRunCommand"

Naast andere informatie retourneert het antwoord deze velden:

  • InstanceViewExecutionState: Status van het Run-opdrachtscript. Raadpleeg deze status om te weten of uw script al dan niet is geslaagd.

  • ProvisioningState: Status van de volledige levering van algemene extensies (of het extensieplatform het script voor het uitvoeren van opdrachten kon starten of niet).

Run Command maken of bijwerken op een computer en standaarduitvoer en standaardfoutberichten vastleggen

Maak of werk de Run-opdracht op een machine bij en stream standaarduitvoer en standaardfoutberichten naar uitvoerings- en fout-toevoegingsblobs.

New-AzConnectedMachineRunCommand -ResourceGroupName "MyRG0" - MachineName "MyMachine" -RunCommandName "MyRunCommand3" -Location "eastus" -SourceScript "id; echo HelloWorld" -OutputBlobUri <OutPutBlobUrI> -ErrorBlobUri <ErrorBlobUri>

Opmerking

Uitvoer- en fout-blobs moeten het type AppendBlob zijn en hun SAS-URI's moeten lees-, toevoeg-, maak- en schrijftoegang bieden tot de blob. Er wordt een verlooptijd van 24 uur voorgesteld voor sas-URI. Als de uitvoer of fout-blob niet bestaat, wordt er een blob van het type AppendBlob gemaakt. U kunt SAS-URI's genereren in het Azure-portaal met behulp van de opties van een blob of met behulp van een SAS-token via New-AzStorageBlobSASToken.

Run-opdracht op een computer maken of bijwerken met een andere gebruikersaccount

De opdracht Uitvoeren op een computer maken of bijwerken als een andere gebruiker met RunAsUser en RunAsPassword parameters.

Voordat u deze parameters kunt gebruiken, moet u het volgende doen:

  • Neem contact op met de beheerder van de computer en zorg ervoor dat de gebruiker toegang heeft tot de computer.
  • Zorg ervoor dat de gebruiker toegang heeft tot de resources die worden geopend met de opdracht Uitvoeren. Voorbeelden: mappen, bestanden, netwerk, enzovoort.
  • Zorg ervoor dat 'Secundaire aanmelding' wordt uitgevoerd op een Windows-computer.
New-AzMachineRunCommand -ResourceGroupName "MyRG0" -MachineName "MyMachine" -RunCommandName "MyRunCommand" -Location "eastus" -SourceScript "id; echo HelloWorld" -RunAsUser myusername -RunAsPassword mypassword

Voer de opdracht 'Run' uit, of werk deze bij, op een computer met een lokaal scriptbestand.

Een opdracht uitvoeren of bijwerken op een computer met behulp van een lokaal scriptbestand op de clientcomputer waarop cmdlet wordt uitgevoerd.

New-AzConnectedMachineRunCommand -ResourceGroupName "MyRG0" -VMName "MyMachine" -RunCommandName "MyRunCommand" -Location "eastus" -ScriptLocalPath "C:\MyScriptsDir\MyScript.ps1"

Maak of werk het Run-commando bij op een computer terwijl u gevoelige invoer aan het script doorgeeft.

Hiermee ProtectedParameter geeft u gevoelige invoer door aan een script, zoals wachtwoorden of sleutels.

$privateParametersArray = @{name='inputText';value='privateParam1value'}

New-AzConnectedMachineRunCommand -MachineName "MyMachine" -ResourceGroupName "MyRG0" -RunCommandName "MyRunCommand" -Location "eastus" -SourceScriptUri <SourceScriptUri> -ProtectedParameter $privateParametersArray 

Voorbeeldscript voor het vastleggen van inputText:

param ([string]$inputText)
Write-Output $inputText

U kunt ook openbare parameters op een vergelijkbare manier doorgeven met behulp van Parameter.

  • Windows - Parameter en ProtectedParameter worden doorgegeven aan een script dat vergelijkbaar is met het volgende voorbeeld: myscript.ps1 -publicParam1 publicParam1value -publicParam2 publicParam2value -secret1 secret1value -secret2 secret2value

  • Linux: Een benoemd element en Parameter de bijbehorende waarden worden ingesteld in de omgevingsconfiguratie en moeten toegankelijk zijn binnen het PowerShell-script. Geef voor argumenten zonder naam een lege tekenreeks door om invoer een naam te geven. Naamloze argumenten worden doorgegeven aan scripts die vergelijkbaar zijn met het volgende voorbeeld: myscript.sh publicParam1value publicParam2value secret1value secret2value

RunCommand-resource van de machine verwijderen

Verwijder de Run Command-resource die eerder op de computer is uitgerold. Als het script nog wordt uitgevoerd, wordt de uitvoering beëindigd.

Remove-AzConnectedMachineRunCommand -ResourceGroupName "myRG" -MachineName "myMachine" -RunCommandName "RunCommandName"