2015-11-18 154 views
3

有人后已经注销(开始按钮→注销)的夜晚,在我想有任务计划程序自动登录到Windows 7的用户帐户(启动按钮→注销的对面,早上一定时间),这是密码保护。该机器是64位。我正在这样做,因此系统(vbs,vba等)可以在用户出现工作之前准备文件。如何登录到用户帐户?

我非常确定这是可能的,但我无法在网上找到它,所以我想知道它是否真的有可能。

我必须在VBScript中这样做。

出于安全原因,我需要登录他关在晚上,但我想的那部分(VBS从SO):

Set = wshell = Wscript.CreateObject(Wscript.Shell") 
wschell.exec("shutdown.exe -L -F") 'logoff and force shutdown programs 

EDIT1: 使用从Sujith一个答案,我试图设置此。首先,我必须指出,这不是远程计算机或连接。我试图让本地计算机重新登录到用户帐户。

我创建logon.vbs这个VBS代码:

Set = wshell = Wscript.CreateObject(Wscript.Shell") 
wschell.exec("shutdown.exe -L -F") 'logoff and force shutdown programs 

WScript.Sleep(5000) 

computer = "computername" 
username = "OTHERDOMAIN\user" 
password = "password" 

Set locator = CreateObject("WbemScripting.SWbemLocator") 
Set wmi = locator.ConnectServer(computer, "root\default", username, password) 
wmi.Security_.ImpersonationLevel = 3 

换句话说,我注销和右后卫(避免任务计划这样的事情被简化)。我也尝试了很多变化,试图让它工作。它使我很好地登录,但之后没有任何反应。我必须手动登录。

我也尝试了Sujith的答案中提到的任务计划程序设置,但它从来没有打开,我可以告诉。

编辑2:或者请告诉我你需要提供答案吗?

+0

请帮助我!? – mountainclimber

回答

0

创建一个任务调度程序来运行一个vbscript,当用户通过选择触发选项“On disconnect from user session”从他的会话中注销时,可以触发该任务&任何用户。

在触发器上计划的vbscript可能具有在机器上进行远程登录的代码。对于代码,下面的链接将帮助你。

connect to Remote server in vb script

Connecting to a Remote Server on a different domain -- how do I enter the username and password?

+0

我退出后无法启动任务。甚至没有失败的任务运行。我会添加信息到我原来的问题。 – mountainclimber

0

我不认为你想做什么是可能的。如果您可以先重新启动,则可以使用Windows内置的“自动登录”功能解决此问题。

如果是这样,我有一个替代的解决方案提出了一些建议给你:

注销用户在指定的时间


  • 按照说明Assigning Logon Hours。旧文章,但仍然适用于较新的Windows Server操作系统。

    OR

  • 创建注销所有登录用户的脚本,然后创建运行的NT AUTHORITY \ SYSTEM在指定的时间执行该计划的任务。

自动重启,并用特定的用户名登录/密码


中创建一个批处理文件,说:“Enable_AutoLogon_and_Reboot.cmd”,并把它放在一个文件夹中,例如“C:\批处理文件中”。内容:

set sUsername=SOMEDOMAIN\Someusername 
set sPassword=somepassword 

:: Enable autologon on next boot 
reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\WinLogon" /v AutoAdminLogon /t REG_SZ /d 1 /f 

:: Set autologon to only log on once 
reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\WinLogon" /v AutoLogonCount /t REG_DWORD /d 1 /f 

:: Set username 
reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\WinLogon" /v DefaultUsername /t REG_SZ /d "%sUsername%" /f 

:: Set password 
reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\WinLogon" /v DefaultPassword /t REG_SZ /d "%sPassword%" /f 

:: Reboot 
shutdown /r /t 0 /f 

在开始时用实际的用户名和密码替换变量的值。

创建计划任务运行的NT AUTHORITY \ SYSTEM(例如每天06:00运行):

schtasks /create /tn "\CustomTasks\Enable AutoLogon and Reboot" /tr "%comspec% /c C:\BatchFiles\Enable_AutoLogon_and_Reboot.cmd" /st 06:00 /sc DAILY /ru "NT AUTHORITY\SYSTEM" /f 
+0

有趣。谢谢。我会对此进行一些思考,但我不认为重新启动是一种选择,因为这需要用户保存他们正在处理的所有内容和/或接受他们正在处理的某些文件的当前状态将保存为 - 是。 – mountainclimber

+1

如果您使用“shutdown.exe -L -F”在晚上关闭用户,则您已经强制关闭(-F)任何正在运行的应用程序。 – Drasen