Partager via


Générer et tester un module Crescendo

Dans l’article précédent , nous avons créé des configurations pour deux nouvelles applets de commande. À l’aide de cette configuration, Crescendo peut générer un nouveau module de script PowerShell.

Générer votre nouveau module

Vous êtes maintenant prêt à créer votre module. Utilisez l’applet Export-CrescendoModule de commande pour générer le nouveau module de script PowerShell.

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

ConfigurationFile peut prendre un tableau de noms de fichiers. Cela vous permet de créer des fichiers JSON distincts pour chaque applet de commande. Le paramètre ModuleName spécifie le chemin d’accès complet et le nom du fichier de module en cours de création. Dans cet exemple, les fichiers sont en cours de création dans le répertoire actif.

Comme indiqué dans la sortie suivante, crée deux fichiers : Export-CrescendoModule le fichier de module (PSM1) et le fichier de manifeste de module (PSD1). Il s’agit des seuls fichiers que l’utilisateur final de votre module doit installer.

    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

Tester les applets de commande dans votre module

Pour tester votre module, importez-le dans votre session PowerShell et exécutez les applets de commande.

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

Dans l’article précédent, nous avons défini deux applets de commande.

Important

L’outil azcmagent nécessite une élévation pour s’exécuter. Cela signifie que vous devez exécuter votre module dans une session PowerShell avec élévation de privilèges.

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}}

Maintenant que nous avons amplifié la azcmagent show commande, elle peut participer au pipeline PowerShell.

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

Ensuite, nous testons l’applet de Get-AzCmAgentConfigProperty commande.

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

Recherche d’applets de commande créées par Crescendo

Lorsque vous créez et déployez d’autres modules crescendo, il peut être utile de déterminer si une applet de commande a été générée par Crescendo. Crescendo fournit une Test-IsCrescendoCommand applet de commande pour vous aider.

Test-IsCrescendoCommand -Command Get-AzCmAgentConfigProperty
   Module: AzCmAgent

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

Notes

Comme indiqué précédemment, votre nouveau module doit être exécuté dans une session avec élévation de privilèges. Dans cet exemple, Test-IsCrescendoCommandl’option RequiresElevation a été renvoyée sur False. Crescendo fournit des méthodes d’élévation de privilèges pour toutes les plateformes. Toutefois, nous n’avons pas inclus l’élévation dans nos exemples de configuration.