Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
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-IsCrescendoCommand
l’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.