2009-01-20 47 views
1

使用Windows 2003,我正在寻找一种方法来创建一个“注销脚本”,将继续当前注销,然后立即登录另一个用户。所以,“UserA”注销。脚本触发登录“UserB”。注销脚本来更改用户

这是我们编写'shell'的计算机的应用程序升级的一部分;类似于信息亭应用程序。对于升级,我们需要以“管理员”身份登录,然后在升级完成时注销“管理员”并以“sample_user”身份登录。我们希望在不重新启动的情况下完成此操作。

请注意,我不想要启动注销(即“关闭”)的脚本。我正在寻找将在用户注销时运行的script(通过组策略设置)。如上所述,该脚本应该记录一个不同的用户。

谢谢。

+0

你可能想要拿出第一句话的第一部分。这只是靠近的选票来吸引车手。 – EBGreen 2009-01-20 19:28:15

+0

他们将没有任何理由为什么应该关闭。 – 2009-02-03 20:51:37

+0

我不完全确定,但在注销后运行某些东西感觉像是一次重大的安全漏洞。该脚本将不得不以“root”或“administrator”身份运行。这是无人使用的吗? – Rolf 2009-02-03 21:32:56

回答

6

不要认为这是可能的以规定的方式(脚本在注销)。

您必须将机器设置为以指定帐户自动登录,然后注销(让它自动为您登录),然后您必须再次禁用该功能,方法是放置临时登录脚本......通常听起来很乱。

实际设置可以使用像微软共享计算机工具包或类似工具(不太确定“正常”注册表自动登录表现如何在手动注销时表现出来,但我有一个XP自助服务终端会立即自动登录,即使您手动注销 - 您必须使用Shift +注销等一些键来重写它,以便能够手动再次指定登录,因此可以以某种方式进行)。

的“最简单”的方法可能是用自己的制作人代替MSGINA.DLL ...

你为什么要这么做?只需使用runas,然后在不注销控制台用户的情况下启动其他用户所需的任何操作 - 这是一个多用户系统?桌面只是毛茸茸的^^

这将无论如何都需要用户凭据可用于您的脚本,哪种使它成为多余的,因为你妥协了该帐户的安全性 - 藐视拥有第二个帐户的目的首先,无论它存在什么目的?

+0

虽然我想说,“这在Apache上很容易”^^ – 2009-02-03 20:46:39

1

不知道如何,一旦当前用户注销登录其他用户(不知道如果Windows将让你...)

但是你可以用关机来注销:

shutdown /? 
0

如果您要以某种语言的普通脚本的形式运行此类功能,那么很可能不像您在退出帐户时那样工作,所有进程应该和你的运行脚本一起被杀死。

您可能可以创建某种服务,该服务可以在服务帐户上运行(即始终处于活动状态),以便自动为您切换此用户。

我的赌注是在Windows Powershell上,尽管我并不完全确定它实际上创建服务的功能。

快速搜索带来了以下(第二个链接是一个论坛,但它提到运行PowerShell的为服务并发送该服务,这将是路径到您的用户切换脚本参数)

How to Create a Windows Service using Powershel

Powershell Script as a Windows Service

1

这里有一些想法,probaly陷入“低价黑客”类别:

如何在第一时间为用户B登录,然后使用runas /user:userA <cmd>运行安装过程的第一部分?

如果这是不可接受的,我知道有一种方法可以使Windows工作站(不属于域的一部分)在重新启动后自动登录到某个用户帐户。也许如果您查看了哪些注册表更改发生,并重复它们,重新启动会自动登录该用户。 (当然,作为最后一个阶段,在用户B登录之后,您将不得不恢复这些更改:-)

我也怀疑是否有服务强制打开“登录屏幕“以某个用户的身份登录。也许使用远程桌面远程执行的方式......如果可能的话,那么您可以创建一个在注销userA之前安装的服务,这将触发userB的登录。

1

你可以用VNC编写脚本(有很多免费版本,请选择)。在机器上设置VNC服务器进程以侦听本地主机。当用户注销时,您的注销脚本将使用VNC连接到本机,并发送登录下一个用户所需的击键。 VNC使用RFB(远程帧缓冲)协议;有大多数流行语言的图书馆,所以你应该能够快速找到工作。或者有toolsmight有帮助。

0

我没有Windows 2003服务器或具有“组策略”设置的系统来测试我的预感,但是您可以查看Windows的SU(“切换用户”)。最初是资源工具包的一部分,这已扩展到新的SUperior SU。如果可以的话,请发布结果/脚本。

0

您可以从构建远程控制实用程序(如VNC等)的角度来解决这个问题。这里最重要的是,如果你想访问登录屏幕(即CTRL + ALT + DEL /用户名/密码)部分,唯一的问题是Windows服务是唯一可以访问它的组件,所以你会必须创建一个。

我看到这个技术作为一个整体的唯一问题是,即使你花费了大量的精力来使它工作(这将是一个非常大的努力),这个成功与整体工作的机会源于注销脚本的东西(即当东西关闭时)很低,即使是以管理员身份重新登录时出现的错误数量也很少。

只要记住,对于任何需要以管理员身份运行的任何情况,Windows中都有更简单的方法来实现此目的(例如运行方式,更改需要更新的项目的用户权限等)。