Membuat dan menguji modul Crescendo

Important

Per Mei 2026, proyek Crescendo tidak lagi dipelihara secara aktif. Proyek ini harus dianggap diarsipkan dari sudut pandang teknik.

Pada artikel sebelumnya kami membuat konfigurasi untuk dua cmdlet baru. Dengan menggunakan konfigurasi ini, Crescendo dapat menghasilkan modul skrip PowerShell baru.

Hasilkan modul baru Anda

Sekarang Anda siap untuk membuat modul Anda. Gunakan Export-CrescendoModule cmdlet untuk menghasilkan modul skrip PowerShell baru.

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

ConfigurationFile dapat mengambil array nama file. Ini memungkinkan Anda membuat file JSON terpisah untuk setiap cmdlet. Parameter ModuleName menentukan jalur lengkap dan nama file untuk file modul yang sedang dibuat. Dalam contoh ini, file sedang dibuat di direktori saat ini.

Seperti yang terlihat output berikut, Export-CrescendoModule membuat dua file -- file modul (PSM1) dan file manifes modul (PSD1). Ini adalah satu-satunya file yang perlu diinstal oleh pengguna akhir modul Anda.

    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

Menguji cmdlet di modul Anda

Untuk menguji modul Anda, impor ke dalam sesi PowerShell Anda dan jalankan 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

Pada artikel sebelumnya kami mendefinisikan dua cmdlet.

Important

Alat ini azcmagent membutuhkan ketinggian untuk berjalan. Ini berarti Anda harus menjalankan modul Anda dalam sesi PowerShell yang ditingkatkan.

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

Sekarang setelah kita memperkuat azcmagent show perintah, itu dapat berpartisipasi dalam alur PowerShell.

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

Selanjutnya kita menguji Get-AzCmAgentConfigProperty cmdlet.

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

Menemukan cmdlet yang dibuat Crescendo

Saat Anda membuat dan menyebarkan lebih banyak modul berbasis Crescendo, mungkin bermanfaat untuk menentukan apakah cmdlet dihasilkan oleh Crescendo. Crescendo menyediakan Test-IsCrescendoCommand cmdlet untuk membantu.

Test-IsCrescendoCommand -Command Get-AzCmAgentConfigProperty
   Module: AzCmAgent

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

Note

Seperti yang dibahas sebelumnya, modul baru Anda harus dijalankan dalam sesi yang ditingkatkan. Dalam contoh ini, Test-IsCrescendoCommand mengembalikan RequiresElevation sebagai False. Crescendo menyediakan metode untuk peningkatan hak istimewa untuk semua platform. Namun, kami tidak menyertakan elevasi dalam contoh konfigurasi kami.