从另一工具(如 Cmd.exe)的命令行启动 Windows PowerShell。

语法

PowerShell[.exe]
       [-PSConsoleFile <file> | -Version <version>]
       [-EncodedCommand <Base64EncodedCommand>]
       [-ExecutionPolicy <ExecutionPolicy>]
       [-File <filePath> <args>]
       [-InputFormat {Text | XML}] 
       [-NoExit]
       [-NoLogo]
       [-NonInteractive] 
       [-NoProfile] 
       [-OutputFormat {Text | XML}] 
       [-Sta]
       [-WindowStyle <style>]
       [-Command { - | <script-block> [-args <arg-array>]
                     | <string> [<CommandParameters>] } ]

PowerShell[.exe] -Help | -? | /?

参数

-EncodedCommand

接受命令的 Base 64 编码字符串版本。使用此参数可向 Windows PowerShell 提交需要复杂引号或大括号的命令。

-ExecutionPolicy

设置会话的默认执行策略。此参数不会更改在注册表中设置的 Windows PowerShell 执行策略。

-File

运行指定的脚本。请输入脚本文件路径和一些参数。

-InputFormat

描述发送至 Windows PowerShell 的数据格式。有效值为“Text”(文本字符串)或“XML”(序列化 CLIXML 格式)。

-NoExit

运行完启动命令后不退出。

-NoLogo

启动时隐藏版权标志。

-NonInteractive

不向用户显示交互式提示。

-NoProfile

不加载 Windows PowerShell 配置文件。

-OutputFormat

确定 Windows PowerShell 的输出格式。有效值为“Text”(文本字符串)或“XML”(序列化 CLIXML 格式)。

-PSConsoleFile

加载指定的 Windows PowerShell 控制台文件。若要创建控制台文件,请使用 Windows PowerShell 中的 Export-Console cmdlet。

-Sta

使用单线程单元启动 shell。

-Version

启动 Windows PowerShell 的指定版本。请随该参数输入一个版本号,例如“-version 1.0”。

-WindowStyle

将窗口样式设置为 Normal、Minimized、Maximized 或 Hidden。

-Command

按照执行在 Windows PowerShell 命令提示符下键入的命令那样,执行指定的命令和所有参数;如果未指定 NoExit,则执行完命令后将退出。Command 的值可以是“-”、字符串或脚本块。

如果 Command 的值为“-”,则从标准输入中读取命令文本。

脚本块必须括在大括号 ({}) 中。只有在 Windows PowerShell 中运行 PowerShell.exe 时才能指定脚本块。脚本的运行结果将作为反序列化 XML 对象(而非活动对象)返回父 shell。

如果 Command 的值为字符串,则 Command 必须是该命令的最后一个形式参数,因为其后键入的所有字符都会被解释为它的实际参数。

若要编写运行 Windows PowerShell 命令的字符串,请使用以下格式:

"& {<command>}"

其中,引号指示一个字符串,调用运算符 (&) 用于执行命令。

-Help, -?, /?

显示此消息。如果要在 Windows PowerShell 中键入 PowerShell.exe 命令,请将连字符 (-) 作为命令参数的前缀,而不要使用正斜杠 (/)。在 Cmd.exe 中,既可以使用连字符,也可以使用正斜杠。

示例

PowerShell -PSConsoleFile sqlsnapin.psc1

PowerShell -version 1.0 -NoLogo -InputFormat text -OutputFormat XML

PowerShell -Command {Get-EventLog -LogName security}

PowerShell -Command "& {Get-EventLog -LogName security}"

# To use the -EncodedCommand parameter:
$command = "dir 'c:\program files' "
$bytes = [System.Text.Encoding]::Unicode.GetBytes($command)
$encodedCommand = [Convert]::ToBase64String($bytes)
powershell.exe -encodedCommand $encodedCommand




目录