TÓPICO
Variáveis de preferência
DESCRIÇÃO RESUMIDA
Variáveis que personalizam o comportamento Windows PowerShell
DESCRIÇÃO LONGA
O Windows PowerShell inclui um conjunto de variáveis que permitem
personalizar seu comportamento. Essas "variáveis de preferência"
funcionam como as opções em sistemas baseados em GUI.
As variáveis de preferência afetam o ambiente de operação do
Windows PowerShell e todos os comandos executados no ambiente. Em
muitos casos, os cmdlets têm parâmetros que você pode usar para
substituir o comportamento de preferência por um comando específico.
A tabela a seguir lista as variáveis de preferência e seus
valores padrão.
Variável Valor padrão
-------- -------------
$ConfirmPreference High
$DebugPreference SilentlyContinue
$ErrorActionPreference Continue
$ErrorView NormalView
$FormatEnumerationLimit 4
$LogCommandHealthEvent False (not logged)
$LogCommandLifecycleEvent False (not logged)
$LogEngineHealthEvent True (logged)
$LogEngineLifecycleEvent True (logged)
$LogProviderLifecycleEvent True (logged)
$LogProviderHealthEvent True (logged)
$MaximumAliasCount 4096
$MaximumDriveCount 4096
$MaximumErrorCount 256
$MaximumFunctionCount 4096
$MaximumHistoryCount 64
$MaximumVariableCount 4096
$OFS (Space character (" "))
$OutputEncoding ASCIIEncoding object
$ProgressPreference Continue
$PSEmailServer (None)
$PSSessionApplicationName WSMAN
$PSSessionConfigurationName https://schemas.microsoft.com/powershell/microsoft.powershell
$PSSessionOption (Veja abaixo)
$VerbosePreference SilentlyContinue
$WarningPreference Continue
$WhatIfPreference 0
O Windows PowerShell também inclui as seguintes variáveis de
ambiente que armazenam preferências do usuário. Para obter mais
informações sobre as variáveis de ambiente, consulte
about_environment_variables.
Variável
--------
PSModulePath
TRABALHANDO COM VARIÁVEIS DE PREFERÊNCIA
Este documento descreve cada uma das variáveis de preferência.
Para exibir o valor atual de uma variável de preferência
específica, digite o nome da variável. Em resposta, o Windows
PowerShell fornece o valor. Por exemplo, o comando a seguir exibe
o valor da variável $ConfirmPreference.
PS> $ConfirmPreference
High
Para alterar o valor de uma variável, use uma instrução de
atribuição. Por exemplo, a instrução a seguir atribui o valor
"Medium" à variável $ConfirmPreference.
PS> $ConfirmPreference = "Medium"
Como todas as variáveis, os valores que você define são
específicos à janela do Windows PowerShell atual. Para
efetivá-las em todas as janelas do Windows PowerShell,
adicione-as ao perfil do Windows PowerShell. Para obter mais
informações, consulte about_profiles.
TRABALHANDO REMOTAMENTE
Quando você executa comandos em um computador remoto, os comandos
remotos estão sujeitos apenas ao conjunto de preferências no
cliente Windows PowerShell no computador remoto. Por exemplo,
quando você executa um comando remoto, o valor da variável
$DebugPreference no computador remoto determina como o Windows
PowerShell responde às mensagens de depuração.
Para obter mais informações sobre comandos remotos, consulte
about_remote.
$ConfirmPreference
------------------
Determina quais ações de cmdlet solicitam, automaticamente,
a confirmação do usuário antes de serem executadas.
Quando o valor de $ConfirmPreference (High, Medium, Low, None)
é maior ou igual ao risco da ação de cmdlet (High, Medium, Low,
None), o Windows PowerShell solicita automaticamente a confirmação
do usuário antes de executar a ação.
Você pode usar o parâmetro Confirm de um cmdlet para substituir
a preferência por um comando específico.
Valores válidos:
None: nenhuma ação de cmdlet é confirmada automaticamente.
Os usuários devem usar o parâmetro Confirm para solicitar
a confirmação de comandos específicos.
Low: as ações de cmdlet com risco baixo, médio ou alto são
confirmadas automaticamente. Para suprimir a confirmação
de um comando específico, use -Confirm:$false.
Medium: as ações de cmdlet com risco médio ou alto são confirmadas
automaticamente. Para habilitar a confirmação de um comando
específico, use -confirm. Para suprimir a confirmação de um
comando específico, use confirm:$false.
High : as ações de cmdlet com risco alto são confirmadas
(padrão) automaticamente. Para habilitar a confirmação de um comando
específico, use -confirm. Para suprimir a confirmação de um
comando específico, use -confirm:$false.
EXPLICAÇÃO DETALHADA
Quando uma ação de cmdlet afeta o sistema significativamente,
como a exclusão de dados ou o uso de uma quantidade
significativa de recursos do sistema, o Windows PowerShell
pode solicitar automaticamente uma confirmação antes de
executar a ação.
Por exemplo,
PS> remove-item pref2.txt
Confirmar
Tem certeza de que deseja executar esta ação?
Executando operação "Remover Arquivo" no Destino
"C:\pref2.txt".
[Y] Sim [A] Sim para Todos [N] Não [L] Não para Todos [S]
Suspender [?] Ajuda (o padrão é "Y"):
A estimativa do risco é a parte do cmdlet conhecida como
"ConfirmImpact". Você não pode alterá-la.
O Cmdlet que pode representar um risco ao sistema tem um
parâmetro Confirm que você pode usar solicitar ou suprimir
confirmação para um comando específico.
Como a maioria dos cmdlets usa o valor de risco padrão Medium, e o
valor padrão de $ConfirmPreference é High, a confirmação automática
raramente ocorre. Contudo, você pode ativar a confirmação automática
alterando o valor de $ConfirmPreference para Medium ou Low.
EXEMPLOS
Este exemplo mostra o efeito do valor padrão de $ConfirmPreferen
ce. O valor High confirma apenas ações de cmdlet de alto risco.
Como a maioria das ações é de risco médio, elas não são
confirmadas automaticamente, embora você possa usar o parâmetro
Confirm do cmdlet para solicitar confirmação de um comando
específico.
PS> $confirmpreference #Obtenha o valor
High atual da variável
PS> remove-item temp1.txt #Exclua um arquivo
PS> #Excluído sem confirmação
PS> remove-item temp2.txt -confirm #Use o parâmetro Confirm
Confirmar
Tem certeza de que deseja executar esta ação?
Executando operação "Remover Arquivo" no Destino "C:\temp2.txt".
[Y] Sim [A] Sim para Todos [N] Não [L] Não para Todos
[S] Suspender [?] Ajuda (o padrão é "Y"):
Este exemplo mostra o efeito da alteração do valor de
$ConfirmPrefernce para Medium. Como a maioria das ações de
cmdlet é de risco médio, elas são confirmadas automaticamente,
e você tem que usar o parâmetro Confirm com um valor de $false
para suprimir a solicitação de confirmação para um comando
específico.
PS> $confirmpreference = "Medium"
# Altere o valor de $ConfirmPreference
PS> remove-item temp2.txt
# A exclusão de um arquivo
dispara a confirmação
Confirmar
Tem certeza de que deseja executar esta ação?
Executando operação "Remover Arquivo" no Destino "C:\temp2.txt".
[Y] Sim [A] Sim para Todos [N] Não [L] Não para Todos
[S] Suspender [?] Ajuda (o padrão é "Y"):
PS> remove-item temp3.txt -confirm:$false # Use o parâmetro Confirm
para suprimir a confirmação
PS>
$DebugPreference
------------------
Determina como o Windows PowerShell responde a mensagens de
depuração geradas por um script, cmdlet ou provedor, ou por um
comando Write-Debug na linha de comando.
Alguns cmdlets exibem mensagens de depuração que normalmente
são mensagens muito técnicas, criadas para programadores e
profissionais de suporte técnicos. Por padrão, as mensagens
de depuração não são exibidas, mas você pode exibi-las
alterando o valor de $DebugPreference.
Você também pode usar o parâmetro Debug comum de um cmdlet
para exibir ou ocultar as mensagens de depuração para um
comando específico. Para obter mais informações, digite "get-help
about_commonparameters".
Valores válidos:
Stop: exibe a mensagem de depuração e para
a execução. Grava um erro no console.
Inquire: exibe a mensagem de depuração e pergunta
se você deseja continuar.
Continue: exibe a mensagem de depuração e continua
a execução.
SilentlyContinue: Nenhum efeito. A mensagem de depuração não é
(Default) exibida e a execução continua sem interrupção.
EXEMPLOS
Os exemplos a seguir mostram o efeito da alteração dos valores de
$DebugPreference quando em um comando Write-Debug é digitado na
linha de comando. A alteração afeta todas as mensagens de
depuração, inclusive aquelas geradas por cmdlets e scripts. Os
exemplos também mostram o uso do parâmetro Debug comum que exibe
ou oculta as mensagens de depuração relacionadas a um único comando.
Este exemplo mostra o efeito do valor padrão, "SilentlyContinue".
A mensagem de depuração não é exibida e o processamento continua.
O comando final usa o parâmetro Debug para substituir a
preferência para um único comando.
PS> $debugpreference # Obtenha o valor atual de
SilentlyContinue $DebugPreference
PS> write-debug "Hello, World"
PS> # A mensagem de depuração
não é exibida.
PS> write-debug "Hello, World" -Debug # Use o parâmetro Debug
DEBUG: Hello, World # A mensagem de depuração
é solicitada Confirmar?
Continuar esta operação?
[S] Sim [A] Sim para Todos [P] Parar Comando [U] Suspender
[?] Ajuda (o padrão é "S"):
Este exemplo mostra o efeito do valor "Continue". O comando final
usa o parâmetro Debug com um valor de $false para suprimir a
mensagem para um único comando.
PS> $debugpreference = "Continue" # Altere o valor para "Continue"
PS> write-debug "Hello, World"
DEBUG: Hello, World # A mensagem de depuração
PS> é exibida e o processamento continua.
PS> write-debug "Hello, World" -Debug:$false
# Use o parâmetro Debug com false.
PS> # A mensagem de depuração não é exibida.
Este exemplo mostra o efeito do valor "Stop". O comando final usa
o parâmetro Debug com um valor de $false para suprimir a mensagem
para um único comando.
PS> $debugpreference = "Stop" # Altere o valor para "Stop"
PS> write-debug "Hello, World"
DEBUG: Hello, World
Write-Debug: a execução do comando foi parada porque a variável do shell
"DebugPreference" está definida como Stop.
At line:1 char:12
+ write-debug <<<< "Hello, World"
PS> write-debug "Hello, World" -Debug:$false
# Use o parâmetro Debug com $false.
PS> # A mensagem de depuração não
é exibida e o processamento
não é parado.
Este exemplo mostra o efeito do valor "Inquire". O comando final
usa o parâmetro Debug com um valor de $false para suprimir a
mensagem para um único comando.
PS> $debugpreference = "Inquire"
PS> write-debug "Hello, World"
DEBUG: Hello, World
Confirmar
Continuar esta operação?
[S] Sim [A] Sim para Todos [P] Parar Comando [U] Suspender
[?] Ajuda (o padrão é "S"):
PS> write-debug "Hello, World" -Debug:$false
# Use o parâmetro Debug com $false.
PS> # A mensagem de depuração não
é exibida e o processamento continua
sem interrupção.
$ErrorActionPreference
----------------------
Determina como o Windows PowerShell responde a um erro de
não-encerramento (um erro que não para o processamento de cmdlet) na
linha de comando ou em um script, cmdlet ou provedor, como os erros
gerados pelo cmdlet Write-Error.
Você também pode usar o parâmetro ErrorAction comum de um
cmdlet para substituir a preferência para um comando
específico. Para obter mais informações, digite "get-help
about_commonparameters".
Valores válidos:
Stop: exibe a mensagem de erro e para a execução.
Inquire: exibe a mensagem de erro e
pergunta se você deseja continuar.
Continue: exibe a mensagem de erro e
continua a execução.
SilentlyContinue: Nenhum efeito. A mensagem de erro não é exibida
(Default) e a execução continua sem interrupção.
Nem $ErrorActionPreference nem o parâmetro comum ErrorAction
afetam o modo como o Windows PowerShell responde a erros de
encerramento (aqueles que param o processamento de cmdlet).
Para obter mais informações sobre o parâmetro comum
ErrorAction, digite "get-help about_commonparameters".
EXEMPLOS
Estes exemplos mostram o efeito dos valores diferentes de
$ErrorActionPreference e o uso do parâmetro comum ErrorAction
para substituir a preferência para um único comando. O parâmetro
ErrorAction tem os mesmos valores válidos que a variável
$ErrorActionPreference.
Este exemplo mostra o efeito do valor padrão Continue.
PS> $erroractionpreference
Continue # Exiba o valor da preferência.
PS> write-error "Hello, World"
# Gere um erro de não-encerramento.
write-error "Hello, World" : Hello, World
# A mensagem de erro é exibida e a
execução continua.
PS> write-error "Hello, World" -ErrorAction:SilentlyContinue
# Use o parâmetro ErrorAction com um
valor de "SilentlyContinue".
PS>
# A mensagem de erro não é exibida e
a execução continua.
Este exemplo mostra o efeito do valor SilentlyContinue.
PS> $ErrorActionPreference = "SilentlyContinue"
# Altere o valor da preferência.
PS> write-error "Hello, World"
# Gere uma mensagem de erro.
PS>
# A mensagem de erro é suprimida.
PS> write-error "Hello, World" -erroraction:continue
# Use o parâmetro ErrorAction com um
valor de "Continue".
write-error "Hello, World" -erroraction:continue : Hello, World
# A mensagem de erro é exibida
e a execução continua.
Este exemplo mostra o efeito de um erro real. Neste caso, o
comando obtém um arquivo inexistente, nofile.txt. O exemplo
também usa o parâmetro comum ErrorAction para substituir a
preferência.
PS> $erroractionpreference
SilentlyContinue # Exiba o valor da preferência.
PS> get-childitem -path nofile.txt
PS> # A mensagem de erro é suprimida.
PS> $ErrorActionPreference = "Continue"
# Altere o valor para Continue.
PS> get-childitem -path nofile.txt
Get-ChildItem: não é possível localizar o caminho
'C:\nofile.txt' porque ele não existe.
At line:1 char:4
+ get-childitem <<<< nofile.txt
PS> get-childitem -path nofile.txt -erroraction SilentlyContinue
# Use o parâmetro ErrorAction
# A mensagem de erro é suprimida.
PS> $ErrorActionPreference = "Inquire"
# Altere o valor para Inquire.
PS> get-childitem -path nofile.txt
Confirmar
Não é possível localizar o caminho 'C:\nofile.txt' porque ele
não existe.
[S] Sim [A] Sim para todos [P] Parar Comando [U] Suspender
[?] Ajuda (o padrão é "S"): s
Get-ChildItem: não é possível localizar o caminho
'C:\nofile.txt' porque ele não existe.
At line:1 char:4
+ get-childitem <<<< nofile.txt
PS> $ErrorActionPreference = "Continue"
# Altere o valor para Continue.
PS> Get-Childitem nofile.txt -erroraction "Inquire"
# Use o parâmetro ErrorAction para
substituir o valor de preferência.
Confirmar
Não é possível localizar o caminho 'C:\nofile.txt' porque ele
não existe. [S] Sim [A] Sim para Todos [P] Parar Comando
[U] Suspender [?] Ajuda (o padrão é "S"):
$ErrorView
----------
Determina o formato de exibição de mensagens de erro no
Windows PowerShell.
Valores válidos:
NormalView: uma exibição detalhada
(padrão) criada para a maioria dos usuários.
Consiste em uma descrição do
erro, o nome do objeto envolvido no
erro e setas (<<<<) que apontam para
as palavras no comando que causou o erro.
CategoryView: uma exibição sucinta, estruturada criada
para ambientes de produção. O formato
é:{Category}: ({TargetName}:{TargetType}):[{Activity}], {Reason}
Para obter mais informações sobre os campos em CategoryView,
consulte "ErrorCategoryInfo class" no Windows PowerShell SDK.
EXEMPLOS
Estes exemplos mostram o efeito dos valores ErrorView.
Este exemplo mostra como um erro será exibido quando o valor de
$ErrorView for NormalView. Neste caso, o comando Get-ChildItem é
usado para localizar um arquivo inexistente.
PS> $ErrorView # Verifique o valor.
NormalView
PS> get-childitem nofile.txt # Localize um arquivo inexistente.
Get-ChildItem: não é possível localizar o caminho 'C:\nofile.txt' porque
ele não existe.
At line:1 char:14
+ get-childitem <<<< nofile.txt
Este exemplo mostra como o mesmo erro será exibido quando o valor
de $ErrorView for CategoryView.
PS> $ErrorView = "CategoryView" # Altere o valor para
CategoryView
PS> get-childitem nofile.txt
ObjectNotFound: (C:\nofile.txt:String) [Get-ChildItem],
ItemNotFoundException
Este exemplo demonstra que o valor de ErrorView afeta apenas a
exibição do erro; ele não a estrutura do objeto de erro que é
armazenado na variável automática $erro. Para obter mais
informações sobre a variável automática $error, consulte
about_automatic_variables.
Este comando obtém o objeto ErrorRecord associado ao mais recente
erro na matriz de erro (elemento 0) e formata todas as
propriedades do objeto de erro em uma lista.
PS> $error[0] | format-list -property * -force
Exception : System.Management.Automation.ItemNotFoundExceptio
n: Cannot find path 'C:\nofile.txt' because it does not exist. at
System.Management.Automation.SessionStateInternal.GetChildItems(String
path, Boolean recurse, CmdletProviderContext context) at
System.Management.Automation.ChildItemCmdletProviderIntrinsics.Get(String path,
Boolean recurse, CmdletProviderContext context) at
Microsoft.PowerShell.Commands.GetChildItemCommand.ProcessRecord() :
TargetObject : C:\nofile.txt
CategoryInfo : ObjectNotFound: (C:\nofile.txt: String) [Get-ChildItem],
ItemNotFoundException
FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.GetChildItemCommand
ErrorDetails :
InvocationInfo : System.Management.Automation.InvocationInfo
$FormatEnumerationLimit
-----------------------
Determina quantos itens enumerados são incluídos em uma
exibição. Esta variável não afeta os objetos subjacentes;
apenas a exibição.
Quando o valor de $FormatEnumerationLimit for menor que o
número de itens enumerados, o Windows PowerShell adicionará
reticências (...) para indicar os itens não mostrados.
Valores válidos: Integers (Int32)
Valor padrão: 4
EXEMPLOS
Este exemplo mostra como usar a variável $FormatEnumerationLim
it para melhorar a exibição de itens enumerados.
O comando neste exemplo gera uma tabela que lista todos os
serviços em execução no computador em dois grupos; um para
serviços em execução e um para serviços parados. Ele usa um
comando Get-Service para obter todos os serviços e, em
seguida, enviar os resultados pelo pipeline para o cmdlet
Group-Object, que agrupa os resultados por status de serviço.
A exibição resultante é uma tabela que lista o status na
coluna Nome e os processos com aquele status na coluna Grupo.
(Para alterar os rótulos da coluna, use uma tabela de hash.
Para obter mais informações, consulte os exemplos em
"get-help format-table -examples".)
Há um máximo de quatro serviços listado na coluna Grupo para
cada status. Para aumentar o número de itens listado, aumente
o valor de $FormatEnumerationLimit para 1000.
Na exibição resultante, a lista na coluna Grupo é limitada
agora pelo comprimento de linha. No comando final no exemplo,
use o parâmetro Wrap de Format-Table para exibir todos os
processos em cada grupo Status.
PS> $formatenumerationlimit # Localize o valor
atual
4
PS> get-service | group-object -property status
# Liste todos os serviços
agrupados por status
Count Name Group
----- ---- -----
60 Running {AdtAgent, ALG, Ati HotKey Poller, AudioSrv...}
41 Stopped {Alerter, AppMgmt, aspnet_state, ATI Smart...}
# A lista é truncada
depois de quatro itens.
PS> $formatenumerationlimit = 1000
# Aumente o limite para 1000.
PS> get-service | group-object -property status
# Repita o comando.
Count Name Group
----- ---- -----
60 Running {AdtAgent, ALG, Ati HotKey Poller, AudioSrv, BITS,
CcmExec...
41 Stopped {Alerter, AppMgmt, aspnet_state, ATI Smart,
Browser, CiSvc...
PS> get-service | group-object -property status | format-table -wrap
# Adicione o parâmetro Wrap.
Count Name Group
----- ---- -----
60 Running {AdtAgent, ALG, Ati HotKey Poller, AudioSrv,
BITS, CcmExec, Client for NFS, CryptSvc, DcomLaunch, Dhcp,
dmserver, Dnscache, ERSvc, Eventlog, EventSystem,
FwcAgent, helpsvc, HidServ, IISADMIN, InoRPC, InoRT,
InoTask, lanmanserver, lanmanworkstation, LmHosts, MDM,
Netlogon, Netman, Nla, NtLmSsp, PlugPlay, PolicyAgent,
ProtectedStorage, RasMan, RemoteRegistry, RpcSs, SamSs,
Schedule, seclogon, SENS, SharedAccess, ShellHWDetection,
SMT PSVC, Spooler, srservice, SSDPSRV, stisvc, TapiSrv,
TermService, Themes, TrkWks, UMWdf, W32Time, W3SVC,
WebClient, winmgmt, wscsvc, wuauserv, WZCSVC, zzInterix}
41 Stopped {Alerter, AppMgmt, aspnet_state, ATI Smart,
Browser, CiSvc, ClipSrv, clr_optimization_v2.0.50727_32,
COMSysApp, CronService, dmadmin, FastUserSwitchingCompatibi
lity, HTTPFilter, ImapiService, Mapsvc, Messenger,
mnmsrvc, MSDTC, MSIServer, msvsmon80, NetDDE, NetDDEdsdm,
NtmsSvc, NVSvc, ose, RasAuto, RDSessMgr, RemoteAccess,
RpcLocator, RSVP, SCardSvr, SwPrv, SysmonLog, TlntSvr,
upnphost, UPS, VSS, WmdmPmSN, Wmi, WmiApSrv, xmlprov}
$Log*Event
----------
As variáveis de preferência Log*Event determinam que tipos de
eventos são gravados no log de eventos do Windows PowerShell
no Visualizador de Eventos. Por padrão, somente os eventos de
mecanismo e provedor são registrados em log, mas você pode
usar as variáveis de preferência Log*Event para personalizar
seu log, como registrar em log eventos sobre comandos.
As variáveis de preferência Log*Event são como segue:
$LogCommandHealthEvent: registra em log erros e exceções
na inicialização e no processamento do comando.
Default = $false (not logged).
$LogCommandLifecycleEvent:
Registra em log a inicialização e a parada de
comandos e de pipelines de comando e exceções de
segurança na descoberta do comando. Default = $false
(not logged).
$LogEngineHealthEvent: erros de logs e falhas de
sessões. Default = $true (logged).
$LogEngineLifecycleEvent: registra em log a abertura e o
fechamento de sessões. Default = $true (logged).
$LogProviderHealthEvent: erros de provedor de Logs, como
erros de leitura e gravação, erros de pesquisa e de
invocação. Default = $true (logged).
$LogProviderLifecycleEvent: adição e remoção de logs de
provedores do Windows PowerShell.
Default = $true (logged). (Para obter mais
informações sobre os provedores do Windows
PowerShell, digite: "get-help about_provider".
Para habilitar um Log*Event, digite a variável com um valor
de $true, por exemplo:
$LogCommandLifeCycleEvent
- ou -
$LogCommandLifeCycleEvent = $true
Para desabilitar um tipo de evento, digite a variável com um
valor de $false, por exemplo:
$LogCommandLifeCycleEvent = $false
Os eventos que você habilita serão efetivados somente para o
console do Windows PowerShell atual. Para aplicar a
configuração a todos os consoles, salve as configurações de
variáveis em seu perfil do Windows PowerShell.
$MaximumAliasCount
------------------
Determina quantos aliases são permitidos em uma sessão do
Windows PowerShell. O valor padrão, 4096, deve ser suficiente
para a maioria dos usos, mas você pode ajustá-lo para atender
a suas necessidades.
Valores válidos: 1024 - 32768 (Int32)
Padrão: 4096
Para contar os aliases no seu sistema, digite:
(get-alias).count
$MaximumDriveCount
------------------
Determina quantas unidades do Windows PowerShell são
permitidas em uma determinada sessão. Isso inclui unidades do
sistema de arquivos e repositórios de dados expostos pelos
provedores do Windows PowerShell e exibidos como unidades
Alias: e HKLM:, por exemplo.
Valores válidos: 1024 - 32768 (Int32)
Padrão: 4096
Para contar os aliases no seu sistema, digite:
(get-psdrive).count
$MaximumErrorCount
------------------
Determina quantos erros são salvos no histórico de erros
durante a sessão.
Valores válidos: 256 - 32768 (Int32)
Padrão: 256
Os objetos que representam cada erro mantido são armazenados
na variável automática $Error. Esta variável contém uma
matriz de objetos de registro de erros, uma para cada erro.
O erro mais recente é o primeiro objeto na matriz ($Error[0]).
Para contar os erros no seu sistema, use a propriedade Count
da matriz $Erro. Digite:
$Error.count
Para exibir um erro específico, use a anotação de matriz.
Por exemplo, para ver o erro mais recente, digite:
$Error[0]
Para exibir o erro mantido mais antigo, digite:
$Error[($Error.Count -1]
Para exibir as propriedades de um objeto ErrorRecord, digite:
$Error[0] | format-list -property * -force
Nesse comando, o parâmetro Force substitui a formatação
especial de objetos ErrorRecord e reverte para o formato
convencional.
Para excluir todos os erros do histórico de erros, use o
método Clear da matriz de erro.
PS> $Error.count
17
PS> $Error.clear()
PS>
PS> $Error.count
0
Para localizar todas as propriedades e métodos de uma matriz
de erro, use o cmdlet Get-Member com o parâmetro InputObject.
Quando você envia uma coleção de objetos para Get-Member,
Get-Member exibe as propriedades e os métodos dos objetos na
coleção. Quando você usa o parâmetro InputObject de
Get-Member, Get-Member exibe as propriedades e os métodos da
coleção.
$MaximumFunctionCount
------------------
Determina quantas funções são permitidas em uma determinada
sessão.
Valores válidos: 1024 - 32768 (Int32)
Padrão: 4096
Para consultar as funções na sua sessão, use a unidade
Function: do Windows PowerShell que é exposta pelo provedor
de função do Windows PowerShell. (Para obter mais informações
sobre o provedor de função, digite "get-help function").
Para listar as funções na sessão atual, digite:
get-childitem function:
Para contar as funções na sessão atual, digite:
(get-childitem function:).count
$MaximumHistoryCount
------------------
Determina quantos comandos são salvos no histórico de
comandos durante a sessão atual.
Valores válidos: 1 - 32768 (Int32)
Padrão: 64
Para determinar o número de comandos salvos atualmente no
histórico de comandos, digite:
(get-history).count
Para consultar o comando salvo em seu histórico de sessão,
use o cmdlet Get-History. Para obter mais informações, digite
"get-help about_history".
$MaximumVariableCount
------------------
Determina quantas variáveis são permitidas em uma determinada
sessão, inclusive variáveis automáticas, variáveis de
preferência e variáveis que você cria em comandos e scripts.
Valores válidos: 1024 - 32768 (Int32)
Padrão: 4096
Para consultar as variáveis na sua sessão, use o cmdlet
Get-Variable e os recursos da unidade Variable: do Windows
PowerShell e o provedor de variável do Windows PowerShell.
Para obter informações sobre o provedor de variável, digite:
"get-help variable".
Para localizar o número atual de variáveis no sistema, digite:
(get-variable).count
$OFS
----
Separador do campo de saída. Especifica o caractere que
separa os elementos de uma matriz quando a matriz é
convertida para uma cadeia de caracteres.
Valores válidos: qualquer cadeia de caracteres.
Padrão: espaço
Por padrão, a variável $OFS não existe e o separador de
arquivo de saída é um espaço, mas você pode adicionar essa
variável e defini-la para qualquer cadeia de caracteres.
EXEMPLOS
Este exemplo mostra que um espaço é usado para separar os valores
quando uma matriz é convertida para uma cadeia de caracteres.
Neste caso, uma matriz de inteiros é armazenada em uma variável
e, em seguida, a variável é convertida para uma cadeia de caracteres.
PS> $array = 1,2,3 # Armazene uma matriz de inteiros.
PS> [string]$array # Converta a matriz para
1 2 3 uma cadeia de caracteres.
# Espaços separam os elementos
Para alterar o separador, adicione a variável $OFS atribuindo um
valor a ela. Para funcionar corretamente, a variável deve ser
nomeada $OFS.
PS> $OFS = "+" # Crie $OFS e atribua um "+"
PS> [string]$array # Repita o comando
1+2+3 # Sinais de adição separam os elementos
Para restaurar o comportamento padrão, você pode atribuir um
espaço ("") ao valor de $OFS ou pode excluir a variável. Este
comando exclui a variável e verifica se o separador é um espaço.
PS> Remove-Variable OFS # Exclua $OFS
PS>
PS> [string]$array # Repita o comando
1 2 3 # Espaços separam os elementos
$OutputEncoding
---------------
Determina o método de codificação de caractere usado pelo
Windows PowerShell quando ele envia texto a outros
aplicativos. Por exemplo, se um aplicativo retornar cadeias de
caracteres Unicode ao Windows PowerShell, talvez você precise
alterar o valor para enviar os caracteres corretamente.
Valores válidos: objetos derivados de uma classe de codificação,
como ASCIIEncoding, SBCSCodePageEncoding,
UTF7Encoding, UTF8Encoding, UTF32Encoding
e UnicodeEncoding.
Padrão: objeto ASCIIEncoding (System.Text.ASCIIEncoding)
EXEMPLOS
Este exemplo mostra como fazer o comando FINDSTR no Windows
funcionar no Windows PowerShell em um computador que é
localizado para um idioma que usa caracteres Unicode, como o
chinês.
O primeiro comando localiza o valor de $OutputEncoding. Como o
valor é um objeto de codificação, exiba somente sua
propriedade EncodingName.
PS> $OutputEncoding.EncodingName # Localize o valor atual
US-ASCII
Neste exemplo, um comando FINDSTR é usado para procurar dois
caracteres chineses que estão presente no arquivo Test.txt.
Quando este comando FINDSTR é executado no Prompt de comando
do Windows (Cmd.exe), FINDSTR localiza os caracteres no
arquivo de texto. Contudo, quando você executa o mesmo comando
FINDSTR no Windows PowerShell, os caracteres não são
localizados porque o Windows PowerShell os envia para FINDSTR
em texto ASCII, em vez de Unicode.
PS> findstr <Unicode-characters> # Use findstr para pesquisa.
PS> # Nenhum encontrado.
Para fazer o comando funcionar no Windows PowerShell, defina o
valor de $OutputEncoding como o valor da propriedade
OutputEncoding do console que é baseado na localidade
selecionada para o Windows. Como OutputEncoding é uma
propriedade estática do console, use dois-pontos (::)duplos no
comando.
PS> $OutputEncoding = [console]::outputencoding
PS> # Defina o valor igual a
propriedade OutputEncoding
do console.
PS> $OutputEncoding.EncodingName
OEM United States
# Localize o valor resultante.
Como resultado desta alteração, o comando FINDSTR localiza os
caracteres.
PS> findstr <Unicode-characters>
test.txt: <Unicode-characters>
# Use findstr para pesquisar. Localiza o
caracteres no arquivo de texto.
$ProgressPreference
-------------------
Determina como o Windows PowerShell responde a atualizações de
progresso geradas por um script, cmdlet ou provedor, como as barras
de progresso geradas pelo cmdlet Write-Progress. O cmdlet
Write-Progress cria barras de progresso que descrevem o status de um
comando.
Valores válidos:
Stop: não exibe a barra de progresso. Em vez
disso, ele exibe a mensagem de erro e
para a execução.
Inquire: não exibe a barra de progresso.
Solicita permissão para continuar.
Se você responder com Y ou A, exibe
a barra de progresso.
Continue: exibe a barra de progresso e
(Padrão) continua a execução.
SilentlyContinue: executa o comando, mas não exibe a
barra de progresso.
$PSEmailServer
--------------
Especifica o servidor de email padrão que é usado para enviar
mensagens de email. Esta variável de preferência é usada por
cmdlets que enviam email, como o cmdlet Send-MailMessage.
$PSSessionApplicationName
---------------------------
Especifica o nome de aplicativo padrão para um comando remoto
que usa tecnologia WS-Management.
O nome de aplicativo padrão do sistema é WSMAN, mas você pode
usar essa variável de preferência para alterar o padrão.
O nome do aplicativo é o último nó em um URI de conexão. Por
exemplo, o nome de aplicativo no URI de exemplo a seguir é WSMAN.
http://Server01:8080/WSMAN
O nome de aplicativo padrão é usado quando o comando remoto
não especifica um URI de conexão ou um nome de aplicativo.
O serviço WinRM usa o nome de aplicativo para selecionar um
ouvinte para atender à solicitação de conexão. O valor deste
parâmetro deve corresponder ao valor da propriedade URLPrefix
de um ouvinte no computador remoto.
Para substituir o padrão de sistema e o valor dessa variável,
e selecionar um nome de aplicativo diferente para uma sessão
específica, use os parâmetros ConnectionURI ou ApplicationName
de cmdlets New-PSSession, Enter-PSSession ou Invoke-Command.
Esta variável de preferência é definida no computador local,
mas especifica um ouvinte no computador remoto. Se o nome de
aplicativo especificado não existir no computador remoto,
ocorrerá uma falha no comando que estabelece a sessão.
$PSSessionConfigurationName
---------------------------
Especifica a configuração de sessão padrão usada para
PSSessions criada na sessão atual.
Esta variável de preferência é definida no computador local,
mas especifica uma configuração de sessão localizada no
computador remoto.
O valor da variável $PSSessionConfigurationName é um URI de
recurso totalmente qualificado.
O valor padrão:
https://schemas.microsoft.com/powershell/microsoft.powershell
indica a configuração da sessão Microsoft.PowerShell no
computador remoto.
Se você especificar só um nome de configuração, o URI de
esquema a seguir será prefixado:
https://schemas.microsoft.com/powershell/
Você pode substituir o padrão e selecionar uma configuração de
sessão diferente para uma sessão específica usando o parâmetro
ConfigurationName de cmdlets New-PSSession, Enter-PSSession ou
Invoke-Command.
Você pode alterar o valor dessa variável a qualquer momento.
Quando alterar, lembre-se de que a configuração de sessão que
você seleciona deve existir no computador remoto. Se não
existir, ocorrerá uma falha no comando para criar uma sessão
que usa a configuração de sessão.
Esta variável de preferência não determina quais configurações
de sessão local são usadas quando os usuários remotos criam
uma sessão que se conecta a este computador. Contudo, você
pode usar as permissões para as configurações de sessão local
para determinar quais usuários podem usá-las.
$PSSessionOption
----------------
Estabelece os valores padrão para opções de usuário avançado
em uma sessão remota. Estas preferências de opção substituem
os valores padrão de sistema para opções de sessão.
Você também pode definir opções personalizadas para uma
sessão remota específica usando o parâmetro SessionOption em
cmdlets que criam uma sessão, como New-PSSession,
Enter-PSSession e Invoke-Command. O valor do parâmetro
SessionOption tem precedência sobre os padrões de sistema e
os padrões que são definidos nesta variável.
A variável $PSSessionOption contém um objeto PSSessionOption<c
h='32' Tm='7'> (System.Management.Automation.Remoting.PSSessio
nObject). Cada propriedade do objeto representa uma opção de
sessão. Por exemplo, as propriedades NoCompression desativam
a compactação de dados durante a sessão.
Para criar a variável de preferência $PSSessionOption, use o
cmdlet New-PSSessionOption. Salve a saída em uma variável chamada
$PSSessionOption.
Por exemplo,
$PSSessionOption = New-PSSessionOption -NoCompression
Para usar a variável de preferência $PSSessionOption em cada
sessão do Windows PowerShell, adicione um comando
New-PSSessionOption que cria a variável $PSSessionOption ao
perfil do Windows PowerShell.
Para obter mais informações sobre o cmdlet New-PSSessionOption,
consulte o tópico da ajuda para New-PSSessionOption. Para
obter mais informações sobre sessões e comandos remotos,
consulte about_Remote e about_PSSessions.
Para obter mais informações sobre o uso de um perfil,
consulte about_Profiles.
$VerbosePreference
------------------
Determina como o Windows PowerShell responde a mensagens
detalhadas geradas por um script, cmdlet ou provedor, como
aquelas geradas pelo cmdlet Write-Verbose. Normalmente, as
mensagens detalhadas descrevem as ações realizadas para
executar um comando.
Por padrão, as mensagens detalhadas não são exibidas, mas
você pode alterar esse comportamento alterando o valor de
$VerbosePreference.
Você também pode usar o parâmetro Verbose comum de um cmdlet
para exibir ou ocultar as mensagens detalhadas para um
comando específico. Para obter mais informações, digite "get-help
about_commonparameters".
Valores válidos:
Stop: exibe a mensagem detalhada e uma mensagem
de erro e, em seguida, para a execução.
Inquire: Exibe a mensagem detalhada e, em
seguida, exibe um prompt que pergunta se
você deseja continuar.
Continue: exibe a mensagem detalhada e,
em seguida, continua a execução.
SilentlyContinue: não exibe a mensagem detalhada. Continua a execução.
(Padrão)
EXEMPLOS
Estes exemplos mostram o efeito dos valores diferentes de
$VerbosePreference e o uso do parâmetro comum Verbose para
substituir o valor de preferência.
Este exemplo mostra o efeito do valor padrão SilentlyContinue.
PS> $VerbosePreference # Localize o valor atual.
SilentlyContinue
PS> Write-Verbose "Verbose message test."
PS> # Escreva uma mensagem detalhada.
# A mensagem não é exibida.
PS> Write-Verbose "Verbose message test." -verbose
DETALHE: teste de mensagem detalhada.
# Use o parâmetro Verbose.
Este exemplo mostra o efeito do valor Continue.
PS> $VerbosePreference = "Continue"
# Altere o valor para Continue.
PS> Write-Verbose "Verbose message test."
# Escreva uma mensagem detalhada.
DETALHE: teste de mensagem detalhada.
# A mensagem é exibida.
PS> Write-Verbose "Verbose message test." -verbose:$false
# Use o parâmetro Verbose
com um valor de $false.
PS>
# A mensagem não é exibida.
Este exemplo mostra o efeito do valor Stop.
PS> $VerbosePreference = "Stop"
# Altere o valor para Stop.
PS> Write-Verbose "Verbose message test."
# Escreva uma mensagem detalhada.
DETALHE: teste de mensagem detalhada.
Write-Verbose: a execução do comando foi parada porque a
variável do shell "VerbosePreference" está definida como Stop.
At line:1 char:14
+ Write-Verbose <<<< "Verbose message test."
PS> Write-Verbose "Verbose message test." -verbose:$false
# Use o parâmetro Verbose
com um valor de $false.
PS>
# A mensagem não é exibida.
Este exemplo mostra o efeito do valor Inquire.
PS> $VerbosePreference = "Inquire"
# Altere o valor para Inquire.
PS> Write-Verbose "Verbose message test."
DETALHE: teste de mensagem detalhada.
# Escreva uma mensagem detalhada.
Confirmar
Continuar esta operação?
[S] Sim [A] Sim para Todos [P] Parar Comando [U] Suspender
[?] Ajuda (o padrão é "S"): s
PS> Write-Verbose "Verbose message test." -verbose:$false
# Use o parâmetro Verbose.
PS>
# A mensagem não é exibida.
$WarningPreference
------------------
Determina como o Windows PowerShell responde a mensagens de
aviso geradas por um script, cmdlet ou provedor, como aquelas
geradas pelo cmdlet Write-Warning.
Por padrão, as mensagens de aviso não são exibidas e a
execução continua, mas você pode alterar esse comportamento
alterando o valor de $WarningPreference.
Também é possível usar o parâmetro comum WarningAction de um
cmdlet para determinar como o Windows PowerShell responde a
avisos resultantes de um comando específico. Para obter mais
informações, digite "get-help about_commonparameters".
Valores válidos:
Stop: exibe a mensagem de aviso e uma mensagem
de erro e, em seguida, para a execução.
Inquire: exibe a mensagem de aviso e, em
seguida, solicita permissão para continuar.
Continue: exibe a mensagem de aviso e
(Padrão) continua a execução.
SilentlyContinue: não exibe a mensagem de aviso.
Continua a execução.
EXEMPLOS
Estes exemplos mostram o efeito dos valores diferentes de
$WarningPreference e o uso do parâmetro comum WarningAction para
substituir o valor de preferência.
Este exemplo mostra o efeito do valor padrão Continue.
PS> $WarningPreference # Localize o valor padrão.
Continue
# Grave uma mensagem de aviso.
PS> Write-Warning "This action can delete data."
AVISO: esta ação pode excluir dados.
# Use o parâmetro WarningAction
para Write-Warning "This action
can delete data."
-warningaction silentlycontinue
Este exemplo mostra o efeito do valor SilentlyContinue.
PS> $WarningPreference = "SilentlyContinue"
# Altere o valor para SilentlyContinue.
PS> Write-Warning "This action can delete data."
PS> # Grave uma mensagem de aviso.
PS> Write-Warning "This action can delete data."
-warningaction stop
# Use o parâmetro WarningAction
para parar o # processamento
quando esse comando gera
WARNING: This action can delete data.
Write-Warning: a execução do comando foi parada porque a
variável do shell "WarningPreference" está definida como Stop.
At line:1 char:14
+ Write-Warning <<<< "This action can delete data."
-warningaction stop
Este exemplo mostra o efeito do valor Inquire.
PS> $WarningPreference = "Inquire"
# Altere o valor para Inquire.
PS> Write-Warning "This action can delete data."
# Grave uma mensagem de aviso.
AVISO: esta ação pode excluir dados.
Confirmar
Continuar esta operação?
[S] Sim [A] Sim para Todos [P] Parar Comando [U] Suspender
[?] Ajuda (o padrão é "S"): s
PS> Write-Warning "This action can delete data." -warningaction
silentlycontinue
PS> # Use o parâmetro WarningAction para alterar a
# resposta para um aviso para o comando atual.
Este exemplo mostra o efeito do valor Stop.
PS> $WarningPreference = "Stop"
# Altere o valor para Stop.
PS> Write-Warning "This action can delete data."
# Grave uma mensagem de aviso.
AVISO: esta ação pode excluir dados.
Write-Warning: a execução do comando foi parada porque a
variável do shell "WarningPreference" está definida como Stop.
At line:1 char:14
+ Write-Warning <<<< "This action can delete data."
PS> Write-Warning "This action can delete data." -warningaction inquire
AVISO: esta ação pode excluir dados.
Confirmar
Continuar esta operação?
[S] Sim [A] Sim para Todos [P] Parar Comando [U] Suspender
[?] Ajuda (o padrão é "S"):
# Use o parâmetro WarningAction para
alterar a # resposta para um
aviso para o comando atual.
$WhatIfPreference
------------------
Determina se WhatIf é habilitado automaticamente para cada
comando que o aceita. Quando WhatIf é habilitado, o cmdlet
relata o efeito esperado do comando, mas não executa o comando.
Valores válidos:
0: WhatIf não é habilitado automaticamente.
(Padrão) Para habilitá-lo manualmente, use o parâmetro
WhatIf do comando.
1: WhatIf é habilitado automaticamente em
qualquer comando que o aceita. Os usuários
podem usar o comando WhatIf com um valor de
False para desabilitá-lo manualmente (WhatIf:$false).
EXPLICAÇÃO DETALHADA
Quando um cmdlet aceita WhatIf, o cmdlet relata o efeito
esperado do comando, em vez de executar o comando. Por
exemplo, em vez de excluir o arquivo test.txt em resposta a
um comando Remove-Item, o Windows PowerShell relata o que
excluiria. Um comando Get-Childitem subsequente confirma que
o arquivo não foi excluído.
PS> remove-item test.txt
What if: executando operação "Remove-Item" no Destino "Item:
C:\test.txt
PS> get-childitem test.txt
Directory: Microsoft.PowerShell.Core\FileSystem::C:
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a--- 7/29/2006 7:15 PM 84 test.txt
EXEMPLOS
Estes exemplos mostram o efeito dos diferentes valores de
$WhatIfPreference. Eles também mostram como usar o parâmetro de
cmdlet WhatIf para substituir o valor de preferência para um
comando específico.
Este exemplo mostra o efeito do valor 0 (não habilitado) padrão.
PS> $whatifpreference
0 # Verifique o valor atual.
PS> get-childitem test.txt | format-list FullName
FullName : C:\test.txt
# Verifique se o arquivo existe.
PS> remove-item test.txt
PS> # Exclua o arquivo.
PS> get-childitem test.txt | format-list -property FullName
# Verifique se o arquivo é excluído.
Get-ChildItem: não é possível localizar o caminho
'C:\test.txt' porque ele não existe.
At line:1 char:14
+ get-childitem <<<< test.txt | format-list fullname
Este exemplo mostra o efeito de usar o parâmetro WhatIf quando o
valor de $WhatIfPreference é 0.
PS> get-childitem test2.txt | format-list -property FullName
FullName : C:\test2.txt
# Verifique se o arquivo existe.
PS> remove-item test2.txt -whatif
What if: executando a operação "Remover Arquivo" no
Destino "C:\test2.txt".
# Use o parâmetro WhatIf.
PS> get-childitem test2.txt | format-list -property FullName
FullName : C:\test2.txt
# Verifique se o arquivo não
foi excluído.
Este exemplo mostra o efeito do valor 1 (WhatIf habilitado).
Quando você usa Remove-Item para excluir um cmdlet, Remove-Item
exibe o caminho para o arquivo que excluiria, mas não exclui o
arquivo.
PS> $whatifpreference = 1
PS> $whatifpreference
1 # Altere o valor.
PS> remove-item test.txt
What if: executando a operação "Remover Arquivo" no
Destino "C:\test.txt".
# Tente excluir um arquivo.
PS> get-childitem test.txt | format-list FullName
FullName : C:\test.txt
# Verifique se o arquivo existe.
Este exemplo mostra como excluir um arquivo quando o valor de
$WhatIfPreference é 1. Ele usa o parâmetro WhatIf com um valor
de $false.
PS> remove-item test.txt -whatif:$false
# Use o parâmetro WhatIf com $false.
Este exemplo demonstra que alguns cmdlets aceitam o
comportamento WhatIf e outros não aceitam. Neste exemplo, no
qual o valor de $WhatIfPreference é 1 (habilitado), um comando
Get-Process que não aceita WhatIf é executado, mas um comando
Stop-Process executa o comportamento WhatIf.
Você pode anular o comportamento WhatIf do comando Stop-Process
usando o parâmetro WhatIf com um valor de $false.
PS> $whatifpreference = 1
# Altere o valor para 1.
PS> get-process winword
# Um comando Get-Process é concluído.
Handles NPM(K) PM(K) WS(K) VM(M) CPU(s) Id ProcessName
------- ------ ----- ----- ----- ------ -- -----------
234 8 6324 15060 154 0.36 2312 WINWORD
PS> stop-process -name winword
What if: executando operação "Stop-Process" no Destino
"WINWORD (2312)".
# Um Stop-Process comando usa WhatIf.
PS> stop-process -name winword -whatif:$false
PS> # WhatIf:$false substitui a preferência.
PS> get-process winword
Get-Process: não é possível localizar um processo com o
nome 'winword'. Verifique o nome de processo e chame o
cmdlet novamente.
At line:1 char:12
+ get-process <<<< winword
# Verifique se o processo é parado.
CONSULTE TAMBÉM
about_Automatic_Variables
about_CommonParameters
about_Environment_Variables
about_Profiles
about_Remote
about_Scopes
about_Variables