about_Pwsh

Descrição breve

Explica como usar a pwsh -l interface de comando ine. Exibe os -l parâmetros de comando ine e descreve a sintaxe.

Descrição longa

Sintaxe

pwsh[.exe]
   [[-File] <filePath> [args]]
   [-Command { - | <script-block> [-args <arg-array>]
                 | <string> [<CommandParameters>] } ]
   [-ConfigurationName <string>]
   [-CustomPipeName <string>]
   [-EncodedCommand <Base64EncodedCommand>]
   [-ExecutionPolicy <ExecutionPolicy>]
   [-InputFormat {Text | XML}]
   [-Interactive]
   [-Login]
   [-MTA]
   [-NoExit]
   [-NoLogo]
   [-NonInteractive]
   [-NoProfile]
   [-OutputFormat {Text | XML}]
   [-SettingsFile <SettingsFilePath>]
   [-SSHServerMode]
   [-STA]
   [-Version]
   [-WindowStyle <style>]
   [-WorkingDirectory <directoryPath>]

pwsh[.exe] -h | -Help | -? | /?

Parâmetros

Todos os parâmetros são -i diferenciais de caso.

-File | -f

Se o valor de File for , o texto do comando será lido da entrada - padrão. A pwsh -File - execução sem entrada padrão redirecionada inicia uma sessão regular. Isso é o mesmo que não especificar o File parâmetro.

Esse será o parâmetro padrão se nenhum parâmetro estiver presente, mas os valores estão presentes na linha de comando. O script especificado é executado no escopo local ("dot-sourced"), de modo que as funções e variáveis que o script cria estão disponíveis na sessão atual. Insira o caminho do arquivo de script e quaisquer parâmetros. O arquivo deve ser o último parâmetro no comando, porque todos os caracteres digitados após o nome do parâmetro File são interpretados como o caminho do arquivo de script seguido pelos parâmetros de script.

Normalmente, os parâmetros de opção de um script são incluídos ou omitidos. Por exemplo, o comando a seguir usa o parâmetro All do arquivo Get-Script.ps1 script: -File .\Get-Script.ps1 -All

Em casos raros, talvez seja necessário fornecer um valor booliana para um parâmetro switch. Para fornecer um valor boolano para um parâmetro switch no valor do parâmetro File, use o parâmetro normalmente seguido imediatamente por dois-pontos e o valor booliana, como o seguinte: -File .\Get-Script.ps1 -All:$False .

Os parâmetros passados para o script são passados como cadeias de caracteres literais (após a interpretação do shell atual). Por exemplo, se você estiver em e quiser passar um valor de variável cmd.exe de ambiente, use a cmd.exe sintaxe : pwsh -File .\test.ps1 -TestParam %windir%

Por outro lado, a execução em resulta no script que recebe a cadeia pwsh -File .\test.ps1 -TestParam $env:windir cmd.exe de caracteres literal porque não tem $env:windir nenhum significado especial para o shell cmd.exe atual. O $env:windir estilo da referência de variável de ambiente pode ser usado dentro de um parâmetro Command, pois ele é interpretado como código do PowerShell.

Da mesma forma, se você quiser executar o mesmo comando de um script do Lote, use em vez de ou para representar %~dp0 o diretório de execução .\ $PSScriptRoot atual: pwsh -File %~dp0test.ps1 -TestParam %windir% . Se, em vez .\test.ps1 disso, você usou , o PowerShell lançaria um erro porque não consegue encontrar o caminho literal .\test.ps1

Quando o arquivo de script termina com um comando , o código de saída do processo é definido como exit o argumento numérico usado com o comando exit . Com o encerramento normal, o código de saída é sempre 0 .

Semelhante a -Command , quando ocorre um erro de encerramento de script, o código de saída é definido como 1 . No entanto, ao contrário de -Command com , quando a execução é interrompida com Ctrl - C, o código de saída é 0 .

-Command | -c

Executa os comandos especificados (e quaisquer parâmetros) como se eles fossem digitados no prompt de comando do PowerShell e, em seguida, sai, a menos que o parâmetro NoExit seja especificado.

O valor de Command pode ser , um bloco de script ou uma cadeia - de caracteres. Se o valor de Command for - , o texto do comando será lido da entrada padrão.

O parâmetro Command só aceita um bloco de script para execução quando ele pode reconhecer o valor passado para Command como um tipo ScriptBlock. Isso só é possível ao executar pwsh de outro host do PowerShell. O tipo ScriptBlock pode estar contido em uma variável existente, retornado de uma expressão ou analisado pelo host do PowerShell como um bloco de script literal entre chaves ( ), antes de ser passado para {} pwsh .

pwsh -Command {Get-WinEvent -LogName security}

No , não há tal coisa como um bloco de script (ou tipo ScriptBlock), portanto, o valor passado para cmd.exe Command sempre será uma cadeia de caracteres. Você pode escrever um bloco de script dentro da cadeia de caracteres, mas em vez de ser executado, ele se comportará exatamente como se tivesse sido digitado em um prompt comum do PowerShell, imprimindo o conteúdo do bloco de script para você.

Uma cadeia de caracteres passada para o Comando ainda é executada como código do PowerShell, portanto, as chaves do bloco de script geralmente não são necessárias em primeiro lugar ao executar do cmd.exe . Para executar um bloco de script embutido definido em uma cadeia de caracteres, o operador de chamada & pode ser usado:

pwsh -Command "& {Get-WinEvent -LogName security}"

Se o valor de Command for uma cadeia de caracteres, Command deverá ser o último parâmetro para pwsh, pois todos os argumentos a seguir serão interpretados como parte do comando a ser executado.

Quando chamado de dentro de uma sessão existente do PowerShell, os resultados são retornados ao shell pai como objetos XML desserializados, não objetos ao vivo. Para outros shells, os resultados são retornados como cadeias de caracteres.

Se o valor de Command for - , o texto do comando será lido da entrada padrão. Você deve redirecionar a entrada padrão ao usar o parâmetro Command com entrada padrão. Por exemplo:

@'
"in"

"hi" |
  % { "$_ there" }

"out"
'@ | powershell -NoProfile -Command -

Esse exemplo gera a saída a seguir:

in
hi there
out

O código de saída do processo é determinado pelo status do último comando (executado) dentro do bloco de script. O código de saída 0 é quando é ou quando é $? $true 1 $? $false . Se o último comando for um programa externo ou um script do PowerShell que define explicitamente um código de saída diferente de ou , esse código de saída será convertido em para o código de saída 0 1 do 1 processo. Para preservar o código de saída específico, adicione à sua cadeia de exit $LASTEXITCODE caracteres de comando ou bloco de script.

Da mesma forma, o valor 1 é retornado quando ocorre um erro de encerramento de script (encerramento de runspace), como um ou , ou quando a execução é interrompida com throw -ErrorAction Stop Ctrl - C.

-ConfigurationName | -config

Especifica um ponto de extremidade de configuração no qual o PowerShell é executado. Esse pode ser qualquer ponto de extremidade registrado no computador local, incluindo os pontos de extremidade de remoção padrão do PowerShell ou um ponto de extremidade personalizado com funcionalidades específicas de função de usuário.

Exemplo: pwsh -ConfigurationName AdminRoles

-CustomPipeName

Especifica o nome a ser usado para um servidor IPC adicional (pipe nomeado) usado para depuração e outra comunicação entre processos. Isso oferece um mecanismo previsível para se conectar a outras instâncias do PowerShell. Normalmente usado com o parâmetro CustomPipeName em Enter-PSHostProcess .

Esse parâmetro foi introduzido no PowerShell 6.2.

Por exemplo:

# PowerShell instance 1
pwsh -CustomPipeName mydebugpipe
# PowerShell instance 2
Enter-PSHostProcess -CustomPipeName mydebugpipe

-EncodedCommand | -e | -ec

Aceita uma versão de cadeia de caracteres ncoded Base64 -e de um comando. Use esse parâmetro para enviar comandos para o PowerShell que exigem as citações complexas e aninhadas. A representação Base64 deve ser uma cadeia de caracteres codificada em UTF-16LE.

Por exemplo:

$command = 'dir "c:\program files" '
$bytes = [System.Text.Encoding]::Unicode.GetBytes($command)
$encodedCommand = [Convert]::ToBase64String($bytes)
pwsh -encodedcommand $encodedCommand

-ExecutionPolicy | -ex | -ep

Define a política de execução padrão para a sessão atual e salva-a na variável $env:PSExecutionPolicyPreference de ambiente. Esse parâmetro não altera as políticas de execução configuradas persistentemente.

Esse parâmetro só se aplica a Windows computadores. A $env:PSExecutionPolicyPreference variável de ambiente não existe em plataformas Windows não existentes.

-InputFormat | -inp | -if

Descreve o formato dos dados enviados ao PowerShell. Os valores válidos são "Text" (cadeias de caracteres de texto) ou "XML" (formato CLIXML serializado).

-Interactive | -i

Apresente um prompt interativo para o usuário. Inverso para o parâmetro NonInteractive.

-Login | -l

No Linux e no macOS, o inicia o PowerShell como um shell de logon, usando /bin/sh para executar perfis de logon, como /etc/profile e ~/.profile. No Windows, essa opção não faz nada.

Importante

Esse parâmetro deve vir primeiro para iniciar o PowerShell como um shell de logon. Passar esse parâmetro em outra posição será ignorado.

Para configurar como pwsh o shell de logon em UNIX sistemas -l operacionais ike:

  • Verifique se o caminho absoluto completo para pwsh está listado em /etc/shells

    • Esse caminho geralmente é algo como /usr/bin/pwsh no Linux ou no /usr/local/bin/pwsh macOS
    • Com alguns métodos de instalação, essa entrada será adicionada automaticamente no momento da instalação
    • Se pwsh não estiver presente no , use um editor para /etc/shells anexar o caminho a na última pwsh linha. Isso requer privilégios elevados para edição.
  • Use o utilitário chsh para definir o shell do usuário atual como pwsh :

    chsh -s /usr/bin/pwsh
    

Aviso

No momento, não há suporte para a configuração do shell de logon no WSL (Subsistema do Windows para Linux) e tentar definir como o shell de logon pode levar a não ser possível iniciar o pwsh pwsh WSL interativamente.

-MTA

Inicie o PowerShell usando um apartment multi-threaded. Essa opção só está disponível no Windows.

-NoExit | -noe

Não é encerrado depois de executar comandos de inicialização.

Exemplo: pwsh -NoExit -Command Get-Date

-NoLogo | -nol

Oculta a faixa de direitos autorais na inicialização de sessões interativas.

-NonInteractive | -noni

Não exibe um prompt interativo para o usuário. Todas as tentativas de usar recursos interativos, como prompts de confirmação ou , resultam em erros de Read-Host terminação de instrução.

-NoProfile | -nop

Não carrega os perfis do PowerShell.

-OutputFormat | -o | -of

Determina como a saída do PowerShell é formatada. Os valores válidos são "Text" (cadeias de caracteres de texto) ou "XML" (formato CLIXML serializado).

Exemplo: pwsh -o XML -c Get-Date

Quando chamado com uma sessão do PowerShell, você recebe objetos desterializados como uma saída em vez de cadeias de caracteres simples. Quando chamado de outros shells, a saída são dados de cadeia de caracteres formatados como texto CLIXML.

-SettingsFile | -settings

Substitui o arquivo de -w configurações de ide powershell.config.json do sistema para a sessão. Por padrão, -w as configurações do IDE do sistema são lidas no powershell.config.json no $PSHOME diretório.

Observe que essas configurações não são usadas pelo ponto de extremidade especificado pelo -ConfigurationName argumento.

Exemplo: pwsh -SettingsFile c:\myproject\powershell.config.json

-SSHServerMode | -sshs

Usado em sshd_config para executar o PowerShell como um subsistema SSH. Ela não é destinada nem tem suporte para nenhum outro uso.

-STA

Inicie o PowerShell usando um apartamento de thread único. Esse é o padrão. Essa opção só está disponível no Windows.

-Version | -v

Exibe a versão do PowerShell. Parâmetros adicionais são ignorados.

-WindowStyle | -w

Define o estilo da janela da sessão. Os valores válidos são Normal, Minimized, Maximized e Hidden.

-WorkingDirectory | -wd

Define o diretório de trabalho inicial executando na inicialização. Há suporte para qualquer caminho de arquivo válido do PowerShell.

Para iniciar o PowerShell em seu diretório base, use: pwsh -WorkingDirectory ~

-Help, -?, /?

Exibe a ajuda para pwsh . Se você estiver digitando um comando pwsh no PowerShell, preceda os parâmetros de comando com um hífen ( - ), não uma barra "/" ( / ).