You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

RunOnce开机不运行求助:启动脚本重启后无法执行

解决重启后RunOnce中PowerShell脚本不执行的问题

我之前也碰到过类似的自动登录+RunOnce脚本不运行的坑,咱们一步步来排查和解决你的情况:

你的需求是让系统依次执行脚本、重启循环,但现在设置了自动登录和RunOnce注册表项后,自动登录完成却完全没触发PowerShell脚本。结合你的代码,主要有几个关键问题需要修正:

1. 注册表路径存在多余空格(自动登录设置失效)

你的原代码里Winlogon的路径写错了:

$RegPath = "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion \Winlogon"

CurrentVersion后面多了一个空格,这会导致PowerShell找不到这个注册表项,自动登录的设置根本没生效,这是核心问题之一!必须把空格去掉,改成正确的路径:
HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon

2. ~路径无法在RunOnce中被解析

~是PowerShell专属的用户主目录缩写,但RunOnce注册表项是由系统加载的,它不认识~这个符号,所以~\Downloads\systemrename.ps1会被当成无效路径,PowerShell自然找不到脚本。

你需要用$env:USERPROFILE来获取当前用户的完整主目录路径,这样拼接出来的路径是系统能识别的绝对路径。

3. PowerShell执行策略限制

默认情况下,Windows的PowerShell执行策略可能会阻止未签名的脚本运行,即使路径正确,也可能因为执行策略导致脚本无法启动。我们需要在调用PowerShell时加上-ExecutionPolicy Bypass参数,临时绕过执行策略限制。

4. 路径的引号包裹(避免空格问题)

如果用户主目录路径里包含空格(比如用户名是John Doe),拼接后的路径会有空格,导致PowerShell无法正确识别脚本路径。所以需要把脚本路径用双引号括起来,确保路径被完整识别。


修改后的完整脚本

# 设置自动登录(修复注册表路径空格问题)
$RegPath = "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon"
$DefaultUsername = Read-Host -Prompt "User's O365 Cred"
$DefaultPassword = Read-Host -Prompt "User's O365 Pass"

Set-ItemProperty $RegPath "AutoAdminLogon" -Value "1" -Type String
Set-ItemProperty $RegPath "DefaultUsername" -Value $DefaultUsername -Type String
Set-ItemProperty $RegPath "DefaultPassword" -Value $DefaultPassword -Type String

# 配置RunOnce项(修复路径、执行策略和引号问题)
$RunOnceKey = "HKLM:\Software\Microsoft\Windows\CurrentVersion\RunOnce"
$ScriptPath = Join-Path $env:USERPROFILE "Downloads\systemrename.ps1"
# 用引号包裹路径,加上执行策略参数,确保命令能正确执行
$Command = "C:\Windows\System32\WindowsPowerShell\v1.0\Powershell.exe -ExecutionPolicy Bypass -File `"$ScriptPath`""
Set-ItemProperty $RunOnceKey "NextRun" -Value $Command -Type String

Start-Sleep 10
Restart-Computer

额外检查点

  • 确保systemrename.ps1确实存在于$env:USERPROFILE\Downloads目录下,路径拼写完全正确(注意大小写,Windows虽然不区分,但最好和实际路径一致)。
  • 如果你的系统是64位的,且脚本依赖32位PowerShell环境,需要把PowerShell路径改成C:\Windows\SysWOW64\WindowsPowerShell\v1.0\Powershell.exe。
  • 执行这个配置脚本时,必须以管理员身份运行PowerShell,否则没有权限修改HKLM下的注册表项,所有设置都会失效。

内容的提问来源于stack exchange,提问作者Dan Shepard

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 06:38:23