Udostępnij za pomocą


Generowanie i testowanie modułu Crescendo

W poprzednim artykule utworzyliśmy konfiguracje dla dwóch nowych poleceń cmdlet. Korzystając z tej konfiguracji, crescendo może wygenerować nowy moduł skryptu programu PowerShell.

Generowanie nowego modułu

Teraz możesz przystąpić do tworzenia modułu. Export-CrescendoModule Użyj polecenia cmdlet, aby wygenerować nowy moduł skryptu programu PowerShell.

Export-CrescendoModule -ConfigurationFile AzCmAgent.json -ModuleName AzCmAgent.psm1

Plik ConfigurationFile może przyjmować tablicę nazw plików. Umożliwia to tworzenie oddzielnych plików JSON dla każdego polecenia cmdlet. Parametr ModuleName określa pełną ścieżkę i nazwę pliku dla tworzonego pliku modułu. W tym przykładzie pliki są tworzone w bieżącym katalogu.

Jak widać na poniższych danych wyjściowych, Export-CrescendoModule tworzy dwa pliki — plik modułu (PSM1) i plik manifestu modułu (PSD1). Są to jedyne pliki, które użytkownik końcowy modułu musi zainstalować.

    Directory: D:\temp\azcmagent

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a---            3/9/2022  1:59 PM           2167 AzCmAgent.json
-a---            3/9/2022  2:33 PM           4365 AzCmAgent.psd1
-a---            3/9/2022  2:33 PM           8017 AzCmAgent.psm1

Testowanie poleceń cmdlet w module

Aby przetestować moduł, zaimportuj go do sesji programu PowerShell i uruchom polecenia cmdlet.

Import-Module .\AzCmAgent.psd1
Get-Command -Module AzCmAgent
CommandType     Name                                               Version    Source
-----------     ----                                               -------    ------
Function        Get-AzCmAgentConfigProperty                        0.0.1      AzCmAgent
Function        Show-AzCmAgent                                     0.0.1      AzCmAgent

W poprzednim artykule zdefiniowaliśmy dwa polecenia cmdlet.

Ważne

Narzędzie azcmagent wymaga uruchomienia podniesienia uprawnień. Oznacza to, że moduł należy uruchomić w sesji programu PowerShell z podwyższonym poziomem uprawnień.

Show-AzCmAgent
resourceName      :
resourceGroup     :
resourceNamespace :
subscriptionId    :
tenantId          :
vmId              :
correlationId     :
vmUuid            :
location          :
privateLinkScope  :
cloud             :
agentVersion      : 1.15.01879.114
logs              : C:\ProgramData\AzureConnectedMachineAgent\Log\himds.log
status            : Disconnected
lastHeartbeat     :
agentErrorCode    :
agentErrorDetails :
agentErrorTime    :
httpsProxy        :
proxyBypass       :
cloudProvider     : N/A
cloudMetadata     :
manufacturer      : LENOVO
model             : 30BFS07500
sql               : false
services          : {@{displayName=GC Service; serviceName=gcarcservice; status=running},
                    @{displayName=Extension Service; serviceName=extensionservice; status=running},
                    @{displayName=Agent Service; serviceName=himds; status=running}}

Teraz, gdy polecenie zostało wzmocnione azcmagent show , może on uczestniczyć w potoku programu PowerShell.

Show-AzCmAgent | Select-Object -ExpandProperty services
displayName       serviceName      status
-----------       -----------      ------
GC Service        gcarcservice     running
Extension Service extensionservice running
Agent Service     himds            running

Następnie przetestujemy Get-AzCmAgentConfigProperty polecenie cmdlet.

Get-AzCmAgentConfigProperty -Property proxy.url
Type Status  Messages                     Data
---- ------  --------                     ----
   0 success {proxy.url has not been set}

Znajdowanie poleceń cmdlet utworzonych przez usługę Crescendo

Podczas tworzenia i wdrażania większej liczby modułów opartych na protokole Crescendo korzystne może być określenie, czy polecenie cmdlet zostało wygenerowane przez narzędzie Crescendo. Crescendo udostępnia Test-IsCrescendoCommand polecenie cmdlet ułatwiające pomoc.

Test-IsCrescendoCommand -Command Get-AzCmAgentConfigProperty
   Module: AzCmAgent

Name                        IsCrescendoCommand RequiresElevation
----                        ------------------ -----------------
Get-AzCmAgentConfigProperty True               False

Uwaga

Jak wspomniano wcześniej, nowy moduł musi być uruchamiany w sesji z podwyższonym poziomem uprawnień. W tym przykładzie Test-IsCrescendoCommand zwrócono wartość RequiresElevation jako False. Crescendo udostępnia metody podniesienia uprawnień dla wszystkich platform. Jednak nie uwzględniliśmy podniesienia uprawnień w naszych przykładach konfiguracji.