从另一工具(如 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