首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >当计算机启动时,如何运行PowerShell脚本?

当计算机启动时,如何运行PowerShell脚本?
EN

Stack Overflow用户
提问于 2013-12-13 20:17:58
回答 17查看 226.3K关注 0票数 84

我有一个监视图像文件夹的PowerShell脚本。我需要找到一种方法,以自动运行这个脚本后,计算机启动。

我已经尝试了以下方法,但我无法使它发挥作用。

  1. 使用msconfig并将PowerShell脚本添加到启动,但我在列表中找不到PowerShell脚本。
  2. 创建一个快捷方式并将其放到启动文件夹中。不走运。 %SystemRoot%\SysWOW64\WindowsPowerShell\v1.0\powershell.exe -File "C:\Doc\Files\FileMonitor.ps1“ 或 %SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe -File "C:\Doc\Files\FileMonitor.ps1“ 下面是我的PowerShell脚本: $folder = "C:\Doc\Files“$dest =”C:\Doc\Files\ $fsw = "*.jpg“$fsw = new-object System.IO.FileSystemWatcher $folder,$filter -Property @{ IncludeSubDirectories=$false NotifyFilter =System.IO.Notifyters‘’FileName,LastWrite‘} $onCreated =Register$fsw创建了-SourceIdentifier FileCreated { Start-Sleep 10 Move条目-SourceIdentifier C:\Doc\Files\图像}
  3. 我还尝试使用taskschd.msc添加一个基本任务。它仍然不起作用。 这是我发现的,也许这将有助于调试它。 如果我打开一个PowerShell窗口并在那里运行脚本,它就能工作。但如果我在命令提示符下运行, powershell.exe -File "C:\Doc\Files\FileMonitor.ps1“ 这是行不通的。我不确定这是许可问题还是其他问题。 顺便说一句,我已经安装了PowerShell 3.0,如果我输入$host.version,它将显示3。但我的powershell.exe似乎仍然是1.0版。 %SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe
EN

回答 17

Stack Overflow用户

发布于 2015-08-24 18:41:17

我终于让我的PowerShell脚本在每次启动时都能自动运行。您需要创建两个文件:第一个是Powershell脚本(例如script.ps1),第二个是包含将在命令提示符(例如startup.cmd)上运行的命令的.cmd文件。

第二个文件是计算机启动时需要执行的文件,简单地将.ps1粘贴到启动文件夹中是行不通的,因为这并不能真正执行脚本--它只会用记事本打开文件。您需要执行.cmd,它本身将使用PowerShell执行.ps1。好了,别唠叨了,走到台阶上:

  1. 创建.ps1脚本并将其放在文件夹中。为了简单起见,我把它放在桌面上。这条路看起来会是这样的:

%USERPROFILE%\Desktop**script.ps1**

  1. 创建一个.cmd文件并将其放入

%AppData%\Microsoft\Windows\Start Menu\Programs\Startup**startup.cmd**

这样做将在每次启动时执行cmd文件。下面是如何创建.cmd文件的链接,如果你需要帮助的话。

  1. 使用文本编辑器打开.cmd文件,并输入以下行:
代码语言:javascript
运行
复制
PowerShell -Command "Set-ExecutionPolicy Unrestricted" >> "%TEMP%\StartupLog.txt" 2>&1
PowerShell %USERPROFILE%\Desktop\script.ps1 >> "%TEMP%\StartupLog.txt" 2>&1

这将做两件事:

  1. 将PowerShell的执行策略设置为无限制。这是运行脚本所必需的,否则PowerShell就不会这么做了。
  2. 使用PowerShell执行在指定路径中找到的.ps1脚本。

此代码专门用于PowerShell v1.0。如果您运行的是PowerShell v2.0,则可能会有一些不同。在任何情况下,都要检查本源的.cmd代码。

  1. 保存.cmd文件

现在,您已经将.ps1和.cmd文件放在各自的路径中,并为每个文件编写了脚本,您已经做好了准备。

票数 80
EN

Stack Overflow用户

发布于 2013-12-13 20:22:45

您可以将其设置为计划任务,并将任务触发器设置为“启动时”

票数 21
EN

Stack Overflow用户

发布于 2016-12-31 06:24:32

我所做的是创建一个快捷方式,我把它放在shell中:启动。

该快捷方式具有以下内容:

目标:C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -Command "C:\scripts\script.ps1"

(用所需的内容替换scripts\scripts.ps1 )

开始:C:\scripts

(用包含脚本的文件夹替换脚本)

票数 19
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20575257

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档