我有一个脚本,可以获取包含 PC 名称的文件并自动登录
这种情况对于本地帐户来说很好,但对于域帐户来说它不起作用实际上计算机启动网络不会初始化这就是为什么它在电脑上显示错误“未找到登录服务器”意味着没有网络但 1 分钟后它在网络初始化时手动工作请稍微修改以便它可能在重新启动后暂停约“1 分钟”然后开始登录过程(当网络正确初始化时)下面是脚本
Set objFSO = CreateObject("Scripting.FileSystemObject")
set objShell = wscript.CreateObject("wscript.shell")
const HKEY_CURRENT_USER = &H80000001
const HKEY_LOCAL_MACHINE = &H80000002
Const HKEY_CLASSES_ROOT = &H80000000
Const HKEY_USERS = &H80000003
Const HKEY_CURRENT_CONFIG = &H80000005
sUserName = InputBox("enter user name")
sPassword = InputBox("enter the password for the user")
Set oTS = objFSO.OpenTextFile("path of my txt file")
Do Until oTS.AtEndOfStream
strComputer = oTS.ReadLine
On Error Resume Next
Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & _
strComputer & "\root\default:StdRegProv")
sRegPath = "SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\"
' oReg.SetStringValue HKEY_USERS,strKeyPath,strValueName,strValue
oReg.SetStringValue HKEY_LOCAL_MACHINE,sRegPath,"AutoAdminLogon",1
oReg.SetStringValue HKEY_LOCAL_MACHINE,sRegPath,"DefaultUserName",sUserName
oReg.SetStringValue HKEY_LOCAL_MACHINE,sRegPath,"DefaultPassword",sPassword
'objShell.Run "shutdown.exe /R /T 5 /C"
objShell.Run "C:\Windows\System32\shutdown.exe /m \\" & strComputer & " -r "
Loop
MsgBox ("Successfully Logged On values Set")
oTS.Close
WScript.Quit
非常感谢您的帮助
答案1
您的问题不在于脚本,而在于脚本的设置方式。当 PC 加入域时,您用来设置自动登录的注册表破解方法会有所不同。首先,您必须使用 DOMAIN\username 以域用户身份登录,而我发现让此方法正常工作的唯一可靠方法是使用程序netplwiz
如果您已使用注册表项设置自动登录,netplwiz
则应该能够选中复选框并输入登录凭据。取消选中并选中后,点击应用,并输入正确的登录凭据,它应该会创建正确的注册表值。如果您将这些合并到脚本中,它应该可以工作。
答案2
一定要看看 LPChip 所说的内容,但对于有关执行延迟的部分,您可以使用 进行循环DoEvents
。类似于:
numSeconds = 120
StartSecond = Now
EndSecond = DateAdd("s", numSeconds, Now)
While Now < EndSecond
DoEvents
Wend
我可能会进行一项测试来查看循环内网络是否启动,如果网络没有启动则可能退出执行。