Criar e executar scripts do PowerShell do console do Configuration ManagerCreate and run PowerShell scripts from the Configuration Manager console

Aplica-se a: System Center Configuration Manager (Branch Atual)Applies to: System Center Configuration Manager (Current Branch)

Dica

Introduzido com a versão 1706, a habilidade de executar scripts do PowerShell é um recurso de pré-lançamento.Introduced with version 1706, the ability to run PowerShell scripts is a pre-release feature. Para habilitar os scripts, confira Recursos de pré-lançamento no System Center Configuration Manager.To enable scripts, see Pre-release features in System Center Configuration Manager.

Agora, a capacidade de executar scripts do Powershell com o System Center Configuration Manager está mais bem integrada.We've now better integrated the ability to run Powershell scripts with System Center Configuration Manager. O PowerShell oferece a vantagem de criar scripts automatizados sofisticados que são entendidos e compartilhados com uma comunidade maior.Powershell has the benefit of creating sophisticated, automated scripts that are understood and shared with a larger community. Os scripts simplificam a construção de ferramentas personalizadas para administrar o software e permitem realizar tarefas rotineiras rapidamente, possibilitando concluir trabalhos grandes com mais facilidade e consistência.The scripts simplify building custom tools to administer software and let you accomplish mundane tasks quickly, allowing you to get big jobs done more easily and more consistently.

Com essa integração no System Center Configuration Manager, você pode usar a funcionalidade Executar Scripts para fazer o seguinte:With this integration in System Center Configuration Manager, you can use the Run Scripts functionality to do the following:

  • Criar e editar scripts a serem usados com o System Center Configuration Manager.Create and edit scripts for use with System Center Configuration Manager.
  • Gerenciar o uso de script por meio de funções e escopos de segurança.Manage script usage through roles and security scopes.
  • Executar scripts em coleções ou em computadores Windows individuais gerenciados localmente.Run scripts on collections or individual on-premises managed Windows PCs.
  • Obter resultados rápidos do script agregado dos dispositivos clientes.Get rapid aggregated script results from client devices.
  • Monitorar a execução do script e exibir os resultados do relatório da saída do script.Monitor script execution and view reporting results from script output.

Aviso

Considerando a potência dos scripts, lembre-se de usá-los com uma intenção definida e com cuidado.Given the power of scripts, we remind you to be intentional and careful with their usage. Inserimos proteções adicionais para ajudá-lo, além de funções segregadas e escopos.We have built in additional safeguards to assist you; segregated roles and scopes. Valide a precisão dos scripts antes de executá-los e confirme se eles são de uma fonte confiável, para impedir uma execução não intencional do script.Be sure to validate the accuracy of scripts before running them and confirm they are from a trusted source, to prevent unintended script execution. Preste atenção em caracteres estendidos ou outras ofuscações e aprenda como proteger scripts.Be mindful of extended characters or other obfuscation and educate yourself about securing scripts.

Pré-requisitosPrerequisites

  • Para executar scripts do PowerShell, o cliente deve executar o PowerShell versão 3.0 ou posterior.To run PowerShell scripts, the client must be running PowerShell version 3.0 or later. No entanto, se um script for executado contendo funcionalidades de uma versão posterior do PowerShell, o cliente no qual o script estiver sendo executado deverá estar executando essa versão do PowerShell.However, if a script you run contains functionality from a later version of PowerShell, the client on which you run the script must be running that version of PowerShell.
  • Clientes do Configuration Manager devem estar executando o cliente da versão 1706 ou posterior para executar scripts.Configuration Manager clients must be running the client from the 1706 release, or later in order to run scripts.
  • Para usar scripts, você deve ser membro da função de segurança apropriada do Configuration Manager.To use scripts, you must be a member of the appropriate Configuration Manager security role.
  • Para importar e criar scripts – sua conta deve ter as permissões Criar para Scripts SMS na função de segurança Administrador Completo.To import and author scripts - Your account must have Create permissions for SMS Scripts in the Full Administrator security role.
  • Para aprovar ou negar scripts – sua conta deve ter as permissões Aprovar para Scripts SMS na função de segurança Administrador Completo.To approve or deny scripts - Your account must have Approve permissions for SMS Scripts in the Full Administrator security role.
  • Para executar scripts – sua conta deve ter permissões de Execução de Script para Coleções na função de segurança Administrador Total.To run scripts - Your account must have Run Script permissions for Collections in the Full Administrator security role.

Para saber mais sobre as funções de segurança do Configuration Manager, confira Conceitos básicos da administração baseada em funções para o System Center Configuration Manager.For more information about Configuration Manager security roles, see Fundamentals of role-based administration.

LimitaçõesLimitations

No momento, o recurso Executar Scripts dá suporte para:Run Scripts currently supports:

  • Linguagens de scripts: PowerShellScripting languages: PowerShell
  • Tipos de parâmetro: inteiro, cadeia de caracteres e listaParameter types: integer, string and, list

Autores e aprovadores do recurso Executar ScriptRun Script authors and approvers

O recurso Executar Scripts usa o conceito de autores de script e aprovadores e script como funções separadas para a implementação e a execução de um script.Run Scripts uses the concept of script authors and script approvers as separate roles for implementation and execution of a script. A separação das funções de autor e aprovador permite um processo de verificação importante para a potente ferramenta Executar Scripts.Having the author and approver roles separated allows for an important process check for the powerful tool that Run Scripts is.

Controle de funções de scriptsScripts roles control

Por padrão, os usuários não podem aprovar um script que criaram.By default, users cannot approve a script they have authored. Como os scripts são poderosos, versáteis e podem ser implantados em vários dispositivos, você pode separar as funções entre a pessoa que cria o script, e a pessoa que aprova o script.Because scripts are powerful, versatile, and can be deployed to many devices, you can separate the roles between the person that authors the script and the person that approves the script. Essas funções proporcionam um nível a mais de segurança contra a execução de um script sem supervisão.These roles give an additional level of security against running a script without oversight. Você pode desativar esta aprovação secundária, para facilitar o teste.You can turn off this secondary approval, for ease of testing.

Aprovar ou negar um scriptApprove or Deny a script

Os scripts precisam ser aprovados pela função aprovador de script, antes de serem executados.Scripts must be approved, by the script approver role, before they can be run. Para aprovar um script:To approve a script:

  1. No console do Configuration Manager, clique em Biblioteca de Software.In the Configuration Manager console, click Software Library.
  2. No espaço de trabalho Biblioteca de Software, clique em Scripts.In the Software Library workspace, click Scripts.
  3. Na lista Script, escolha o script que você quer aprovar ou negar e, na guia Início, no grupo Script, clique em Aprovar/Negar.In the Script list, choose the script you want to approve or deny and then, on the Home tab, in the Script group, click Approve/Deny.
  4. Na caixa de diálogo Aprovar ou negar o script, selecione Aprovar ou Negar para o script.In the Approve or deny script dialog box, select Approve or Deny for the script. Opcionalmente, insira um comentário sobre sua decisão.Optionally, enter a comment about your decision. Se você negar um script, ele não poderá ser executado em dispositivos cliente.If you deny a script, it cannot be run on client devices.
    Script – AprovaçãoScript - Approval
  5. Conclua o assistente.Complete the wizard. Na lista Script, você verá a coluna Estado de Aprovação mudar dependendo da ação executada.In the Script list, you see the Approval State column change depending on the action you took.

Permitir que os usuários aprovem seus próprios scriptsAllow users to approve their own scripts

Essa aprovação é usada principalmente para a fase de teste do desenvolvimento do script.This approval is primarily used for the testing phase of script development.

  1. No console do Configuration Manager, clique em Administração.In the Configuration Manager console, click Administration.
  2. No espaço de trabalho Administração , expanda Configuração do Sitee clique em Sites.In the Administration workspace, expand Site Configuration, and then click Sites.
  3. Na lista de sites, escolha seu site e, depois, na guia Início, no grupo Sites, clique em Configurações de Hierarquia.In the list of sites, choose your site and then, on the Home tab, in the Sites group, click Hierarchy Settings.
  4. Na guia Geral da caixa de diálogo Propriedades das Configurações de Hierarquia, desmarque a caixa de seleção Não permitir que os autores de script aprovem seus próprios scripts.On the General tab of the Hierarchy Settings Properties dialog box, clear the checkbox Do not allow script authors to approve their own scripts.

Importante

Como prática recomendada, você não deve permitir que um autor de script aprove seus próprios scripts.As a best practice, you shouldn't allow a script author to approve their own scripts. Isso somente deve ser permitido em uma configuração de laboratório.This should only be allowed in a lab setting. Considere atentamente o possível impacto de alterar essa configuração em um ambiente de produção.Carefully consider the potential impact of changing this setting in a production environment.

Escopos de segurançaSecurity scopes

(Introduzido na versão 1710)(Introduced with version 1710)
O recurso Executar Scripts usa os escopos de segurança, um recurso existente do Configuration Manager, para controlar a criação e execução de scripts por meio da atribuição de marcas que representam grupos de usuários.Run Scripts uses security scopes, an existing feature of Configuration Manager, to control scripts authoring and execution through assigning tags that represent user groups. Para obter mais informações de como usar escopos de segurança, consulte Configurar administração baseada em funções para o System Center Configuration Manager.For more information on using security scopes, see Configure role-based administration for System Center Configuration Manager.

Criar um scriptCreate a script

  1. No console do Configuration Manager, clique em Biblioteca de Software.In the Configuration Manager console, click Software Library.
  2. No espaço de trabalho Biblioteca de Software, clique em Scripts.In the Software Library workspace, click Scripts.
  3. Na guia Início, no grupo Criar, clique em Criar Script.On the Home tab, in the Create group, click Create Script.
  4. Na página Script do assistente para Criar Script, configure o seguinte:On the Script page of the Create Script wizard, configure the following settings:
    • Nome do Script - insira um nome para o script.Script Name - Enter a name for the script. Embora você possa criar vários scripts com o mesmo nome, o uso de nomes duplicados dificultará mais a localização do script necessário no console do Configuration Manager.Although you can create multiple scripts with the same name, using duplicate names makes it harder for you to find the script you need in the Configuration Manager console.
    • Linguagem do script – Atualmente, apenas scripts do PowerShell têm suporte.Script language - Currently, only PowerShell scripts are supported.
    • Importar - importe um script do PowerShell no console.Import - Import a PowerShell script into the console. O script é exibido no campo Script.The script is displayed in the Script field.
    • Limpar – Remove o script atual do campo Script.Clear - Removes the current script from the Script field.
    • Script - exibe o script importado no momento.Script - Displays the currently imported script. Edite o script neste campo conforme o necessário.You can edit the script in this field as necessary.
  5. Conclua o assistente.Complete the wizard. O novo script é exibido na lista Script com um status de Aguardando aprovação.The new script is displayed in the Script list with a status of Waiting for approval. Antes de executar esse script em dispositivos cliente, você deve aprová-lo.Before you can run this script on client devices, you must approve it.

Importante

Evite gerar script de uma reinicialização do dispositivo ou de um reinício do agente do Configuration Manager quando usar o recurso Executar Scripts.Avoid scripting a device reboot or a restart of the Configuration Manager agent when using the Run Scripts feature. Isto pode levar a um estado contínuo de reinicialização.Doing so could lead to a continuous rebooting state. Se necessário, há melhorias no recurso de notificação de cliente que permitem reiniciar os dispositivos, começando na versão 1710 do Configuration Manager.If needed, there are enhancements to the client notification feature that enable restarting devices, starting in Configuration Manager version 1710. A coluna de reinicialização pendente pode ajudar a identificar os dispositivos que precisam de uma reinicialização.The pending restart column can help identify devices that need a restart.

Parâmetros do scriptScript parameters

(Introduzido na versão 1710)(Introduced with version 1710)
Adicionar parâmetros a um script oferece maior flexibilidade para o seu trabalho.Adding parameters to a script provides increased flexibility for your work. A seguir, é descrita a funcionalidade atual do recurso Executar Scripts com os parâmetros do script para os tipos de dados String e Integer.The following outlines the Run Scripts feature's current capability with script parameters for; String, Integer data types. Também há listas de valores predefinidos disponíveis.Lists of preset values are also available. Se o seu script tiver tipos de dados sem suporte, você receberá um aviso.If your script has unsupported data types, you get a warning.

Na caixa de diálogo Criar Script, clique em Parâmetros do Script em Script.In the Create Script dialog, click Script Parameters under Script.

Cada um dos parâmetros do script tem sua própria caixa de diálogo para adicionar mais detalhes e validação.Each of your script's parameters has its own dialog for adding further details and validation.

Validação de parâmetroParameter validation

Cada parâmetro no script tem uma caixa de diálogo Propriedades do Parâmetro do Script para adicionar validação para esse parâmetro.Each parameter in your script has a Script Parameter Properties dialog for you to add validation for that parameter. Depois de adicionar a validação, ao inserir um valor para o parâmetro que não esteja de acordo com a sua validação, você receberá um erro.After adding validation, you should get errors if you are entering a value for a parameter that does not meet its validation.

Exemplo: FirstNameExample: FirstName

Neste exemplo, é possível definir as propriedades do parâmetro de cadeia de caracteres FirstName.In this example, you are able to set the properties of the string parameter, FirstName.

Parâmetros de script – cadeia de caracteres

A seção de validação da caixa de diálogo Propriedades do Parâmetro de Script contém os seguintes campos para seu uso:The validation section of the Script Parameter Properties dialog contains the following fields for your use:

  • Tamanho Mínimo – número mínimo de caracteres do campo FirstName.Minimum Length - minimum number of characters of the FirstName field.
  • Tamanho Máximo – número máximo de caracteres do campo FirstName.Maximum Length- maximum number of characters of the FirstName field
  • RegEx – abreviação de Expressão Regular.RegEx - short for Regular Expression. Para saber mais sobre como usar a Expressão Regular, confira a próxima seção, Usar a validação de Expressão Regular.For more information on using the Regular Expression, see the next section, Using Regular Expression validation.
  • Erro Personalizado – útil para adicionar sua própria mensagem de erro personalizada que substitui qualquer mensagem de erro de validação do sistema.Custom Error - useful for adding your own custom error message that supersedes any system validation error messages.

Uso da validação de Expressões RegularesUsing Regular Expression validation

Uma expressão regular é uma forma compacta de programação para verificação de uma cadeia de caracteres com base em uma validação codificada.A regular expression is a compact form of programming for checking a string of characters against an encoded validation. Por exemplo, você pode verificar a ausência de um caractere alfabético maiúsculo no campo FirstName colocando [^A-Z] no campo RegEx.For example, you could check for the absence of a capital alphabetic character in the FirstName field by placing [^A-Z] in the RegEx field.

A expressão regular que processa essa caixa de diálogo tem suporte do .NET Framework.The regular expression processing for this dialog is supported by the .NET Framework. Para obter orientação sobre como usar expressões regulares, confira Expressão Regular do .NET.For guidance on using regular expressions, see .NET Regular Expression.

Exemplos de scriptScript examples

Aqui estão alguns exemplos que ilustram os scripts que você poderá usar com essa capacidade.Here are a couple examples that illustrate scripts you might want to use with this capability.

Criar uma nova pasta e arquivoCreate a new folder and file

Esse script cria uma nova pasta, e um arquivo dentro dela, com base no nome inserido.This script creates a new folder and a file within it given your naming input.

Param(
[Parameter(Mandatory=$True)]
[string]$FolderName,
[Parameter(Mandatory=$True)]
[string]$FileName,
)

New-Item $FolderName -type directory
New-Item $FileName -type file

Obter a versão do SOGet OS Version

Esse script usa a WMI para consultar o computador sobre a versão do SO.This script uses WMI to query the machine for its OS version.

Write-Output (Get-WmiObject -Class Win32_operatingSystem).Caption

Executar um scriptRun a script

Após a aprovação de um script, ele poderá ser executado em um dispositivo único ou uma coleção.After a script is approved, it can be run against a single device or a collection. Após o início da execução do script, ele é iniciado rapidamente por meio de um sistema de alta prioridade e o tempo limite esgota em uma hora.Once execution of your script begins, it is launched quickly through a high priority system that times-out in one hour. Os resultados do script são retornados usando um sistema de mensagem de estado.The results of the script are then returned using a state message system.

Para selecionar uma coleção de destinos para seu script:To select a collection of targets for your script:

  1. No console do Configuration Manager, clique em Ativos e Conformidade.In the Configuration Manager console, click Assets and Compliance.
  2. No espaço de trabalho Ativos e Conformidade, clique em Coleções de Dispositivos.In the Assets and Compliance workspace, click Device Collections.
  3. Na lista Coleções de Dispositivos, clique na coleção de dispositivos na qual você deseja executar o script.In the Device Collections list, click the collection of devices on which you want to run the script.
  4. Selecione uma coleção de sua escolha, clique em Executar Script.Select a collection of your choice, click Run Script.
  5. Na página Script do assistente Executar Script, escolha um script na lista.On the Script page of the Run Script wizard, choose a script from the list. Somente scripts aprovados são exibidos.Only approved scripts are shown.
  6. Clique em Avançar e conclua o assistente.Click Next, and then complete the wizard.

Importante

Se o script não for executado, por exemplo, porque um dispositivo de destino está desligado durante o período de uma hora, será necessário executá-lo novamente.If a script does not run, for example because a target device is turned off during the one hour time period, you must run it again.

Execução do computador de destinoTarget machine execution

O script é executado como a conta do sistema ou do computador nos clientes de destino.The script is executed as the system or computer account on the targeted client(s). Essa conta tem acesso à rede limitado.This account has limited network access. Qualquer acesso do script a sistemas remotos e locais deve ser provisionado adequadamente.Any access to remote systems and locations by the script must be provisioned accordingly.

Monitoramento do scriptScript monitoring

Depois de iniciar a execução de um script em uma coleção de dispositivos, use o procedimento a seguir para monitorar a operação.After you have initiated running a script on a collection of devices, use the following procedure to monitor the operation. Começando pela versão 1710, é possível monitorar um script em tempo real conforme ele é executado e também retornar a um relatório de uma determinada execução do recurso Executar Script.Beginning with version 1710, you are both able to monitor a script in real time as it executes, and you can also return to a report for a given Run Script execution.

Monitor de script – Status da Execução do Script

  1. No console do Configuration Manager, clique em Monitoramento.In the Configuration Manager console, click Monitoring.
  2. No espaço de trabalho Monitoramento, clique em Status do Script.In the Monitoring workspace, click Script Status.
  3. Na lista Status do Script, veja os resultados de cada script executado em dispositivos cliente.In the Script Status list, you view the results for each script you ran on client devices. Um código de saída do script de 0 geralmente indica que o script foi executado com êxito.A script exit code of 0 generally indicates that the script ran successfully.

Consulte tambémSee Also