Muitos desenvolvedores amor PowerShell, e por uma boa razão: ele adiciona potência, funcionalidade e flexibilidade para o Prompt de Comando do Windows, onde muitos de nós passamos um bom tempo. Ele vem, no entanto, com um pouco de uma curva de aprendizagem, mas uma vez que você domina os comandos essenciais que você precisa saber, é a produtividade em esteróides.,os comandos PowerShell são conhecidos como cmdlets, e estes cmdlets são a força motriz por trás de suas capacidades funcionais. A partir de comandos que melhoram a experiência global do Windows para comandos úteis para o trabalho de desenvolvimento, existem dezenas de comandos importantes que os desenvolvedores devem saber., Nós reunimos esta lista para servir como um guia de referência útil para aqueles que estão apenas começando a explorar o poder do PowerShell, bem como aqueles que querem subir de nível o seu PowerShell experiência, incluindo:
- Basic Cmdlets do PowerShell
- Comandos do PowerShell para fazer as Coisas
- Cmdlets para Monitoramento de Desempenho, Teste e Depuração
além de cmdlets, existem dezenas de parâmetros e métodos que ajudam você a obter o máximo de seus scripts., O parâmetro WhatIf é particularmente útil para testar scripts PowerShell sem realmente executá-los (@pluralsight). Existem normalmente vários parâmetros e métodos disponíveis para cada comando. Os comandos listados abaixo são um bom ponto de partida para qualquer desenvolvedor, mas para realizar plenamente os benefícios, você deve dominar parâmetros e outros métodos também.
Basic PowerShell Cmdlets
estes comandos básicos PowerShell são úteis para obter informações em vários formatos, configurar a segurança e relatórios básicos.,
Get-Command
Get-Command é um cmdlet de referência de fácil utilização que mostra todos os comandos disponíveis para utilização na sua sessão actual.
simplesmente escreva neste comando:
get-command
o resultado será parecido com isto (@MS_ITPro):
2. Get-Help
o comando Get-Help é essencial para qualquer pessoa que utilize o PowerShell, proporcionando acesso rápido à informação de que necessita para executar e trabalhar com todos os comandos disponíveis.
se quisesse alguns exemplos, por exemplo, introduziria o seguinte (@jp_jofre):
3., Set-ExecutionPolicy
Microsoft desactiva scripting por padrão para evitar scripts maliciosos de executar no ambiente PowerShell. Os programadores querem ser capazes de escrever e executar scripts, no entanto, por isso o comando Set-ExecutionPolicy permite-lhe controlar o nível de segurança em torno de scripts PowerShell. Poderá definir um dos quatro níveis de segurança:
- Restricted: este é o nível de segurança por omissão que bloqueia os programas PowerShell da execução. Neste nível de segurança, você só pode introduzir comandos interativamente.,
- todos assinados: este nível de segurança permite que scripts sejam executados somente se eles forem assinados por uma editora confiável.
- Assinatura Remota: neste nível de segurança, todos os scripts PowerShell que foram criados localmente são autorizados a correr. Scripts criados remotamente são permitidos executar somente se eles foram assinados por um editor respeitável.
- irrestrito: como seu nome sugere, o nível de segurança irrestrito permite que todos os scripts sejam executados removendo todas as restrições da Política de execução.,
da mesma forma, se estiver a trabalhar num ambiente desconhecido, poderá descobrir facilmente o que a Política de execução actual está a usar este comando:
Get-ExecutionPolicy
verifique este tópico no SuperUser para obter mais informações sobre a configuração da Política de execução em PowerShell. (@StackExchange)
Get-Service
também é útil saber que Serviços estão instalados no sistema., Pode aceder facilmente a esta informação com o seguinte comando:
Get-Service
A saída será algo como o seguinte (@MS_ITPro):
Se você precisa saber se um determinado serviço é instalado, você pode acrescentar o Nome do parâmetro e o nome do serviço e o Windows irá mostrar o estado do serviço. Além disso, você pode alavancar as capacidades de filtragem para retornar um subconjunto específico de serviços atualmente instalados., O exemplo a seguir irá resultar em uma saída de dados do comando Get-Service, que foi canalizado para o cmdlet Where-Object, que, em seguida, filtra tudo o que os serviços que foram interrompidos:
Get-Service | Where-Object {$_.status -eq "stopped"}
confira este post para alguns exemplos adicionais de Serviço em ação.
5. ConvertTo-HTML
Se você precisar extrair dados que você pode usar em um relatório ou enviar para outra pessoa, o ConvertTo-HTML é uma maneira simples de fazê-lo., Para usá-lo, canalize o resultado de outro comando para o comando ConvertTo-HTML e use a opção-Property para especificar quais as propriedades de saída que deseja no ficheiro HTML. Você também precisa fornecer um nome de arquivo.
Por exemplo, o código a seguir cria uma página HTML que lista o PowerShell aliases no console atual:
PS C:\> get-alias | convertto-html > aliases.htmPS C:\> invoke-item aliases.htm
Bônus: O
Export-CSV
cmdlet funções em muito da mesma maneira, mas as exportações de dados para um .Ficheiro CSV em vez de HTML., Use
Select-Object
para indicar quais as propriedades que deseja incluir no resultado.
confira este artigo a partir de 4sysops para obter mais informações sobre a utilização eficaz do ConvertTo-HTML (@adbertram).
6. Get-EventLog
Pode de facto usar o PowerShell para processar os registos de eventos da sua máquina usando o cmdlet do Get-EventLog. Existem vários parâmetros disponíveis. Use o botão-Log seguido pelo nome do arquivo de log para ver um log específico., Usaria o seguinte comando, por exemplo, para ver o registo da aplicação:
Get-EventLog -Log "Application"
confira mais alguns exemplos de Get-EventLog em acção neste post (@nextofwindows). Outros parâmetros comuns incluem (@SS64):
- -Verbose
- -Debug
- -ErrorAction
- -ErrorVariable
- -WarningAction
- -Outvariable
- -OutBuffer
- -OutVariable
Get-Process
Muito como ter uma lista de serviços disponíveis, muitas vezes é útil ser capaz de obter uma rápida lista de todos os processos actualmente em execução., O comando Get-Process coloca esta informação ao seu alcance.Bônus: Use o Stop-Process para parar processos que estão congelados ou não estão mais respondendo. Se você não tem certeza de que processo está atrasando você, use Get-Process para identificar rapidamente o processo problemático. Uma vez que você tem o nome ou ID do processo, use Stop-Process para terminá-lo.
Aqui está um exemplo., Execute este comando para encerrar todas as instâncias em execução do bloco de notas (@MS_ITPro):
Stop-Process -processname notepad
Você pode usar caracteres curinga, também, tal como o exemplo seguinte, que encerra todas as instâncias do bloco de notas, bem como quaisquer outros processos, começando com a nota:
Stop-Process -processname note*
confira este post para obter mais informações sobre matando processos com PowerShell (@howtogeek):
8. Limpar o histórico
e se quiser limpar os itens do seu histórico de comandos? Fácil de usar o cmdlet de história clara. Você também pode usá-lo para excluir apenas comandos específicos., Por exemplo, o seguinte comando deve excluir comandos que inclua “ajuda” ou “comando” (@MS_ITPro):
PS C:\> Clear-History -Command *help*, *command
Se você quiser adicionar as entradas para a sessão, utilize:
Add-History
confira neste post algumas informações úteis sobre como limpar o histórico e pré-carga da história com uma lista de alguns comandos (@MS_ITPro).,
Where-Object
Where-Object é um dos mais importantes cmdlets para saber, como ele permite que você tire um conjunto de dados e passá-lo ainda mais para baixo o seu pipeline de filtragem (@jonathanmedd):
Get-Service | Where-Object {$_.Status -eq 'Running'}Status Name DisplayName------ ---- -----------Running AdobeARMservice Adobe Acrobat Update ServiceRunning AppHostSvc Application Host Helper ServiceRunning Appinfo Application InformationRunning AudioEndpointBu... Windows Audio Endpoint BuilderRunning Audiosrv Windows AudioRunning BFE Base Filtering EngineRunning BITS Background Intelligent Transfer Ser...Running BrokerInfrastru... Background Tasks Infrastructure Ser...Running Browser Computer BrowserRunning CDPSvc Connected Devices Platform Service
10. Set-AuthenticodeSignature
Se quiser manter o seu trabalho seguro na produção e evitar modificações, use Set-AuthenticodeSignature para adicionar uma assinatura Autenticode a um programa ou ficheiro.
comandos PowerShell para obter coisas feitas
quando se trata de produtividade, PowerShell pode ajudá-lo a fazer as coisas com os seguintes comandos.
11., ForEach-Object
o cmdlet ForEach-Object realiza uma operação contra cada item num grupo específico de objectos de entrada. Enquanto muitos cmdlets trabalham com todos os objetos em uma coleção de qualquer maneira, você vai precisar de ForEach-Object para as situações em que você quer fazer outras modificações ou aplicar formatação específica para todos os objetos em uma coleção.
Aqui está um exemplo (@MS_ITPro)., Se você quiser exibir uma lista de nomes de processo e deseja que esses nomes para compor em ciano, você pode tentar o seguinte:
Get-Process | Write-Host $_.name -foregroundcolor cyan
Mas acima produz o seguinte erro:
At line:1 char:25+ get-process | write-host <<<< $_.name -foregroundcolor cyan Write-Host : The input objectcannot be bound to any parameters for the command either because the command does nottake pipeline input or the input and its properties do not match any of the parametersthat take pipeline input.
Porque o cmdlet Write-Host não entende o que você deseja fazer com os dados que são enviados através da tubulação.
Então, usando o cmdlet ForEach-Object resolve esse problema:
Get-Process | ForEach-Object {Write-Host $_.name -foregroundcolor cyan}
confira este tutorial para obter mais informações sobre ForEach-Object e trabalhar com loops (@tomsitpro).
12., Clear-Content
Se quiser apagar o conteúdo de um item mas manter o próprio item, irá usar o cmdlet de conteúdo claro:
Clear-Content C:\Temp\TestFile.txt
Poderá também usar este comando para limpar o conteúdo de todos os ficheiros com uma extensão de ficheiro especificada. O seguinte código limparia o conteúdo de todos os arquivos com o .txt extension, for instance:
Clear-Content -path * -filter *.TXT –force
You can also use wildcard characters. Além disso, você pode limpar o conteúdo de qualquer tipo de arquivo, de .txt files to .documento, .xls, e mais.
confira este post para mais detalhes.
13., Checkpoint-Computer
Se você está fazendo grandes mudanças ou executando uma experiência arriscada, você pode definir um ponto de restauração em sua máquina com o Checkpoint-Computer cmdlet.
Note que você só pode criar um ponto de restauração usando este cmdlet uma vez a cada 24 horas. Se você executar o comando novamente, ele irá manter o ponto de restauração anterior:
confira este artigo do MCP Mag para mais (@MCPmag).
Compare-Object
é muitas vezes útil ser capaz de comparar dois objetos diretamente., Você pode fazer isso usando Compare-Object, que gera um relatório sobre as diferenças entre dois conjuntos como (@Marcam923):
15. Convert from-StringData
Use convert from-StringData to convert a string containing one or more value pairs to a hash table. Aqui está um exemplo de como o comando se parece:
$settings = $TextData | ConvertFrom-StringData
Este comando é útil numa variedade de situações, como quando você deseja gravar a configuração para um programa PowerShell para permitir que outros editem a configuração sem trabalhar directamente no código do programa.,
converto-SecureString
Converte uma cadeia de caracteres padrão cifrada para uma cadeia Segura ou texto simples para uma cadeia segura usando ConvertTo-SecureString. Este cmdlet é usado em conjunto com Convert From-SecureString e Read-Host (@AdmArsenal):
ConvertTo-XML
Use o ConvertTo-XML cmdlet para criar uma representação baseada em XML de um objecto. Isto também é chamado de serialização, e é um processo útil para salvar dados para posterior reutilização. Note que é importante que a sua expressão escreva objectos no oleoduto., Qualquer coisa que use Write-Host não vai escrever para o pipeline e, portanto, não pode ser serializado. Aqui está um exemplo de ConvertTo-XML em ação (@PetriFeed):
Get-Service wuauserv -ComputerName chi-dc04,chi-p50,chi-core01 |Export-Clixml -Path c:\work\wu.xml
O cmdlet específico usado no exemplo acima, o Export-Clixml, é adequado para a maioria dos propósitos. Ele converte a saída de uma expressão PowerShell para XML e a guarda em um arquivo.
18. New-AppLockerPolicy
New-AppLockerPolicy cria uma nova política AppLocker a partir de uma lista de informações de arquivos e outras opções de criação de regras., No total, existem cinco cmdlets que permitem que você interaja com AppLocker, incluindo (@RootUsers_):
- Get-AppLockerFileInformation: obtém a informação necessária para a criação de Regras do AppLocker a partir de uma lista de arquivos ou do registro de eventos.
- Get-AppLockerPolicy: usado para recuperar uma política local, eficaz ou de domínio AppLocker.
- New-AppLockerPolicy: como mencionado, este cmdlet é usado para criar novas políticas AppLocker.
- Set-AppLockerPolicy: define a política do AppLocker para um objeto de política de grupo especificado.,
- Test-AppLockerPolicy: usado para determinar se um usuário ou grupo de usuários será capaz de realizar certas ações com base na política.
19. New-ItemProperty
New-ItemProperty cria uma nova propriedade para um item e define o seu valor. Você pode usá-lo para criar e alterar valores de registro e dados (propriedades de uma chave de registro), por exemplo.
confira este tutorial de mnaoumov.NET para alguns trabalhos úteis usando este cmdlet (@mnaoumov).
20. New-Object
para criar uma instância de uma Microsoft .,NET Framework ou Component Object Model (COM) object, use the New-Object cmdlet.
Aqui está um exemplo que cria um novo objecto usando um novo objecto, guarda-o numa variável, depois canaliza-o para adicionar-Membro, que irá então adicionar propriedades ou métodos especificados no objecto criado (@gngrninja):
21. New-WebServiceProxy
New-WebServiceProxy cria um objecto proxy de serviço web que lhe permite usar e gerir o serviço web a partir de within PowerShell., Este cmdlet é uma coisa bonita para os desenvolvedores – torna desnecessário escrever um monte de código complexo para tentar realizar algo em PowerShell quando você pode simplesmente chamar outro serviço que já torna possível.
Aqui está um exemplo:
Agora você pode executar o seguinte para visualizar uma lista de todos os métodos disponíveis:
$proxy | gm -memberType Method
22. New-WSManInstance
Similarly to New-WebServiceProxy, New-WSManInstance creates a new instance of a management resource.,
confira este tutorial para obter um exemplo completo passo-a-passo de como obter a informação de que necessita para executar este programa com sucesso (@jonathanmedd).
23., Novo-WSManSessionOption
Novo-WSManSessionOption cria uma nova sessão de gerenciamento da tabela de hash usado como parâmetros de entrada para outros WS-cmdlets de Gerenciamento, incluindo:
- Get-WSManInstance
- Set-WSManInstance
- Invoke-WSManAction
- Connect-WSMan
Aqui está a sintaxe (@SAPIENTech):
Select-Object
O cmdlet Select-Object seleciona as propriedades especificadas de um único objeto ou grupo de objetos. Além disso, ele pode selecionar objetos únicos de um array ou um número especificado de objetos do início ou fim de um array.,
PS > Get-Process | Sort-Object name -Descending | Select-Object -Index 0,1,2,3,4
este tutorial fornece mais informações sobre as várias formas de usar o Select-Object (@infosectactico).
Existem outros cmdlets com funções semelhantes, incluindo:
- Select-String: encontra texto em strings ou ficheiros.
- Select-XML: encontra o texto numa cadeia ou documento XML.
25. Set-Alias
Set-Alias é um grande comando para aumentar a produtividade. Permite-lhe definir um nome alternativo para um cmdlet ou outro elemento de comando na sessão actual (semelhante a um atalho de teclado) para que possa trabalhar mais depressa.,
O exemplo a seguir define o bloco de notas para np na sessão atual usando Set-Alias (@powershellatoms):
New-Alias np c:\windows\system32\notepad.exe
Note que você também pode personalizar o seu PowerShell perfil com os aliases você usa com mais frequência (@howtogeek).
26. Set-StrictMode
Set-StrictMode estabelece e aplica regras de codificação em scripts, blocos de scripts e expressões. É um comando útil para fazer cumprir a qualidade do código e evitar que você se desloque e escreva código desleixado quando são 3:00 da manhã e você não tem dormido em dois dias (@adbertram).,
Para usá-lo, existem dois parâmetros a considerar: -Fora e a Versão e a Versão tem três valores possíveis:
- Versão 1.0: Impede a utilização de variáveis que ainda não foram inicializados (como Opção Explícita em VBScript)
- Versão 2.0: Impede a utilização de variáveis que não foram inicializados, e também evita o chamado dos não-existente propriedades em objetos, impede que você chamar uma função como um método, e proíbe a criação de variáveis sem um nome.,
- versão mais recente: esta opção selecciona a versão Estrictmode mais recente disponível e usa-a. Esta é uma boa opção porque significa que a versão mais recente StrictMode é usada independentemente da versão de PowerShell que você está usando.
A tarefa de espera
a tarefa de espera suprime a linha de comandos até que as tarefas de fundo em execução na sessão actual estejam completas. No entanto, o Wait-Job não mostra a saída dos trabalhos, mas pode ser usado em conjunto com o Receive-Job. Multithreading é possível em PowerShell graças a-Jobs.
Write-Progress
quem não gosta de uma barra de Estado?, Monitore o seu progresso usando Write-Progress, que mostra uma barra de progresso dentro de uma janela de comando PowerShell do Windows.
Aqui está um exemplo que lhe dá uma barra de progresso completo e sequências de execução (@credera):
Cmdlets para monitorização de desempenho, teste e depuração
Existem também uma variedade de cmdlets úteis para os programadores para resolução de problemas, testes, depuração e monitorização. Aqui estão alguns que você precisa saber.
processo de depuração
os programadores adoram depuração! Bem, nós gostamos ainda mais quando não há bugs para eliminar, mas infelizmente isso nem sempre é o caso., Com o PowerShell, você pode depurar um processo usando o cmdlet do processo de depuração.
pode também depurar as tarefas usando a depura-tarefa (@MS_ITPro). E, você pode definir pontos de paragem ou usar o cmdlet do Depurador de espera:
30. Desactive-PSBreakpoint
Se tiver definido pontos de paragem de uma só vez, mas quiser eliminá-los, faça-o facilmente com o Disable-PSBreakpoint, que desactiva os pontos de paragem na consola actual. Aqui está a sintaxe (@ActiveXperts):
Disable-PSBreakpoint Disable-PSBreakpoint
Em alternativa, se quiser activar os pontos de paragem na consola actual, use o Enable-PSBreakpoint.,
Get-Counter
Get-Counter recebe dados em tempo real do contador de desempenho a partir da instrumentação de monitoramento de desempenho no Windows OS. É usado para obter dados de desempenho de computadores locais ou remotos em intervalos de amostra específicos que você especifica.
neste exemplo, você irá obter um contador com um intervalo de amostra para uma amostra máxima especificada (@MS_ITPro):
PS C:\> Get-Counter -Counter "\Processor(_Total)\% Processor Time" -SampleInterval 2 -MaxSamples 3
no exemplo abaixo, este comando obtém dados de contador específicos de vários computadores:
32., Export-Counter
Export-Counter exports PerformanceCounterSampleSet objects as counter log files. Duas propriedades estão disponíveis:
- CounterSamples: Gets and sets the data for the counters.
- Timestamp: recebe e define a data e hora em que os dados da amostra foram recolhidos.,
E vários métodos, que são herdadas do Objeto:
- Equals(Object)
- Finalize()
- GetHashCode()
- GetType()
- MemberwiseClone()
- ToString()
Por exemplo, o comando a seguir usa Get-Contador para recolher Tempo de Processador de dados e exporta para um .ficheiro blg usando o Export-Counter (@TechGenix):
Get-Counter "\Processor(*)\% Processor Time" | Export-Counter -Path C:\Temp\PerfData.blg
33. A localização do teste
permite-lhe verificar se existem itens numa determinada localização., Por exemplo, se você está planejando usar outro comando em um arquivo especificado, você pode precisar verificar se o arquivo existe para evitar lançar um erro.
Test-Path C:\Scripts\Archive
Se a pasta existir, retornará verdadeiro; se não existir, retornará falso.
também pode trabalhar com os caminhos usados por outros fornecedores de PowerShell. Por exemplo, se precisar de saber se o seu computador tem uma variável de ambiente chamada username, poderá usar o seguinte:
Test-Path Env:\username
Test-Path funciona com variáveis, certificados, alcunhas e funções., Confira este post do TechNet para mais detalhes (@MS_ITPro).
34. Get-WinEvent
veja os registos de eventos do Windows usando o Get-WinEvent. Para obter uma lista de registos disponíveis, use:
Get-WinEvent -ListLog *
em Seguida, para rever os detalhes de um log específico, substituir * com o nome de (tubo de saída para format-list para exibir todos os detalhes):
Get-WinEvent -ListLog $logname | fl *
Você também pode exibir todos os eventos em um log usando:
Get-WinEvent -LogName System
confira este tutorial para mais detalhes (@rakheshster).,
Invoke-TroubleshootingPack
Troubleshooting packs são coleções de scripts PowerShell e conjuntos que o ajudam a resolver, diagnosticar e reparar problemas comuns do sistema (@ITNinjaSite). Encontrar pacotes de solução de problemas em:
C:\Windows\Diagnostics\System
Você pode executar este script para obter uma lista de todos os pacotes de solução de problemas disponíveis no sistema atual (@TechGenix):
Get-ChildItem C:\Windows\Diagnostic\System
em Seguida, a partir de um elevado janela do PowerShell, execute um pacote de solução de problemas usando este comando:
Invoke-TroubleshootingPack (Get-TroubleshootingPack C:\Windows\diagnostics\system\networking)
36., Measure-Command
Se quiser cronometrar as operações em PowerShell, o Measure-Command é um cmdlet que precisa de saber. Mede quanto tempo um script ou scriptblock deve ser executado. Aqui está um exemplo (@ToddKlindt):
Measure-Command { Mount-SPContentDatabase –Name wss_content_portal –WebApplication http://portal.contoso.com }
a saída é um objeto de tempo-Espan, por isso contém propriedades como Hora, Minuto, Segundo, etc., e é fácil adaptar a saída de acordo com suas preferências.
Measure-Object
Pode também querer saber quão grande é um dado objecto., Use Measure-Object to calculate the numeric properties of any object, including characters, words, and lines in a string object, such as files of text.,
Basta especificar o nome e o tipo de medição a efectuar, juntamente com parâmetros, tais como (@WindowsITPro):
- -Soma: adiciona valores
- -Média: calcula o valor médio
- -Mínimo: encontrar o valor mínimo
- -Máximo: encontra o valor máximo
O seguinte comando soma o VirtualMemorySize valores de propriedade para todos os objetos de processo:
Get-Process | measure VirtualMemorySize -Sum
Novo Evento
Novo Evento é usado para criar um novo evento., Um cmdlet relacionado é New-EventLog, que cria um novo log de eventos, bem como uma nova fonte de eventos em um computador local ou remoto. Se você tem um motor de automação suportado pela PowerShell, é uma boa prática configurar um log de eventos (através da criação de um tipo personalizado de log de eventos) que regista todas as mensagens enviadas pela PowerShell. Este é um exemplo onde você pode implementar o registro personalizado no Visualizador de eventos.,
Comece por criar um novo Registo de Eventos LogName (@BundaloVladimir):
New-EventLog -LogName Troubleshooting_Log -Source FalloutApp
em Seguida, para enviar mensagens para o seu novo registo de eventos, execute o seguinte usando a Gravação de Log cmdlet:
Write-EventLog -log Troubleshooting_Log -source FalloutApp -EntryType Information -eventID 10 -Message "FalloutApp has been successfully installed"
Receive-Job
Se você precisa para obter os resultados do segundo plano do Windows PowerShell trabalhos na sessão atual, use Receive-Job. Isto é geralmente usado depois de usar o Start-Job para começar um trabalho quando você precisa ver os resultados específicos.,
Receive-Job -Name HighMemProcess
Check out this helpful tutorial on using Receive-Job and what to do if there are seemingly no results (@proxb).
40. Register-EngineEvent
Este cmdlet é usado para subscrever os eventos gerados pelo motor PowerShell do Windows e o novo evento cmdlet. Por exemplo, o seguinte comando subscreve um evento quando a sessão PowerShell actual sai e grava a informação (como a data e a hora) num ficheiro de Registo (@jonathanmedd):
Register-EngineEvent PowerShell.Exiting-Action {"PowerShell exited at " + (Get-Date) | Out-File c:\log.txt -Append}
41., Register-ObjectEvent
Register-ObjectEvent é semelhante ao Register-EngineEvent, mas ao invés de subscrever eventos gerados pelo motor PowerShell e New-Event, ele subscreve os eventos gerados por um objeto Framework Microsoft.NET.
Aqui está um exemplo (@NetworkWorld):
Existem outras Registar – cmdlets que podem ser úteis, incluindo:
- Register-PSSessionConfiguration: Cria e registra uma nova configuração de sessão.
- Register-WmiEvent: este cmdlet subscreve um evento WMI.
42., Remove-Event
quando quiser remover um evento, use o cmdlet Remove-Event. Se necessitar de remover um registo completo de Eventos, irá usar o Remove-EventLog, que apaga um registo de eventos ou não-regista uma fonte de eventos.
alternativamente, Unregister-Event cancela uma assinatura de Evento, mas não apaga um evento da fila de eventos (@SS64).
43. Set-PSDebug
Este cmdlet activa e desactiva as funcionalidades de depuração do programa. Ele também define o nível de rastreamento e comuta StrictMode.,
ao usar o Set-PSDebug no topo do seu ficheiro de ‘script’ logo após a instrução param () (se existir), poderá evitar erros com programas que o PowerShell não fornece informações adequadas sobre os objectivos de resolução de problemas. Aqui está um exemplo (@r_keith_hill):
44. Iniciar o ‘Sleep’
Se necessitar de suspender a actividade num programa ou sessão, use o ‘Start-Sleep’, que interrompe a actividade por um período de tempo especificado.
Start-Sleep -Seconds xxxStart-Sleep -Milliseconds xxx
Se necessitar de pausar um ou mais serviços em execução, deverá usar o serviço de suspensão.
45., Tee-Object
Se você está analisando desempenho ou qualidade de código, é útil ser capaz de ver a saída de um comando. Tee-Object armazena a saída de comando em um arquivo ou variável e também exibe-o na consola se for a última variável no pipeline. Se não for a última variável no oleoduto, o Tee-Object envia-a pelo oleoduto.
Aqui está a sintaxe:
46. Test-AppLockerPolicy
Test-AppLockerPolicy avalia se os arquivos de entrada são permitidos para correr para um usuário específico com base na política de AppLocker especificada.,
Test-AppLockerPolicy -Path Test-AppLockerPolicy -Path
este tutorial oferece mais detalhes sobre os parâmetros disponíveis e exemplos de Test-AppLockerPolicy in action (@powershellhelp).
Test-ComputerSecureChannel
Este cmdlet testa e repara a ligação entre um computador local e o seu domínio. Sem este comando, a solução usual era remover um computador de seu domínio e então reconectá-lo a fim de restabelecer a relação. Test-ComputerSecureChannel torna possível restabelecer a conexão em menos tempo (@WindowsITPro).,
Quando assinado como administrador local, basta executar o seguinte:
Test-ComputerSecureChannel –credential WINDOWSITPRO\Administrator –Repair
pode usar a ligação de teste para enviar pacotes de pedido de echo (pings) para um ou mais computadores.
caminho de ensaio
utilizar caminho de ensaio para determinar se todos os elementos de um caminho existem. Essencialmente, ele ajuda você a lidar com erros antes que eles ocorram. Na sua forma mais simples, devolve verdadeiro ou Falso (@MCPmag):
PS C:\> test-path c:\TruePS C:\> test-path z:\fooFalse
49. Trace-Command
Trace-Command configura e inicia o trace de um comando ou expressão especificado., Para o usar, também terá de usar o ‘Get-TraceSource’ para procurar nomes específicos usando caracteres especiais:
PS> Get-TraceSource -Name *param*
pode filtrar o resultado para corresponder à descrição do padrão que procura. Assim que identificares o possível Nome, vais usar o comando Trace para obter as respostas de que precisas. Aqui está um exemplo:
confira este post para mais detalhes sobre jogar Detetive com Trace-Command (@PowerShellMag).
50. Write-Debug
Write-Debug escreve uma mensagem de depuração na consola., Quando escreve isto numa função ou programa, não faz nada por omissão; as mensagens essencialmente ficam à espera até que modifique o seu ‘$DebugPreference ‘ ou active a opção-debug ao invocar uma função ou programa. Quando a $DebugPreference é configurada como’ Perguntar ‘ ou a opção-debug é activada, a mensagem cria um ponto de paragem, dando-lhe uma forma fácil de aparecer no modo de depuração.
tome este exemplo (@RJasonMorgan):
o exemplo acima produz o seguinte quando executado com-debug:
Deixe uma resposta