当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 如何使用 Start-Process 在 PowerShell 中运行可执行文件?

作者:精品下载站 日期:2024-12-14 21:39:39 浏览:12 分类:玩电脑

如何使用 Start-Process 在 PowerShell 中运行可执行文件?


您是否曾经发现自己需要从 Windows PowerShell 命令行启动可执行文件?在 PowerShell 中运行可执行文件是在 Windows 系统上自动执行任务和执行各种操作的强大而有效的方法。无论您是系统管理员还是 PowerShell 爱好者,了解运行可执行文件的不同方法都可以大大提高您的工作效率。在本综合指南中,我们将探索使用 PowerShell 执行 .exe 文件的各种方法,并提供清晰的说明和实际示例。

作为一名系统管理员,我一直发现 PowerShell Start-Process 命令是一个非常有用的工具。它允许从 PowerShell 内启动程序、脚本和可执行文件,从而为系统提供更好的控制和灵活性。在本指南中,我将向您展示有关使用 PowerShell Start-Process 命令所需了解的所有信息。

PowerShell启动进程命令简介

PowerShell Start-Process 命令是一个功能强大的工具,用于在新进程中启动新程序或脚本。此 cmdlet 允许我们直接从命令行或 PowerShell 脚本启动外部程序,并且可用于启动任何程序,包括批处理文件、可执行文件和 PowerShell 脚本。

使用 Start-Process 命令的最大优点之一是它允许您以不同用户身份或以提升的权限运行程序。这意味着即使您以标准用户身份登录,也可以使用管理员权限运行程序。此外,Start-Process 命令允许您将参数传递给您正在启动的程序或脚本,这使您可以更好地控制进程。

了解启动进程命令

PowerShell Start-Process 命令具有许多不同的参数,您可以使用这些参数来自定义命令的运行方式。最重要的参数是 FilePath 参数,它指定要启动的程序或脚本的位置。

另一个重要参数是 ArgumentList 参数,它允许您将参数传递给正在启动的程序或脚本。例如,如果您要启动 PowerShell 脚本,则可以使用 ArgumentList 参数将参数传递给脚本。

Start-Process 命令还具有允许您指定工作目录、窗口样式以及要启动的进程的优先级的参数。如果您需要以特定方式启动程序或脚本,这些参数可能会很有用。除了其他默认参数之外,以下是启动进程 cmdlet 的重要参数列表:

-FilePath

指定要运行的可执行文件、应用程序、文件、批处理或脚本

-ArgumentList

指定要启动的流程所使用的参数

-Credential

运行进程的用户帐户

-NoNewWindow

在当前控制台进程中打开一个窗口

-Passthru

返回已启动进程的进程对象。您可以从中获取进程 ID。

-RedirectStandardError

指定将错误输出重定向到的文本文件

-RedirectStandardInput

包含流程输入的文本文件

-RedirectStandardOutput

指定将输出重定向到的文本文件

-UseNewEnvironment

该进程将使用为该进程指定的新环境变量,而不是默认值,位于:计算机和用户下

-WindowStyle

指定窗口的状态:正常、隐藏、最小化或最大化

-Wait

等待该过程完成,然后再继续执行脚本

-WorkingDirectory

进程应该开始的位置

使用 PowerShell 的启动进程命令运行程序

Microsoft PowerShell Start-Process 命令最常见的用途之一是启动程序。要启动程序,您只需使用 FilePath 参数指定程序的位置。例如,要从 PowerShell 终端或 PowerShell ISE 启动记事本,您可以使用以下命令:


Start-Process -FilePath "notepad.exe"

该命令将在新进程中启动记事本。

[玩转系统] 如何使用 Start-Process 在 PowerShell 中运行可执行文件?

如果要在后台运行可执行文件而不显示任何窗口或提示,可以使用 Start-Process cmdlet 的 -WindowStyle Hidden 参数。同样,您可以使用以下命令在新窗口中打开任何指定的文件(非可执行文件,例如 doc 文件):


Start-Process -FilePath "C:\Docs\AppLog.txt" -WindowStyle Maximized

这将在最大化窗口中打开文件“C:\Docs\AppLog.txt”。

使用 Start-Process 命令以提升的权限运行程序

PowerShell Start-Process 命令的另一个有用功能是能够以提升的权限运行程序。如果您需要以管理员身份运行程序,但您以标准用户身份登录,则此功能特别有用。要以提升的权限运行程序,可以使用 RunAs 参数。

例如,要以管理员身份启动 PowerShell,您可以使用以下命令:


Start-Process -FilePath "powershell.exe" -Verb RunAs

此命令将从当前用户的上下文中以提升的权限启动 PowerShell。

使用 PowerShell 中的 Start-Process 以不同用户身份运行可执行文件

start-Process cmdlet 使用当前用户的凭据。但是,在某些情况下,您可能需要在 PowerShell 中以不同用户身份运行可执行文件。当您想要以提升的权限执行程序或需要代表另一个用户运行程序时,这会很有用。 PowerShell 使我们能够使用 Start-Process cmdlet 以不同用户身份运行可执行文件。让我们考虑一个例子:


Start-Process -FilePath "powershell.exe" -Credential (Get-Credential)

在上面的示例中,我们利用 Start-Process cmdlet 和 Get-Credential cmdlet 的 Credential 参数来指定我们要运行可执行文件的用户的凭据。 PowerShell 提示我们输入用户名和密码,确保使用指定用户的权限安全执行可执行文件。

[玩转系统] 如何使用 Start-Process 在 PowerShell 中运行可执行文件?

您还可以使用硬编码的用户名和密码通过保存的 PSCredential 对象中的脚本文件运行应用程序:


# Parameters
$FilePath = "C:\Scripts\RunMe.bat"
$UserName = "Crescent\salaudeen"
$Password = "Password goes here"
 
#Prepare the Credentials
$SecurePassword = ConvertTo-SecureString $Password -AsPlainText -Force
$Credential = new-object -typename System.Management.Automation.PSCredential -argumentlist $UserName, $SecurePassword

#Start a process with 
Start-Process -FilePath $FilePath -Wait -Credential $Credential

使用 Start-Process 命令运行 PowerShell 脚本

PowerShell Start-Process 命令也可用于启动 PowerShell 脚本。要启动 PowerShell 脚本,您需要使用 FilePath 参数指定脚本的位置。此外,您可以使用 ArgumentList 参数将参数传递给脚本。

例如,要启动位于 C:\Scripts\MyScript.ps1 中的 PowerShell 脚本,您可以使用以下命令:


Start-Process -FilePath "powershell.exe" -ArgumentList "-File C:\Scripts\MyScript.ps1"

此命令将在新的 PowerShell 进程中启动 MyScript.ps1 脚本。

在启动进程命令中使用参数

如前所述,PowerShell Start-Process 命令允许您将参数传递给正在启动的程序或脚本。如果您需要自定义程序或脚本的行为,这会很有用。

例如,如果您正在启动需要命令行参数的程序,则可以使用 ArgumentList 参数传递这些参数。


Start-Process -FilePath "myprogram.exe" -ArgumentList "-arg1 value1", "-arg2 value2"

此命令将使用参数“-arg1 value1”和“-arg2 value2”启动 myprogram.exe 程序。参数值取决于您正在运行的应用程序。让我们举个例子:假设您想在 Google Chrome 中打开一个 URL。操作方法如下:


Start-Process -FilePath "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" -ArgumentList "https://www.google.com"

[玩转系统] 如何使用 Start-Process 在 PowerShell 中运行可执行文件?

在此示例中,-FilePath 参数指定 Chrome 可执行文件的路径,-ArgumentList 参数提供要在 Chrome 中打开的 URL。参数作为字符串传递,其中每个参数之间用空格分隔。这使我们能够为可执行文件提供多个参数并自定义其行为。

使用 Start-Process 命令运行可执行文件

在 PowerShell 中使用 Start-Process 运行可执行文件是一个简单的过程。只需将可执行文件的路径指定为 Start-Process cmdlet 的参数,PowerShell 即可启动该程序并执行它。当您想要运行独立的可执行文件而不需要任何其他参数或自定义时,此方法特别有用。让我们看一个例子:

要启动可执行文件,您需要使用 FilePath 参数指定可执行文件的位置。


Start-Process -FilePath "C:\MyProgram\MyProgram.exe"

此命令将启动 MyProgram.exe 可执行文件。

使用 Start-Process 命令运行批处理文件

PowerShell 不仅限于运行独立的可执行文件;它还可以轻松执行脚本和批处理文件。通过利用 Start-Process cmdlet,我们可以在 PowerShell 中启动脚本和批处理文件并自动执行复杂的任务。这为我们提供了将 PowerShell 与其他脚本语言集成并利用其功能的灵活性。让我们看一下使用 Start-Process 运行 PowerShell 脚本的示例:

要启动批处理文件,您需要使用 FilePath 参数指定批处理文件的位置。


Start-Process -FilePath "C:\MyBatchFile.bat"

此命令将启动 MyBatchFile.bat 文件。除了 Start-Process cmdlet 之外,我们还有 Invoke-Expression cmdlet,它使用调用运算符 (&) 和 .Net 框架方法从 PowerShell 运行可执行文件。阅读更多内容:如何从 PowerShell 运行批处理文件?

Start-Process 命令的常见错误和故障排除提示

虽然 PowerShell Start-Process 命令是一个功能强大的工具,但您可能会遇到一些常见错误。

  1. 访问被拒绝:一种常见错误是“访问被拒绝”错误。当您尝试使用提升的权限运行程序或脚本,但您没有这样做的权限时,会出现此错误。要修复此错误,您需要以管理员身份登录或使用 RunAs 参数以提升的权限运行程序。
  2. 找不到文件:另一个常见错误是“找不到文件”错误。当您指定不正确的文件路径时,会出现此错误。要修复此错误,您需要仔细检查文件路径并确保其正确。这包括验证文件权限和网络访问(如果可执行文件驻留在远程计算机上)。始终使用可执行文件的完整路径,以避免任何歧义或对系统 PATH 环境变量的依赖。
  3. 无效参数:如果可执行文件需要特定参数,请确保使用 Start-Process cmdlet 的 ArgumentList 参数正确传递这些参数。

使用Try-Catch 块等错误处理技术来妥善处理可执行文件执行期间可能发生的任何异常。通过识别和解决这些常见问题,您可以克服在 PowerShell 中运行可执行文件时可能出现的任何障碍,并确保顺利执行。

结论和最佳实践

在本指南中,我们介绍了您需要了解的有关使用 PowerShell Start-Process 命令的所有信息。如您所见,此命令是一个功能强大的工具,可用于在新进程中启动程序、脚本和可执行文件。通过了解 Start-Process 命令及其参数,您可以自动执行任务、运行批处理文件、以提升的权限执行程序、传递参数,甚至以不同用户身份运行可执行文件。

使用 Start-Process 命令时,请务必仔细检查文件路径和参数以避免常见错误。此外,在生产环境中运行命令之前,最好先在测试环境中测试命令。

现在您已经更好地了解了 PowerShell Start-Process 命令,您可以开始使用它来自动化您的任务并简化您的工作流程!

经常问的问题:

如何像 EXE 一样运行 PowerShell 脚本?

要像 EXE 一样运行 PowerShell 脚本,您可以创建一个调用 PowerShell 脚本的批处理文件。在批处理文件中,您将使用以下命令:“powershell.exe -ExecutionPolicy Bypass -File C:\Path\to\Script.ps1”。这将绕过执行策略并像 EXE 文件一样执行 PowerShell 脚本。

如何在 PowerShell 中运行 EXE 文件?

要在 PowerShell 中运行 EXE 文件,您可以使用“Start-Process”cmdlet。以下是您可以使用的命令示例:“Start-Process -FilePath ‘C:\Path\to\file.exe’”。将“C:\Path\to\file.exe”替换为 EXE 文件的实际路径。

如何在 PowerShell 中静默安装 EXE 文件?

要使用 PowerShell 以静默方式安装 EXE 文件,可以使用带有 -ArgumentList 参数的 Start-Process cmdlet。以下是您可以使用的命令示例:Start-Process -FilePath “path\to\file.exe” -ArgumentList “/silent”

如何在 PowerShell 中打开应用程序?

要使用 PowerShell 打开应用程序,您可以使用 Start-Process cmdlet,后跟应用程序可执行文件的路径。例如,要打开记事本,您可以使用命令Start-Process notepad.exe。在 PowerShell 控制台中。

如何在 PowerShell 中以管理员身份运行 EXE 文件?

要在 PowerShell 中以管理员身份运行 EXE 文件,可以使用 Start-Process cmdlet,并将 -Verb 参数设置为“RunAs”。下面是一个示例命令:Start-Process -FilePath “C:\Path\to\file.exe” -Verb RunAs

如何从命令行运行exe文件?

要从命令行运行 EXE 文件,您需要使用“cd”命令导航到该文件所在的目录。进入当前目录后,只需键入可执行文件的名称并按 Enter 即可运行它。

如何从命令提示符运行 PS?

要从命令提示符运行 PowerShell 命令,您可以使用“PowerShell”命令,后跟所需的 PowerShell 命令名称。例如,要从 cmd 在 PowerShell 中运行“Get-Process”命令,您可以键入“powershell Get-Process”并按 Enter。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯