Criar e executar scripts PowerShell a partir da consola Do Gestor de Configuração
Aplica-se a: Configuration Manager (ramo atual)
O Gestor de Configuração tem uma capacidade integrada de executar scripts PowerShell. PowerShell tem o benefício de criar scripts sofisticados e automatizados que são compreendidos e partilhados com uma comunidade maior. Os scripts simplificam a construção de ferramentas personalizadas para administrar software e permitem realizar tarefas mundanas rapidamente, permitindo-lhe obter grandes trabalhos feitos de forma mais fácil e consistente.
Nota
Na versão de 2006 e anterior, o Gestor de Configuração não permite esta funcionalidade opcional por padrão. Deve ativar esta função antes de a utilizar. Para mais informações, consulte Enable optional features from updates.
Com esta integração no Gestor de Configuração, pode utilizar a funcionalidade 'Scripts' de Execução para fazer as seguintes coisas:
- Crie e edite scripts para utilização com o Gestor de Configuração.
- Gerir o uso do script através de funções e âmbitos de segurança.
- Executar scripts em coleções ou indivíduos no local geridos Windows PCs.
- Obtenha resultados de script agregados rápidos a partir de dispositivos clientes.
- Monitorize a execução do script e veja os resultados do relatório a partir da saída do script.
Aviso
- Dado o poder dos scripts, lembramo-lo de ser intencional e cuidadoso com o seu uso. Construímos salvaguardas adicionais para o ajudar; papéis e âmbitos segregados. Certifique-se de validar a precisão dos scripts antes de executá-los e confirmar que são de uma fonte fidedigna, para evitar a execução não intencional do script. Tenha cuidado com personagens estendidos ou outras obfuscção e educá-lo sobre a garantia de scripts. Saiba mais sobre a segurança do script PowerShell
- Certos softwares anti-malware podem desencadear inadvertidamente eventos contra as funcionalidades de Execução de Scripts do Gestor de Configuração ou de CMPivot. Recomenda-se excluir %windir%\CCM\ScriptStore para que o software anti-malware permita que essas funcionalidades possam ser executadas sem interferências.
Pré-requisitos
- Para executar scripts PowerShell, o cliente deve estar a executar a versão 3.0 ou posterior do PowerShell. No entanto, se um script que executa contiver funcionalidade a partir de uma versão posterior do PowerShell, o cliente no qual executa o script deve estar a executar essa versão do PowerShell.
- Os clientes do Gestor de Configuração devem estar a executar o cliente a partir da versão 1706, ou mais tarde, para executar scripts.
- Para utilizar scripts, tem de ser membro da função de segurança adequada do Gestor de Configuração.
- Para importar e escrever scripts - A sua conta tem de criar permissões para scripts SMS.
- Para aprovar ou negar scripts - A sua conta tem de ter permissões de aprovação para scripts SMS.
- Para executar scripts - A sua conta tem de ter permissões de Script para Cobranças.
Para mais informações sobre as funções de segurança do Gestor de Configuração:
Âmbitos de segurança para scripts de execução
Funções de segurança para executar scripts
Fundamentos da administração baseada em funções.
Limitações
Executar Scripts suporta atualmente:
- Scripting languages: PowerShell
- Tipos de parâmetros: inteiro, corda e lista.
Aviso
Tenha em atenção que, ao utilizar parâmetros, abre uma área de superfície para um potencial risco de ataque de injeção powerShell. Existem várias formas de mitigar e trabalhar ao redor, tais como usar expressões regulares para validar a entrada de parâmetros ou usando parâmetros predefinidos. A melhor prática comum não é incluir segredos nos seus scripts PowerShell (sem palavras-passe, etc.). Saiba mais sobre a segurança do script PowerShell
Executar autores e aprovadores de scripts
Run Scripts usa o conceito de autores de scripts e aprovadores de scripts como papéis separados para implementação e execução de um script. Ter as funções de autor e aprovação separadas permite uma verificação de processo importante para a poderosa ferramenta que execute scripts é. Há um papel adicional de corredores de scripts que permite a execução de scripts, mas não criação ou aprovação de scripts. Ver Criar funções de segurança para scripts.
Controlo de funções de scripts
Por padrão, os utilizadores não podem aprovar um script que tenham sido autoriados. Como os scripts são poderosos, versáteis e potencialmente implantados em muitos dispositivos, pode separar os papéis entre a pessoa que autoria o script e a pessoa que aprova o script. Estes papéis dão um nível adicional de segurança contra executar um script sem supervisão. Podes desligar a aprovação secundária, para facilitar os testes.
Aprovar ou Negar um guião
Os scripts devem ser aprovados, pelo papel de aprovação do script, antes de poderem ser executados. Para aprovar um roteiro:
- Na consola do Configuration Manager, clique em Biblioteca de Software.
- No espaço de trabalho da Biblioteca de Software, clique em Scripts.
- Na lista de Scripts, escolha o script que pretende aprovar ou negar e, em seguida, no separador 'Casa', no grupo Script, clique em Aprovar/Negar.
- Na caixa de diálogo de scripts Approve ou deny, selecione Approve ou Deny para o script. Opcionalmente, insira um comentário sobre a sua decisão. Se negares um guião, não pode ser executado em dispositivos de cliente.
- Conclua o assistente. Na lista de Scripts, vês a alteração da coluna do Estado de aprovação, dependendo da ação que tomou.
Permitir que os utilizadores aprovem os seus próprios scripts
Esta aprovação é usada principalmente para a fase de teste do desenvolvimento do script.
- Na consola do Configuration Manager, clique em Administração.
- No espaço de trabalho da Administração, expanda a configuração do site e, em seguida, clique em Sites.
- Na lista de sites, escolha o seu site e, em seguida, no separador Casa, no grupo Sites, clique em Hierarquia Definições.
- No separador geral da caixa de diálogo Hierarquia Definições Properties, limpe a caixa de verificação Os autores do Script requerem um autor de scripts adicional.
Importante
Como uma boa prática, não deve permitir que um autor de guião aprove os seus próprios scripts. Só deve ser permitido num laboratório. Considere cuidadosamente o impacto potencial de alterar este cenário num ambiente de produção.
Âmbitos de segurança
O Run Scripts utiliza âmbitos de segurança, uma funcionalidade existente do Gestor de Configuração, para controlar a autoria e execução de scripts através da atribuição de tags que representam grupos de utilizadores. Para obter mais informações sobre a utilização de âmbitos de segurança, consulte a administração baseada em funções configure para o Gestor de Configuração.
Criar papéis de segurança para scripts
As três funções de segurança utilizadas para executar scripts não são criadas por padrão no Gestor de Configuração. Para criar os corredores de scripts, autores de scripts e funções de aprovadores de scripts, siga os passos delineados.
- Na consola Do Gestor de Configuração, vá a > > Funções de Segurança da Administração
- Clique com o botão direito numa função e clique em Copiar. O papel que copia tem permissões já atribuídas. Certifique-se de que só aceita as permissões que quiser.
- Dê ao papel personalizado um nome e uma descrição.
- Atribua a função de segurança as permissões descritas abaixo.
Permissões de Função de Segurança
Nome do papel: Script Runners
- Descrição: Estas permissões permitem que esta função apenas execute scripts que foram previamente criados e aprovados por outras funções.
- Permissões: Certifique-se de que o seguinte está definido para Sim.
Categoria | Permissão | Estado |
---|---|---|
Coleção | Executar Script | Yes |
Site | Ler | Yes |
SMS Scripts | Ler | Yes |
Nome do papel: Autores de script
- Descrição: Estas permissões permitem este papel a scripts de autor, mas não podem aprová-los ou executá-los.
- Permissões: Certifique-se de que estão definidas as seguintes permissões.
Categoria | Permissão | Estado |
---|---|---|
Coleção | Executar Script | No |
Site | Ler | Yes |
SMS Scripts | Criar | Yes |
SMS Scripts | Ler | Yes |
SMS Scripts | Eliminar | Yes |
SMS Scripts | Modificar | Yes |
Nome da função: Aprovadores de scripts
- Descrição: Estas permissões permitem que esta função aprove scripts, mas não podem criá-los ou executá-los.
- Permissões: Certifique-se de que as seguintes permissões estão definidas.
Categoria | Permissão | Estado |
---|---|---|
Coleção | Executar Script | No |
Site | Ler | Yes |
SMS Scripts | Ler | Yes |
SMS Scripts | Aprovar | Yes |
SMS Scripts | Modificar | Yes |
Exemplo de permissões de scripts de SMS para o papel dos autores do script
Criar um script
- Na consola do Configuration Manager, clique em Biblioteca de Software.
- No espaço de trabalho da Biblioteca de Software, clique em Scripts.
- No separador Casa, no grupo Criar, clique em Criar Script.
- Na página de Script do assistente 'Criar Script', configurar as seguintes definições:
- Nome do guião - Introduza um nome para o script. Embora possa criar vários scripts com o mesmo nome, usar nomes duplicados torna mais difícil para si encontrar o script de que necessita na consola Do Gestor de Configuração.
- Linguagem do script - Atualmente, apenas os scripts PowerShell são suportados.
- Import - Importe um script PowerShell na consola. O script é apresentado no campo Script.
- Clear - Remove o script atual do campo Script.
- Script - Exibe o script atualmente importado. Pode editar o script neste campo conforme necessário.
- Conclua o assistente. O novo script é apresentado na lista de Scripts com um estado de espera para aprovação. Antes de poder executar este script em dispositivos clientes, tem de aprová-lo.
Importante
Evite configurar um dispositivo reiniciado ou reiniciar o agente Do Gestor de Configuração quando utilizar a função 'Scripts' 'Executar'. Fazê-lo pode levar a um estado de reinício contínuo. Se necessário, existem melhorias na funcionalidade de notificação do cliente que permitem reiniciar dispositivos. A coluna de reinício pendente pode ajudar a identificar dispositivos que precisam de um recomeço.
Parâmetros do script
Adicionar parâmetros a um script proporciona uma maior flexibilidade para o seu trabalho. Pode incluir até 10 parâmetros. Os seguintes contornos da capacidade atual da funcionalidade De Scripts de Execução com parâmetros de script para; String, tipos de dados inteiros. Estão também disponíveis listas de valores predefinidos. Se o seu script tiver tipos de dados não suportados, receberá um aviso.
No diálogo 'Criar script', clique em Parâmetros de Script no Script.
Cada um dos parâmetros do seu script tem o seu próprio diálogo para adicionar mais detalhes e validação. Se houver um parâmetro padrão no script, será enumerado no uI do parâmetro e pode defini-lo. O Gestor de Configuração não substituirá o valor predefinido, uma vez que nunca modificará o script diretamente. Pode pensar nisto como "valores sugeridos pré-povoados" são fornecidos na UI, mas o Gestor de Configuração não fornece acesso a valores "predefinidos" no tempo de execução. Isto pode ser trabalhado ao editar o script para ter os predefinidos corretos.
Importante
Os valores dos parâmetros não podem conter uma única cotação.
Há uma questão conhecida em que os valores dos parâmetros que incluem ou são incluídos em cotações únicas não são passados para o script corretamente. Ao especificar os valores de parâmetros predefinidos que contenham um espaço dentro de um script, utilize, em vez disso, citações duplas. Ao especificar os valores de parâmetro padrão durante a criação ou execução de um Script, cercar o valor padrão em cotações duplas ou únicas não é necessário, independentemente de o valor conter ou não um espaço.
Validação por parâmetros
Cada parâmetro no seu script tem um diálogo Script Parameter Properties para que possa adicionar validação para esse parâmetro. Depois de adicionar validação, deve obter erros se estiver a introduzir um valor para um parâmetro que não satisfaça a sua validação.
Exemplo: Primeiro Nome
Neste exemplo, é possível definir as propriedades do parâmetro de corda, FirstName.
A secção de validação do diálogo Script Parameter Properties contém os seguintes campos para a sua utilização:
- Comprimento Mínimo - número mínimo de caracteres do campo FirstName.
- Comprimento Máximo- número máximo de caracteres do campo FirstName
- RegEx - abreviatura de Expressão Regular. Para obter mais informações sobre a utilização da Expressão Regular, consulte a secção seguinte, utilizando a validação de expressão regular.
- Erro Personalizado - útil para adicionar a sua própria mensagem de erro personalizada que substitui quaisquer mensagens de erro de validação do sistema.
Utilização da validação regular da expressão
Uma expressão regular é uma forma compacta de programação para verificar uma série de caracteres contra uma validação codificada. Por exemplo, pode verificar a ausência de um carácter alfabético maiúsculo no campo FirstName [^A-Z]
colocando-se no campo RegEx.
O processamento regular de expressão para este diálogo é suportado pela .NET Framework. Para obter orientações sobre a utilização de expressões regulares, consulte .NET Expressão Regular e Linguagem de Expressão Regular.
Exemplos de script
Aqui estão alguns exemplos que ilustram scripts que você pode querer usar com esta capacidade.
Criar uma nova pasta e arquivar
Este script cria uma nova pasta e um ficheiro dentro da pasta, dada a sua entrada de nomeação.
Param(
[Parameter(Mandatory=$True)]
[string]$FolderName,
[Parameter(Mandatory=$True)]
[string]$FileName
)
New-Item $FolderName -type directory
New-Item $FileName -type file
Obter versão OS
Este script utiliza o WMI para consultar a máquina para a sua versão SO.
Write-Output (Get-WmiObject -Class Win32_operatingSystem).Caption
Editar ou copiar scripts PowerShell
Pode editar ou copiar um script PowerShell existente utilizado com a funcionalidade 'Scripts' de execução. Em vez de recriar um script que precisa de alterar, edite-o agora diretamente. Ambas as ações usam a mesma experiência de assistente que quando crias um novo script. Quando edita ou copia um script, o Gestor de Configuração não persiste no estado de aprovação.
Dica
Não edites um guião que esteja a funcionar ativamente com clientes. Eles não vão terminar de executar o script original, e você pode não obter os resultados pretendidos destes clientes.
Editar um script
- Vá ao nó scripts sob o espaço de trabalho da Biblioteca de Software.
- Selecione o script para editar e, em seguida, clique em Editar na fita.
- Altere ou reidporte o seu script na página Detalhes do Script.
- Clique em seguida para ver o Resumo e, em seguida, Feche quando terminar a edição.
Copiar um script
- Vá ao nó scripts sob o espaço de trabalho da Biblioteca de Software.
- Selecione o script para copiar e, em seguida, clique em Copiar na fita.
- Mude o nome do script no campo do nome script e faça quaisquer edições adicionais que possa necessitar.
- Clique em seguida para ver o Resumo e, em seguida, Feche quando terminar a edição.
Executar um roteiro
Depois de aprovado um script, pode ser executado contra um único dispositivo ou uma coleção. Assim que a execução do seu guião começa, é lançado rapidamente através de um sistema de alta prioridade que se desem- lhe em uma hora. Os resultados do script são devolvidos usando um sistema de mensagem estatal.
Para selecionar uma coleção de alvos para o seu script:
- Na consola do Configuration Manager, clique em Ativos e Compatibilidade.
- Na área de trabalho Ativos e Compatibilidade , clique em Coleções de Dispositivos.
- Na lista de Recolhas de Dispositivos, clique na recolha de dispositivos nos quais pretende executar o script.
- Selecione uma coleção à sua escolha, clique em Executar Script.
- Na página do Script do assistente do Script run, escolha um script da lista. Apenas são apresentados scripts aprovados.
- Clique em seguida, e, em seguida, complete o assistente.
Importante
Se um script não funcionar, por exemplo, porque um dispositivo alvo é desligado durante o período de uma hora, deve executá-lo novamente.
Execução da máquina-alvo
O script é executado como o sistema ou conta de computador no(s) cliente(s) alvo. Esta conta tem acesso limitado à rede. Qualquer acesso a sistemas e localizações remotas pelo script deve ser previsto em conformidade.
Monitorização do script
Depois de ter iniciado a execução de um script numa coleção de dispositivos, utilize o seguinte procedimento para monitorizar a operação. É capaz de monitorizar um script em tempo real à medida que executa, e mais tarde voltar ao estado e resultados para uma determinada execução do Script. Os dados do estado do script são limpos como parte da tarefa de manutenção de Operações de Cliente Envelhecidas ou eliminação do script.
Na consola 'Gestor de Configuração', clique em 'Monitorização'.
No espaço de trabalho de monitorização, clique no Estado do Script.
Na lista de Status do Script, vê os resultados de cada script que executou em dispositivos clientes. Um código de saída do script de 0 geralmente indica que o script foi corrido com sucesso.
Saída do script
Saída do script de retorno do cliente utilizando a formatação JSON canalizando os resultados do script para o cmdlet ConvertTo-Json. O formato JSON retorna consistentemente a saída de script legível. Para scripts que não devolvem objetos como saída, o ConvertTo-Json cmdlet converte a saída numa simples cadeia que o cliente devolve em vez de JSON.
Scripts que obtenham um resultado desconhecido, ou onde o cliente estava offline, não aparecerão nos gráficos ou no conjunto de dados.
Evite devolver a grande saída do script uma vez que é truncado a 4 KB.
Converta um objeto enum num valor de corda nos scripts para que sejam corretamente exibidos em formatação JSON.
Pode ver a saída de script detalhada em formato JSON cru ou estruturado. Esta formatação facilita a leitura e análise da saída. Se o script devolver textos em formatados JSON válidos ou a saída puder ser convertida para JSON utilizando o cmdlet ConverteTo-Json PowerShell, então veja a saída detalhada como saída JSON ou Saída Bruta. Caso contrário, a única opção é a saída do Script.
Exemplo: A saída do script é convertível para json válido
Comando: $PSVersionTable.PSVersion
Major Minor Build Revision
----- ----- ----- --------
5 1 16299 551
Exemplo: A saída do script não é válida JSON
Comando: Write-Output (Get-WmiObject -Class Win32_OperatingSystem).Caption
Microsoft Windows 10 Enterprise
Ficheiros de registo
Sobre o cliente, por padrão em C:\Windows\CCM\logs:
- Scripts.log
- CcmMessaging.log
No MP, por defeito em C:\SMS_CCM\Logs:
- MP_RelayMsgMgr.log
No servidor do site, por predefinição em C:\Ficheiros de programa\Gestor de configuração\Logs:
- SMS_Message_Processing_Engine.log