about_Pwsh
Краткое описание
Объясняет, как использовать команду pwsh
-lинтерфейсе ine. Отображает команду-lпараметров ine и описывает синтаксис.
Длинное описание
Синтаксис
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 | -? | /?
Параметры
Все параметры являются регистром-insensitive.
-File | -f
Если значение File
-
, текст команды считывается из стандартных входных данных.
Запуск pwsh -File -
без перенаправленных стандартных входных данных запускает обычный сеанс. Это то же самое, что и не указание параметра File
вообще.
Это параметр по умолчанию, если параметры отсутствуют, но значения присутствуют в командной строке. Указанный скрипт выполняется в локальной области ("dot-sourced"), чтобы функции и переменные, создаваемые скриптом, были доступны в текущем сеансе. Введите путь к файлу скрипта и все параметры. Файл должен быть последним параметром команды, так как все символы, введенные после имени параметра файла, интерпретируются как путь к файлу скрипта, а затем параметры скрипта.
Как правило, параметры коммутатора скрипта включаются или опущены.
Например, следующая команда использует параметр All файла скрипта Get-Script.ps1: -File .\Get-Script.ps1 -All
В редких случаях может потребоваться указать логическое значение для параметра switch. Чтобы указать
Параметры, передаваемые скрипту, передаются в виде литеральных строк после интерпретации текущей оболочкой. Например, если вы находитесь в cmd.exe
и хотите передать значение переменной среды, используйте синтаксис cmd.exe
: pwsh -File .\test.ps1 -TestParam %windir%
В отличие от этого, выполнение pwsh -File .\test.ps1 -TestParam $env:windir
в cmd.exe
приводит к получению скрипта строки литерала $env:windir
, так как она не имеет особого значения для текущей оболочки cmd.exe
. Стиль ссылки на переменную среды $env:windir
может использоваться внутри параметра command, так как он интерпретируется как код PowerShell.
Аналогичным образом, если вы хотите выполнить ту же команду из скрипта пакетной службы , %~dp0
вместо .\
или $PSScriptRoot
представить текущий каталог выполнения: pwsh -File %~dp0test.ps1 -TestParam %windir%
. Если вместо этого использовался .\test.ps1
, PowerShell вызовет ошибку, так как не удается найти литеральный путь .\test.ps1
Когда файл скрипта завершается командой exit
, код выхода процесса задается числовым аргументом, используемым с командой exit
. При обычном завершении код выхода всегда 0
.
Аналогично -Command
, если возникает ошибка завершения скрипта, код выхода имеет значение 1
. Однако в отличие от -Command
, если выполнение прерывается с помощью клавиш CTRL -C кода выхода 0
.
-Command | -c
Выполняет указанные команды (и все параметры), как будто они были вводимы в командной строке PowerShell, а затем завершает работу, если параметр NoExit
не указан.
Значение команды может быть -
, блоком скрипта или строкой. Если значение команды -
, текст команды считывается из стандартных входных данных.
Параметр команды pwsh
из другого узла PowerShell. Тип ScriptBlock может содержаться в существующей переменной, возвращаемой из выражения или анализируемой узлом PowerShell в виде блока литерального скрипта, заключенного в фигурные скобки ({}
), перед передачей в pwsh
.
pwsh -Command {Get-WinEvent -LogName security}
В
Строка, передаваемая command, по-прежнему выполняется как код PowerShell, поэтому блок скрипта фигурные скобки часто не требуются в первую очередь при запуске из cmd.exe
. Чтобы выполнить встроенный блок скрипта, определенный внутри строки, можно использовать оператор вызова &
:
pwsh -Command "& {Get-WinEvent -LogName security}"
Если значение Command является строкой, command должен быть последним параметром pwsh, так как все аргументы, приведенные ниже, интерпретируются как часть команды для выполнения.
При вызове из существующего сеанса PowerShell результаты возвращаются в родительскую оболочку как десериализированные XML-объекты, а не динамические объекты. Для других оболочки результаты возвращаются в виде строк.
Если значение команды -
, текст команды считывается из стандартных входных данных. При использовании параметра команды
@'
"in"
"hi" |
% { "$_ there" }
"out"
'@ | powershell -NoProfile -Command -
В этом примере создаются следующие выходные данные:
in
hi there
out
Код выхода процесса определяется состоянием последней (выполненной) команды в блоке скрипта. Код выхода 0
, если $?
$true
или 1
, если $?
$false
. Если последняя команда является внешней программой или скриптом PowerShell, который явно задает код выхода, отличный от 0
или 1
, код выхода преобразуется в 1
для кода выхода процесса. Чтобы сохранить конкретный код выхода, добавьте exit $LASTEXITCODE
в командную строку или блок скрипта.
Аналогичным образом, значение 1 возвращается при ошибке завершения скрипта (завершающегося пространством выполнения), например throw
или -ErrorAction Stop
, происходит или при прерывании выполнения с помощью клавиш CTRL -C.
-ConfigurationName | -config
Указывает конечную точку конфигурации, в которой выполняется PowerShell. Это может быть любая конечная точка, зарегистрированная на локальном компьютере, включая конечные точки удаленного взаимодействия PowerShell по умолчанию или пользовательскую конечную точку с определенными возможностями роли пользователя.
Пример: pwsh -ConfigurationName AdminRoles
-CustomPipeName
Указывает имя, используемое для дополнительного сервера IPC (именованного канала), используемого для отладки и обмена данными между процессами. Это обеспечивает предсказуемый механизм подключения к другим экземплярам PowerShell. Обычно используется с параметром CustomPipeName в Enter-PSHostProcess
.
Этот параметр появился в PowerShell 6.2.
Например:
# PowerShell instance 1
pwsh -CustomPipeName mydebugpipe
# PowerShell instance 2
Enter-PSHostProcess -CustomPipeName mydebugpipe
-EncodedCommand | -e | -ec
Принимает версию строки base64-encoded string version of a command. Используйте этот параметр для отправки команд в PowerShell, требующих сложного вложенного кавыка. Представление Base64 должно быть строкой в кодировке UTF-16LE.
Например:
$command = 'dir "c:\program files" '
$bytes = [System.Text.Encoding]::Unicode.GetBytes($command)
$encodedCommand = [Convert]::ToBase64String($bytes)
pwsh -encodedcommand $encodedCommand
-ExecutionPolicy | -ex | -ep
Задает политику выполнения по умолчанию для текущего сеанса и сохраняет ее в переменной среды $env:PSExecutionPolicyPreference
. Этот параметр не изменяет постоянно настроенные политики выполнения.
Этот параметр применяется только к компьютерам Windows. Переменная среды $env:PSExecutionPolicyPreference
не существует на платформах, отличных от Windows.
-InputFormat | -inp | -if
Описывает формат данных, отправляемых в PowerShell. Допустимые значения: Text (текстовые строки) или XML (сериализованный формат CLIXML).
-Interactive | -i
Представление интерактивного запроса пользователю. Обратная для параметра NonInteractive.
-Login | -l
В Linux и macOS запускает PowerShell в качестве оболочки входа, используя /bin/sh для выполнения профилей входа, таких как /etc/profile и ~/.profile. В Windows этот переключатель ничего не делает.
Важный
Этот параметр должен быть первым, чтобы запустить PowerShell в качестве оболочки входа. Передача этого параметра в другой позиции будет игнорироваться.
Чтобы настроить pwsh
в качестве оболочки входа в операционных системах UNIX-like:
Убедитесь, что полный абсолютный путь к
pwsh
указан в разделе/etc/shells
- Обычно этот путь похож на
/usr/bin/pwsh
в Linux или/usr/local/bin/pwsh
в macOS - При использовании некоторых методов установки эта запись будет добавлена автоматически во время установки.
- Если
pwsh
отсутствует в/etc/shells
, используйте редактор, чтобы добавить путь кpwsh
в последней строке. Для этого требуются повышенные привилегии для редактирования.
- Обычно этот путь похож на
Используйте служебную программу chsh
, чтобы задать оболочку текущего пользователя: chsh -s /usr/bin/pwsh
Предупреждение
Установка pwsh
в качестве оболочки входа в настоящее время не поддерживается в подсистеме Windows для Linux (WSL), и попытка задать pwsh
в качестве оболочки входа может привести к тому, что не удается запустить WSL в интерактивном режиме.
-MTA
Запустите PowerShell с помощью многопоточных квартир. Этот параметр доступен только в Windows.
-NoExit | -noe
Не завершает работу после выполнения команд запуска.
Пример: pwsh -NoExit -Command Get-Date
-NoLogo | -nol
Скрывает баннер авторских прав при запуске интерактивных сеансов.
-NonInteractive | -noni
Не отображает интерактивный запрос пользователю. Любые попытки использовать интерактивные функции, такие как Read-Host
или запросы подтверждения, приводят к возникновению ошибок, завершающих инструкции.
-NoProfile | -nop
Не загружает профили PowerShell.
-OutputFormat | -o | -of
Определяет форматирование выходных данных из PowerShell. Допустимые значения: Text (текстовые строки) или XML (сериализованный формат CLIXML).
Пример: pwsh -o XML -c Get-Date
При вызове сеанса PowerShell вы получаете десериализированные объекты в виде выходных данных, а не простых строк. При вызове из других оболочки выходные данные форматируются как текст CLIXML.
-SettingsFile | -settings
Переопределяет файл параметров-wинтегрированной среды разработки powershell.config.json
для сеанса. По умолчанию параметры интегрированной среды-wсчитываются из powershell.config.json
в каталоге $PSHOME
.
Обратите внимание, что эти параметры не используются конечной точкой, указанной аргументом -ConfigurationName
.
Пример: pwsh -SettingsFile c:\myproject\powershell.config.json
-SSHServerMode | -sshs
Используется в sshd_config для запуска PowerShell в качестве подсистемы SSH. Оно не предназначено или поддерживается для любого другого использования.
-STA
Запустите PowerShell с помощью однопоточной квартиры. Это значение по умолчанию. Этот параметр доступен только на платформе Windows.
-Version | -v
Отображает версию PowerShell. Дополнительные параметры игнорируются.
-WindowStyle | -w
Задает стиль окна для сеанса. Допустимые значения: обычные, свернутые, развернутые и скрытые.
-WorkingDirectory | -wd
Задает исходный рабочий каталог, выполняя при запуске. Поддерживается любой допустимый путь к файлу PowerShell.
Чтобы запустить PowerShell в домашнем каталоге, используйте: pwsh -WorkingDirectory ~
-Help, -?, /?
Отображает справку по pwsh
. Если вы вводите команду pwsh в PowerShell, добавьте параметры команды с дефисом (-
), а не косой чертой (/
).