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

[玩转系统] PowerShell:如何在应用程序关闭时自动重新启动应用程序

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

PowerShell:如何在应用程序关闭时自动重新启动应用程序


如果您希望应用程序始终启动并可用,那么本文适合您。有时应用程序会被用户错误地关闭。本文演示了如何配置计划任务来监视应用程序状态的分步方案。

先决条件

好吧,我们将使用 PowerShell 三层。对于PowerShell脚本文件的执行,我们必须看一下PowerShell执行策略。确保策略设置配置为远程签名(推荐)或不受限制。

Get-ExecutionPolicy

[玩转系统] PowerShell:如何在应用程序关闭时自动重新启动应用程序

如果您看到受限,请运行

Set-ExecutionPolicy remotesigned -Force

[玩转系统] PowerShell:如何在应用程序关闭时自动重新启动应用程序

用于检查应用程序状态的 PowerShell 脚本(已启动/未启动)

打开 PowerShell ISE。 (在 PowerShell 中键入 ise)。将代码复制到您的 ISE 会话中。

If (!(Get-Process -Name notepad.exe -ErrorAction SilentlyContinue))
{Invoke-Item C:\Windows\notepad.exe
}

让我们留在这里做一个简短的解释。 If 语句检查 notepad.exe 是否正在运行。这 !命令的开头是 NOT 语句。仅当记事本未运行时,Invoke-Item 才会再次启动记事本。

保存脚本。我将其命名为notepad.ps1。

[玩转系统] PowerShell:如何在应用程序关闭时自动重新启动应用程序

现在我们可以继续并将脚本放入计划任务中。不幸的是,我必须告诉你这不是一个好主意。为什么?每次脚本运行时都会弹出 PowerShell。这很烦人。好消息:我有一个解决方法。我们从 VB 脚本调用 PowerShell 脚本!

创建 VB 脚本

打开记事本。输入以下内容:

command = "powershell.exe -nologo -command C:\Temp\notepad.ps1"
set shell = CreateObject("WScript.Shell")
shell.Run command,0

[玩转系统] PowerShell:如何在应用程序关闭时自动重新启动应用程序

[玩转系统] PowerShell:如何在应用程序关闭时自动重新启动应用程序

配置计划任务每 60 秒运行一次

打开 PowerShell ISE。首先,考虑您要为哪个用户创建任务。在以下代码示例中,将为本地用户帐户 patrick 配置任务。另请注意 VB 脚本的路径(第 1 行):

$Action=New-ScheduledTaskAction -Execute "C:\Temp\notepad.vbs"
$Trigger=New-ScheduledTaskTrigger -Once -At (Get-Date) -RepetitionInterval (New-TimeSpan -Minutes 1)
$Set=New-ScheduledTaskSettingsSet
$Principal=New-ScheduledTaskPrincipal -UserId "patrick" -LogonType Interactive
$Task=New-ScheduledTask -Action $Action -Trigger $Trigger -Settings $Set -Principal $Principal
Register-ScheduledTask -TaskName "Start Notepad" -InputObject $Task

当帕特里克登录时,如果记事本未启动,则任务将启动它。这种情况每 60 秒发生一次。不支持少于 1 分钟的配置。

一分耕耘一分收获

主题结束。

编写计划任务脚本是一场噩梦。我有一个拼写错误和逻辑错误,一个多小时都找不到它们。一分耕耘一分收获。 ?

不用担心。以上所有内容均有效。玩得开心!

进一步的想法

如果您喜欢计划任务和 PowerShell,请查看我的文章

如何使用 PowerShell 安排软件安装

配置每次登录时自动启动 PowerShell

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

取消回复欢迎 发表评论:

关灯