Como usar funções no PowerShell

Como usar funções no PowerShell
Se você quiser usar Scripts PowerShell e comandos Em diferentes cenários, você pode transformá -los em reutilizável funções. PowerShell tem muita flexibilidade em termos de como você representa o código em um script.

Se você buscar a redação de centenas de linhas de códigos em um único bloco de código, não é o método adequado, porque geralmente é difícil ler um grande bloco de código. Você pode dividi -lo em pequenas funções para tornar o programa mais compreensível, organizado e reutilizável.

O que é uma função no PowerShell?

Em Powershell, um função é uma coleção de código com entrada e saída opcionais. É a formação de uma sequência de instruções para executar uma ou muitas vezes simplesmente invocando -a em vez de copiá -la repetidamente. A função melhora substancialmente a legibilidade e a usabilidade do seu código, facilitando muito o tratamento repetido.

São necessários parâmetros como entrada e retorna valores atribuídos a algumas variáveis, canalizadas para outras funções ou cmdlets como entrada ou exibido como uma saída na tela. Em vez de repetir o código, a função pode ser chamada quantas vezes é necessário após ser definido no script. Em PowerShell, existem dois tipos de funções: básico e avançado.

Funções básicas em PowerShell

A forma mais simples de uma função que podemos criar no PowerShell é chamada de “básico”Função. Essas funções não utilizam nenhum dos recursos internos. Um conjunto de aparelho encaracolado é usado para definir o corpo da função. Ao trabalhar com funções do PowerShell, a opção mais fácil para os administradores é usar funções básicas, porque essas funções não possuem nenhum recurso herdado. Você precisa definir todos os fluxos de erro no código da sua função explicitamente.

Funções avançadas em PowerShell

Funções avançadas têm as mesmas propriedades que as funções básicas, mas incluem recursos adicionais que as funções básicas não têm. Por exemplo, PowerShell contém fluxos como detalhe, aviso, depuração, erro, etc. Esses fluxos são essenciais para mostrar a saída com precisão.

Criando funções básicas no PowerShell

Agora, verificaremos o método de criar funções básicas no PowerShell. Para isso, abra seu Windows PowerShell Ise e crie um novo arquivo.

O Palavra -chave da função é usado para declarar uma função em PowerShell, seguida pelo Nome da função e aparelho encaracolado. O código ou corpo da função está dentro daqueles aparelhos encaracolados .

função get-version
$ PsversionTable.Psversion

Vamos executar isso “Get-Version”Função no tempo de execução. Agora, salve o script como “testfile1.ps1”E execute -o.

No terminal PowerShell, chame a função criada usando seu nome.

> Get-Version

Ele mostrará a seguinte saída:

À medida que a função é carregada na memória do seu sistema, você pode visualizar funções na função psdrive. Para isso, use o “Get-Childitem”Comando para verificar os itens infantis da função psdrive. Aqui o "-Caminho”A opção é utilizada para especificar o caminho da função psdrive.

> Função Get-ChildItem -Path: \ Get-*Versão

Na sessão atual, você pode remover a função definida usando o “Remover item”Comando. Executar o comando abaixo do dado para esse fim.

> Get-ChildItem -Path Função: \ Get-*versão | Remover item

Use o operador do tubo [“|“] Para que o comando repouse os itens infantis da função psdrive para o“Remover item”Comando. Então o "Remover item”O cmdlet removerá as funções criadas da sessão.

Para verificar a remoção da função, invocar o “Get-Version”Função. Ele mostrará a seguinte saída:

Parâmetro de funções no PowerShell

Agora, escreveremos uma função que consulta todos os comandos de um sistema e retorna o número de comandos com certos nomes de parâmetros. Se você quiser fazer isso, execute o script abaixo do seu PowerShell:

função get-mrparameterCount
param (
[String []] $ ParameterName
)
foreach ($ parâmetro em $ parametername)
$ Resulta = get -command -parametername $ parâmetro -ErrorActionlylyContinue
[pScustomObject]@
ParameterName = $ Parameter
Númerofcmdlets = $ resultados.Contar


Agora, invocamos o “Get-mrparameterCount”Com os parâmetros:

Nome Computern, Computador, Nome do Servidor, Host e Máquina:

> Get -mrparameterCount -Parametername Computername, Computer, ServerName, Host, Machine

Criando funções avançadas no PowerShell

É realmente fácil transformar uma função básica do PowerShell em uma função avançada. Funções avançadas apresentam vários parâmetros comuns que são adicionados automaticamente à função. Agora, transformaremos a função básica definida na seção anterior em uma função avançada:

função test-mrparameter
param (
$ Computername
)
Write-Output $ Computername

Observe que o “Test-MrParameter”A função não tem parâmetro comum. Os parâmetros comuns podem ser vistos de maneiras diferentes. Um método é usar “Get-Command" com o "-Sintaxe”Opção para olhar para a sintaxe:

> Get -command -name test -mrparameter -Syntax

Para tornar a função uma função avançada, adicione “CMDLETBINDING”:

função test-mrcmdletbinding
[CmdletBinding ()] #<<-- This turns a regular function into an advanced function
param (
$ Computername
)
Write-Output $ Computername

Novamente, você pode verificar a sintaxe e os parâmetros desta função avançada executando os comandos abaixo:

> Get-command -name test-mrcmdletbinding -syntax> (get-command -name test-mrcmdletBinding).Parâmetros.Chaves

Conclusão

Você pode dividir o código em blocos de construção separados usando Funções em PowerShell. Eles não apenas ajudam você a quebrar seu código em peças menores e mais gerenciáveis, mas também o pressionam para produzir código testável e legível.

As funções também melhoram substancialmente a legibilidade e a usabilidade do seu código, facilitando muito a lidar com o código repetido. Este artigo mostra alguns métodos para usar funções em Powershell, incluindo os básicos e avançados.