Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Depois de escrever o módulo do PowerShell, você pode adicionar um manifesto de módulo opcional que inclui informações sobre o módulo. Por exemplo, você pode descrever o autor, especificar arquivos no módulo (como módulos aninhados), executar scripts para personalizar o ambiente, o tipo de carga e os arquivos de formatação do usuário, definir os requisitos do sistema e limitar os membros exportados pelo módulo.
Criando um manifesto de módulo
Um manifesto do módulo é um arquivo de dados do PowerShell (.psd1) que descreve o conteúdo de um módulo e determina como um módulo é processado. O arquivo de manifesto é um arquivo de texto que contém uma tabela de hash de chaves e valores. Você vincula um arquivo de manifesto a um módulo nomeando o manifesto da mesma forma que o módulo e armazenando o manifesto no diretório raiz do módulo.
Para módulos simples que contêm apenas um único .psm1 ou assembly binário, um manifesto de módulo é opcional. Porém, a recomendação é usar um manifesto de módulo sempre que possível, pois eles são úteis para ajudá-lo a organizar seu código e manter as informações de controle de versão. Além disso, um manifesto de módulo é necessário para exportar um assembly instalado no de Cache de Assembly Global do. Um manifesto de módulo também é necessário para módulos que dão suporte ao recurso de Ajuda Atualizável. A Ajuda Atualizável usa a chave HelpInfoUri no manifesto do módulo para localizar o arquivo HelpInfo XML (Informações de Ajuda) que contém o local dos arquivos de ajuda atualizados para o módulo. Para obter mais informações sobre a Ajuda Atualizável, consulte suporte à ajuda atualizável.
Para criar e usar um manifesto de módulo
A melhor prática para criar um manifesto de módulo é usar o cmdlet New-ModuleManifest. Você pode usar parâmetros para especificar uma ou mais das chaves e valores padrão do manifesto. O único requisito é nomear o arquivo.
New-ModuleManifestcria um manifesto de módulo com seus valores especificados e inclui as chaves restantes e seus valores padrão. Se você precisar criar vários módulos, useNew-ModuleManifestpara criar um modelo de manifesto de módulo que possa ser modificado para seus diferentes módulos. Para obter um exemplo de um manifesto de módulo padrão, consulte o manifesto do módulo Exemplo.New-ModuleManifest -Path C:\myModuleName.psd1 -ModuleVersion "2.0" -Author "YourNameHere"Uma alternativa é criar manualmente a tabela de hash do manifesto do módulo usando as informações mínimas necessárias, ModuleVersion. Salve o arquivo com o mesmo nome do módulo e use a extensão de arquivo
.psd1. Em seguida, você pode editar o arquivo e adicionar as chaves e os valores apropriados.Adicione quaisquer elementos adicionais desejados no arquivo de manifesto.
Para editar o arquivo de manifesto, use qualquer editor de texto que você preferir. Porém, o arquivo de manifesto é um arquivo de script que contém código, portanto, talvez você queira editá-lo em um ambiente de script ou desenvolvimento, como o Visual Studio Code. Todos os elementos de um arquivo de manifesto são opcionais, exceto o número ModuleVersion.
Para obter mais informações, consulte as descrições de parâmetro no cmdlet New-ModuleManifest. Para obter descrições das chaves e valores que você pode incluir em um manifesto de módulo, consulte about_Module_Manifests.
Para resolver quaisquer cenários que possam não ser cobertos pelos elementos de manifesto do módulo base, você tem a opção de adicionar código adicional ao manifesto do módulo.
Para questões de segurança, o PowerShell executa apenas um pequeno subconjunto das operações disponíveis em um arquivo de manifesto do módulo. Em geral, você pode usar a instrução
if, os operadores aritméticos e de comparação e os tipos de dados básicos do PowerShell.Depois de criar o manifesto do módulo, você pode testá-lo para confirmar se todos os caminhos descritos no manifesto estão corretos. Para testar o manifesto do módulo, use Test-ModuleManifest.
Test-ModuleManifest myModuleName.psd1Verifique se o manifesto do módulo está localizado no nível superior do diretório que contém o módulo.
Quando você copia o módulo em um sistema e o importa, o PowerShell usa o manifesto do módulo para importar o módulo.
Opcionalmente, você pode testar diretamente o manifesto do módulo com uma chamada para Import-Module, fornecendo o manifesto em si.
Import-Module .\myModuleName.psd1
Manifesto do módulo de exemplo
O manifesto do módulo de exemplo a seguir foi criado com New-ModuleManifest no PowerShell 7 e contém as chaves e os valores padrão. Para obter uma descrição detalhada de cada elemento em um manifesto de módulo, consulte about_Module_Manifests.
#
# Module manifest for module 'SampleModuleManifest'
#
# Generated by: User01
#
# Generated on: 10/15/2019
#
@{
# Script module or binary module file associated with this manifest.
# RootModule = ''
# Version number of this module.
ModuleVersion = '0.0.1'
# Supported PSEditions
# CompatiblePSEditions = @()
# ID used to uniquely identify this module
GUID = 'b632e90c-df3d-4340-9f6c-3b832646bf87'
# Author of this module
Author = 'User01'
# Company or vendor of this module
CompanyName = 'Unknown'
# Copyright statement for this module
Copyright = '(c) User01. All rights reserved.'
# Description of the functionality provided by this module
# Description = ''
# Minimum version of the PowerShell engine required by this module
# PowerShellVersion = ''
# Name of the PowerShell host required by this module
# PowerShellHostName = ''
# Minimum version of the PowerShell host required by this module
# PowerShellHostVersion = ''
# Minimum version of Microsoft .NET Framework required by this module. This prerequisite is valid for the PowerShell Desktop edition only.
# DotNetFrameworkVersion = ''
# Minimum version of the common language runtime (CLR) required by this module. This prerequisite is valid for the PowerShell Desktop edition only.
# CLRVersion = ''
# Processor architecture (None, X86, Amd64) required by this module
# ProcessorArchitecture = ''
# Modules that must be imported into the global environment prior to importing this module
# RequiredModules = @()
# Assemblies that must be loaded prior to importing this module
# RequiredAssemblies = @()
# Script files (.ps1) that are run in the caller's environment prior to importing this module.
# ScriptsToProcess = @()
# Type files (.ps1xml) to be loaded when importing this module
# TypesToProcess = @()
# Format files (.ps1xml) to be loaded when importing this module
# FormatsToProcess = @()
# Modules to import as nested modules of the module specified in RootModule/ModuleToProcess
# NestedModules = @()
# Functions to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no functions to export.
FunctionsToExport = @()
# Cmdlets to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no cmdlets to export.
CmdletsToExport = @()
# Variables to export from this module
VariablesToExport = '*'
# Aliases to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no aliases to export.
AliasesToExport = @()
# DSC resources to export from this module
# DscResourcesToExport = @()
# List of all modules packaged with this module
# ModuleList = @()
# List of all files packaged with this module
# FileList = @()
# Private data to pass to the module specified in RootModule/ModuleToProcess. This may also contain a PSData hashtable with additional module metadata used by PowerShell.
PrivateData = @{
PSData = @{
# Tags applied to this module. These help with module discovery in online galleries.
# Tags = @()
# A URL to the license for this module.
# LicenseUri = ''
# A URL to the main website for this project.
# ProjectUri = ''
# A URL to an icon representing this module.
# IconUri = ''
# ReleaseNotes of this module
# ReleaseNotes = ''
# Prerelease string of this module
# Prerelease = ''
# Flag to indicate whether the module requires explicit user acceptance for install/update/save
# RequireLicenseAcceptance = $false
# External dependent modules of this module
# ExternalModuleDependencies = @()
} # End of PSData hashtable
} # End of PrivateData hashtable
# HelpInfo URI of this module
# HelpInfoURI = ''
# Default prefix for commands exported from this module. Override the default prefix using Import-Module -Prefix.
# DefaultCommandPrefix = ''
}