autologon.ps1 交互输密码启用/撤销 AutoAdminLogon(DefaultPassword 仅 Administrators 可读),补齐「开机自动登录 → Startup keepalive → 控制台+ 调度器」自启链唯一缺口;采集依赖 CDP 交互会话,不能用服务/SYSTEM 任务 替代。runbook 增补开机自启与重启验收章节。
48 lines
2.5 KiB
PowerShell
48 lines
2.5 KiB
PowerShell
# GYXX Flow 开机自启:启用/关闭 Windows 自动登录
|
||
#
|
||
# 背景:控制台+调度器的自启链是
|
||
# 开机 → 自动登录进桌面 → Startup\gyxx-keepalive.vbs → keepalive → 控制台(8765)+调度器
|
||
# 唯一缺口是 AutoAdminLogon(默认 0,重启后停在登录界面,Startup 不触发)。
|
||
# 采集依赖浏览器 CDP,必须跑在交互式用户会话,因此不能用服务/Task Scheduler SYSTEM 替代。
|
||
#
|
||
# 启用(交互输入密码,不会留在命令历史):
|
||
# powershell -ExecutionPolicy Bypass -File D:\gyxx-flow\deploy\watchdog\autologon.ps1
|
||
# 撤销:
|
||
# powershell -ExecutionPolicy Bypass -File D:\gyxx-flow\deploy\watchdog\autologon.ps1 -Disable
|
||
#
|
||
# 注意:DefaultPassword 以明文存于 HKLM Winlogon(仅 Administrators 可读),
|
||
# 内网采集机可接受;介意安全性请改用 Sysinternals Autologon.exe(LSA secret 存储)。
|
||
param(
|
||
[switch]$Disable
|
||
)
|
||
|
||
$winlogon = 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon'
|
||
|
||
if ($Disable) {
|
||
Set-ItemProperty $winlogon -Name AutoAdminLogon -Value '0'
|
||
Remove-ItemProperty $winlogon -Name DefaultPassword -ErrorAction SilentlyContinue
|
||
Write-Host '已关闭自动登录(DefaultPassword 已清除)。' -ForegroundColor Yellow
|
||
exit 0
|
||
}
|
||
|
||
$pwd1 = Read-Host -AsSecureString "输入 $env:USERNAME 的 Windows 登录密码"
|
||
$pwd2 = Read-Host -AsSecureString '再输一次确认'
|
||
$plain1 = [Net.NetworkCredential]::new('', $pwd1).Password
|
||
$plain2 = [Net.NetworkCredential]::new('', $pwd2).Password
|
||
if ($plain1 -ne $plain2) { throw '两次输入不一致,未做任何修改。' }
|
||
if ([string]::IsNullOrEmpty($plain1)) {
|
||
Write-Warning '密码为空:策略 LimitBlankPasswordUse=1 会拒绝空密码自动登录,请先给账户设置密码。'
|
||
exit 1
|
||
}
|
||
|
||
Set-ItemProperty $winlogon -Name AutoAdminLogon -Value '1'
|
||
Set-ItemProperty $winlogon -Name DefaultUserName -Value $env:USERNAME
|
||
Set-ItemProperty $winlogon -Name DefaultDomainName -Value $env:COMPUTERNAME
|
||
Set-ItemProperty $winlogon -Name DefaultPassword -Value $plain1
|
||
# AutoLogonCount 每次自动登录会递减,删掉表示不限次数
|
||
Remove-ItemProperty $winlogon -Name AutoLogonCount -ErrorAction SilentlyContinue
|
||
|
||
Write-Host '自动登录已启用。' -ForegroundColor Green
|
||
Write-Host '验证方式:挑空闲时间重启一次,开机应自动进桌面,约 2 分钟内控制台(127.0.0.1:8765)与调度器就位;'
|
||
Write-Host '也可查看 D:\gyxx-flow\var\logs\keepalive\keepalive.log 出现 keepalive-start / scheduler-restarted / console-restarted。'
|