使用密码的Windows7登录脚本

我一直在尝试编写脚本批处理文件或 exe 来执行登录。它应该执行一个基本操作-只需登录我的 windows 7 pc 不在网络中。我有一个 jar 文件在后台运行。我想写一个带有密码的脚本来登录我自己的 windows 7 pc

我一直在尝试编写脚本批处理文件或 exe 来执行登录。它应该执行一个基本操作-只需登录我的 windows 7 pc 不在网络中。我有一个 jar 文件在后台运行。我想写一个带有密码的脚本来登录我自己的 windows 7 pc

我已经研究了一些实用程序Logon.exe

上面的实用程序在我的电脑中不起作用显示一些错误,如

Windows Logon version 1.04
Copyright (c) 2003-2010 SoftTree Technologies, Inc.
Unable to install logon service (OpenSCManager failed).
Logon failed.

在某个地方,它告诉文件应该以管理员身份运行。

这是我的代码:

Process process = new ProcessBuilder("C:\\Logon.exe","-p","welcome").start();
InputStream is = process.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
String line;
while ((line = br.readLine()) != null) {
  System.out.println(line);
}

我也尝试使用AutoLogon using LogonExpert

上面的工具是完美的。但我需要的是只使用 java 和需要时登录。

请帮帮我,伙计们...

5

你想做的是可行的,但是你必须遵守规则,这些规则不包括 Java。这里有一点历史,为什么你目前的尝试不起作用,以及你如何修复它。

这不容易.

一点历史

首先,从 Windows Vista 开始,Windows 获取凭据的方式发生了根本变化。您提到的 logon.exe 实用程序使用旧体系结构。那时,您几乎可以做任何您想做的事情,因为在 Winlogon 的过程中,任何与登录体系结构有关的事情都可以作为 DLL 运行。您可能已经找到了一些自定义的 GINA,例如this one I wrote。在最新版本的 Windows 中,它们被忽略。

现在,Winlogon 要求 LogonUI 获取凭据。LogonUI 是一个将托管凭据提供程序的进程。凭据提供程序在登录屏幕上由“磁贴”表示。有几个 COM 接口要实现,以便 LogonUI 向您询问凭据。

要记住的重要事情是:

必须实现 COM 接口才能与登录进程交互

您可以决定呈现什么 UI,或者根本没有 UI

实现 COM 接口几乎不包括 Java。

你现在面临的问题

登录用户意味着为他获取安全令牌。但是以交互方式登录用户意味着您必须告诉 Winlogon 打开门。Winlogon 将的唯一进程是 LogonUI。

换句话说,即使您有可以创建安全令牌的代码,您也无法使用它来解锁桌面。

顺便说一下,创建安全令牌的 Windows API 是LogonUser

你怎么能解决它

您必须编写一个 Credential Provider。我从未听说过在 Java 中执行此操作的方法,这过于平台特定且不可移植。所有的文档如果为 C++,但我听说它可以在.Net 中完成。一个很好的起点是平台 SDK 中的 Credential Providers 示例。

当您的 Credential Provider 初始化时,您将生成一个等待某些事件的线程,例如蓝牙设备出现。只要您可以与 CP 通信,运行服务就可以工作。

您还需要在ICredentialProvider::Advise的实现中保存指向 LogonUI 的事件机制的指针。

当您的硬件检测线程检测到您的蓝牙设备时,让它调用ICredentialProviderEvents::CredentialsChanged。它会告诉 LogonUI 再次检查所有凭据提供程序。当被调用时,您必须回答您是默认的自动登录提供程序。

呼!我们还没有登录呢!

最后一步是检索您为该用户保存的密码,并在调用ICredentialProviderCredential::GetSerialization时将其发送到 LogonUI。

LogonUI 将从那里获取它。它将指示 Winlogon 为您调用身份验证包并登录用户。

This SO answer说同样的事情,但它有点简洁。这个MSDM article比我的答案更完整。

+ 加密和管理用户的密码是作为一个 exercice;),但你可能想看看Data Protection API

1

您还可以使用已经存在的自动登录功能。

以 admin 身份登录并执行 (WIN-R):

控制用户密码2

取消选中用户必须输入用户名和密码才能使用此计算机

您的 PC 仍然可以安全地进行远程访问。

1

由于 ixe013 答案解释了完成交互式登录的本机方式(也检查此SO Q&A),我花了一些时间来研究 logonExpert 工具,该工具已经根据您的反馈成功完成了工作,该工具是用 Borland Delphi 编写的(使用 PEiD 检查)。

我不知道你是否注意到 le.exe cmd 工具,它使您能够以类似于 logon.exe 的方式按需调用它。(通过阅读帮助 chm 文件找到)。

虽然我的回答没有添加有价值的技术亮点,但我认为你可能会错过 cmd 工具选项。

免责声明:我与 logonexpert 没有任何关系。

编辑:我刚刚发现 MS SysinternalsSuite 包括autologon工具,可以从 cmd(自动登录用户域密码)调用。

本站系公益性非盈利分享网址,本文来自用户投稿,不代表码文网立场,如若转载,请注明出处

(809)
在 Unity上的另一个场景中显示分数
上一篇
IOS拼贴应用程序中的矩形布局
下一篇

相关推荐

  • 使用密码的Windows7登录脚本

    我一直在尝试编写脚本批处理文件或 exe 来执行登录。它应该执行一个基本操作-只需登录我的 windows 7 pc 不在网络中。我有一个 jar 文件在后台运行。我想写一个带有密码的脚本来登录我自己的 windows 7 pc…

    2022-12-16 06:32:27
    0 96 40
  • ios系统安装windows虚拟机:在iOS上安装Windows虚拟机的步骤

    iOS系统不支持安装Windows虚拟机,所以无法提供代码。但是可以使用苹果的Mac OS X系统来安装Windows虚拟机,下面是安装步骤:…

    2023-01-15 10:00:39
    0 71 49
  • 服务器云平台:RDP到Windows服务器2016不工作的谷歌云平台

    关于服务器云平台的问题,在udp 3389中经常遇到,我的 windows 服务器 2016 没有使用 RDP 连接。它一直工作到昨天,但今天它不工作。我刚刚重新启动服务器,没有其他更改。我能够使用 Interactive Serial Console 进行连接。以下是调查结果:…

    2022-12-27 05:01:27
    0 45 74
  • Dmp o:读取 windows*.dmp文件

    关于Dmp o的问题,在how to open dmp file windows 10中经常遇到,我想知道是否有任何知道如何在应用程序崩溃后打开一个 windows *.dmp 文件写 C / C ++。…

    2022-12-12 11:29:29
    0 43 29
  • Win10装哪个欧姆龙编程软件:以编程方式更改 win10幻灯片设置(windows 10 slideshow settings

    关于Win10装哪个欧姆龙编程软件的问题,在windows 10 slideshow settings中经常遇到,我正在使用 Windows 10 Home Edition 和 Delphi xe8。我做了一个程序,在桌面壁纸和图标后面绘制。我已经尝试了很多 API 函数来通知幻灯片应用程序不要干扰我的程序。…

    2022-12-06 12:29:40
    0 47 44

发表评论

登录 后才能评论

评论列表(42条)