Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Za pomocą poleceń programu PowerShell dla polecenia uruchamiania połączonej maszyny można zdalnie i bezpiecznie wykonywać skrypty lub polecenia na maszynach wirtualnych z obsługą usługi Arc bez bezpośredniego łączenia się z nimi za pośrednictwem protokołu Remote Desktop Protocol lub SSH.
Ten artykuł zawiera przykłady, które używają kilku poleceń programu PowerShell, aby ułatwić zrozumienie sposobu wykonywania skryptów lub poleceń na serwerze z obsługą usługi Arc za pomocą programu PowerShell.
Wymagania wstępne
- Wersja agenta Connected Machine na serwerze z obsługą usługi Arc musi być 1.33 lub nowsza.
Przykładowe żądania programu PowerShell
W poniższych przykładach użyto różnych poleceń programu PowerShell do pracy z poleceniami Run na serwerze z obsługą Arc.
Wykonywanie skryptu na maszynie
To polecenie dostarcza skrypt do maszyny, wykonuje go i zwraca przechwycone dane wyjściowe.
New-AzConnectedMachineRunCommand -ResourceGroupName "myRG" -MachineName "myMachine" -Location "eastus" -RunCommandName "RunCommandName" –SourceScript "echo Hello World!"
Uwaga
W parametrze -SourceScript można dodać wiele poleceń. Użyj ;, aby oddzielić każde polecenie.
Przykład: –SourceScript "id; echo Hello World!"
Wykonaj skrypt na maszynie używając pliku skryptu z pamięci masowej
To polecenie kieruje agenta połączonej maszyny do identyfikatora URI sygnatury dostępu współdzielonego (SAS) dla obiektu blob magazynu, w którym został przekazany skrypt, a następnie kieruje agenta do wykonania skryptu i zwraca przechwycone dane wyjściowe.
New-AzConnectedMachineRunCommand -ResourceGroupName "MyRG0" -MachineName "MyMachine" -RunCommandName "MyRunCommand" -Location "eastus" -SourceScriptUri “< SAS URI of a storage blob with read access or public URI>”
Uwaga
scriptUri to wspólny identyfikator URI sygnatury dostępu (SAS) dla obiektu blob magazynu, który musi zapewniać dostęp do odczytu do obiektu blob. Sugerowany jest czas wygaśnięcia 24 godzin dla sygnatury dostępu współdzielonego (SAS) URI. Identyfikator URI sygnatury dostępu współdzielonego można wygenerować na portalu Azure, korzystając z opcji obiektów Blob lub tokenu SAS używając New-AzStorageBlobSASToken. W przypadku generowania tokenu SAS przy użyciu New-AzStorageBlobSASToken polecenia format identyfikatora URI sygnatury dostępu współdzielonego (SAS) ma postać: base blob URL + "?" + token SAS z New-AzStorageBlobSASToken.
Wypisz wszystkie wdrożone zasoby poleceń „Uruchom” na maszynie
To polecenie zwraca pełną listę wcześniej wdrożonych poleceń uruchamiania wraz z ich właściwościami.
Get-AzConnectedMachineRunCommand -ResourceGroupName "myRG" -MachineName "myMachine"
Uzyskiwanie stanu wykonania i wyników
To polecenie pobiera bieżący postęp wykonywania dla polecenia "Uruchom", w tym najnowsze dane wyjściowe, czas rozpoczęcia/zakończenia, kod zakończenia i stan końcowy wykonywania.
Get-AzConnectedMachineRunCommand -ResourceGroupName "myRG" - MachineName "myMachine" -RunCommandName "RunCommandName"
Uzyskaj informacje o stanie dla polecenia Uruchom za pomocą podglądu instancji
Uzyskaj informacje o stanie polecenia Run na maszynie z Widokiem Instancji. Widok wystąpienia zawiera stan wykonywania polecenia Uruchom (powodzenie, niepowodzenie itd.), kod zakończenia, standardowe dane wyjściowe i standardowy błąd wygenerowany przez wykonanie skryptu. Kod zakończenia niezerowy wskazuje nieudane wykonanie.
Get-AzConnectedMachineRunCommand -ResourceGroupName "MyRG" -MachineName "MyMachine" -RunCommandName "MyRunCommand"
Oprócz innych informacji odpowiedź zwraca następujące pola:
InstanceViewExecutionState: Stan skryptu polecenia Uruchom. Zapoznaj się z tym statusem, aby dowiedzieć się, czy skrypt się udał.ProvisioningState: Stan ogólnego zakończenia aprowizacji rozszerzeń (czy platforma rozszerzenia była w stanie wyzwolić skrypt polecenia Uruchom, czy nie).
Tworzenie lub aktualizowanie polecenia uruchamiania na maszynie i przechwytywanie standardowych danych wyjściowych i standardowych komunikatów o błędach
Utwórz lub zaktualizuj polecenie uruchamiania na maszynie i przesyłaj strumieniowo standardowe komunikaty wyjściowe i komunikaty o błędach do obiektów blob dołączania.
New-AzConnectedMachineRunCommand -ResourceGroupName "MyRG0" - MachineName "MyMachine" -RunCommandName "MyRunCommand3" -Location "eastus" -SourceScript "id; echo HelloWorld" -OutputBlobUri <OutPutBlobUrI> -ErrorBlobUri <ErrorBlobUri>
Uwaga
Bloby danych wyjściowych i błędów muszą być typem AppendBlob, a ich SAS URI muszą zapewniać dostęp do odczytu, dołączania, tworzenia i zapisu. Sugerowany jest czas wygaśnięcia 24 godzin dla identyfikatora URI sygnatury dostępu współdzielonego. Jeśli nie istnieje obiekt blob danych wyjściowych lub błędu, zostanie utworzony obiekt blob typu AppendBlob. Identyfikatory URI SAS można wygenerować na portalu Azure, korzystając z opcji obiektu blob lub z tokenu SAS, używając New-AzStorageBlobSASToken.
Tworzenie lub aktualizowanie polecenia Run na maszynie jako inny użytkownik
Utwórz lub zaktualizuj polecenie 'Uruchom' na maszynie jako inny użytkownik z parametrami RunAsUser i RunAsPassword.
Aby można było użyć tych parametrów, należy wykonać następujące czynności:
- Skontaktuj się z administratorem maszyny i upewnij się, że użytkownik ma dostęp do maszyny.
- Upewnij się, że użytkownik ma dostęp do zasobów, do których uzyskuje dostęp za pomocą polecenia Uruchom. Przykłady: katalogi, pliki, sieć itd.
- Na maszynie z systemem Windows upewnij się, że jest uruchomione polecenie "Logowanie pomocnicze".
New-AzMachineRunCommand -ResourceGroupName "MyRG0" -MachineName "MyMachine" -RunCommandName "MyRunCommand" -Location "eastus" -SourceScript "id; echo HelloWorld" -RunAsUser myusername -RunAsPassword mypassword
Tworzenie lub aktualizowanie polecenia Uruchom na maszynie przy użyciu pliku skryptu lokalnego
Utwórz lub zaktualizuj polecenie uruchamiania na maszynie przy użyciu lokalnego pliku skryptu na komputerze klienckim, na którym cmdlet zostanie wykonane.
New-AzConnectedMachineRunCommand -ResourceGroupName "MyRG0" -VMName "MyMachine" -RunCommandName "MyRunCommand" -Location "eastus" -ScriptLocalPath "C:\MyScriptsDir\MyScript.ps1"
Tworzenie lub aktualizowanie polecenia Uruchom na maszynie podczas przekazywania poufnych danych wejściowych do skryptu
Służy ProtectedParameter do przekazywania wszelkich poufnych danych wejściowych do skryptu, takiego jak hasła lub klucze.
$privateParametersArray = @{name='inputText';value='privateParam1value'}
New-AzConnectedMachineRunCommand -MachineName "MyMachine" -ResourceGroupName "MyRG0" -RunCommandName "MyRunCommand" -Location "eastus" -SourceScriptUri <SourceScriptUri> -ProtectedParameter $privateParametersArray
Przykładowy skrypt do przechwytywania elementu inputText:
param ([string]$inputText)
Write-Output $inputText
Parametry publiczne można również przekazać w podobny sposób przy użyciu polecenia Parameter.
Windows — parametr i parametr ProtectedParameter są przekazywane do skryptu podobnego do następującego przykładu:
myscript.ps1 -publicParam1 publicParam1value -publicParam2 publicParam2value -secret1 secret1value -secret2 secret2valueLinux — nazwany
Parameteri jego wartości są ustawione na konfigurację środowiska, która powinna być dostępna w skrypcie PowerShell. W przypadku argumentów bez nazwy przekaż pusty ciąg znaków jako wartość parametru nazwy. Argumenty bez nazw są przekazywane do skryptu podobnego do następującego przykładu:myscript.sh publicParam1value publicParam2value secret1value secret2value
Usuń zasób RunCommand z maszyny
Usuń zasób Uruchom polecenie wcześniej wdrożony na maszynie. Jeśli wykonywanie skryptu jest nadal w toku, wykonanie zakończy się.
Remove-AzConnectedMachineRunCommand -ResourceGroupName "myRG" -MachineName "myMachine" -RunCommandName "RunCommandName"