powershell - 如何在计算机启动时运行 powershell 脚本
问题描述
我正在尝试Daily.ps1
在启动时运行 PowerShell 脚本,但是,由于管理员设置(我无法以管理员身份运行,这不是一个选项),我无法通过任务计划程序运行它。例如,这是 的内容Daily.ps1
:
if (1 -eq 1) {
"Hello there!"
}
所以我试图让一个批处理脚本
Daily.cmd
在启动时运行(通过启动文件夹),它运行,但我无法让它运行Daily.ps1
,并且我收到一条消息,说正在运行脚本被禁用。(两个文件在同一个目录下)powershell C:\Users\Simon\Desktop\Daily.ps1
文件 C:\Users\Simon\Desktop\Daily.ps1 无法加载,因为在此系统上禁用了运行脚本
然后我尝试使用我学到的技巧中的这行代码来直接绕过正在运行的脚本:
powershell cat Daily.ps1 | powershell invoke-expression
这有效,但仅适用于一个衬垫。所以我添加了 的
-raw
标志cat
,它在 powershell 中有效,但在 CMD 中无效。出于某种原因,Daily.ps1
的文本仍然存储为字符串数组。(为格式化道歉)命令管道位置 1 处的 cmdlet Invoke-Expression
为以下参数提供值:
命令:if (1 -eq 1) {
- 调用表达式:在 line:1 char:14
- 如果 (1 -eq 1) {
- 语句块或类型定义中缺少结束“}”。
- 在行:1 字符:1
- 调用表达式~~~~~~~~~~~~~~~~~
所以我尝试将其添加到
Daily.cmd
:powershell cat -raw Daily.ps1 | powershell-invoke-expression
但是,一旦我进入 PowerShell,脚本的其余部分就根本不会执行。
我不知道要Daily.ps1
运行批处理命令。有没有我错过的方法,或者我尝试的方法之一有问题(没有管理员权限)?
编辑:为了澄清,ExecutionPolicy
设置为Restricted
,并且无法更改。此外,我可以通过右键单击文件并使用 PS 运行来很好地运行 PowerShell 脚本。
解决方案
创建计划任务以在计算机启动时运行。放入powershell.exe
“程序/脚本”-File "C:\path\to\your.ps1"
字段和“参数”字段(您可能希望避免将脚本放在用户配置文件中)。将任务设置为无论用户是否登录都运行。
推荐阅读
- sql - 以下 SQL 代码中存在语法错误。为什么?
- python - GeoDjango OSMWidget 坐标变化
- c# - 从类列表中删除重复元素
- python - 展开 Python 正则表达式以列出所有可能的字符串
- firebase - Firebase 动态链接分析未显示?
- php - ChoiceType 未映射到实体字段
- android - 如何从 listview onclick 项目中获取特定的 edittext 值?
- python - SQLAlchemy 验证 SSL 连接
- typescript - RxJS:switchMap/mergeMap 中的扫描运算符
- javascript - 未捕获的类型错误:无法读取未定义的属性“包含”