我需要模拟特定 Windows 服务的 LogOn 用户帐户。
我已经能够使用 WMI 获取用户名(遗憾的是,LogOn 用户身份似乎没有使用任何与 Windows 服务相关的常规 .NET 类公开)。但是,只有用户名(可以是本地帐户或域帐户)我如何获取该 Windows 身份的令牌?
可以提供令牌的 LogonUser WinAPI 调用需要密码作为参数,这显然是不可用的。用户输入不是一种选择。
任何见解将不胜感激。
我需要模拟特定 Windows 服务的 LogOn 用户帐户。
我已经能够使用 WMI 获取用户名(遗憾的是,LogOn 用户身份似乎没有使用任何与 Windows 服务相关的常规 .NET 类公开)。但是,只有用户名(可以是本地帐户或域帐户)我如何获取该 Windows 身份的令牌?
可以提供令牌的 LogonUser WinAPI 调用需要密码作为参数,这显然是不可用的。用户输入不是一种选择。
任何见解将不胜感激。
最终做了以下事情:
希望这对需要模拟运行服务的用户帐户的其他人有用。
尽管 Microsoft 完全没有记录这一点,因为他们想假装服务登录在登录时不需要明文密码,但实际上确实需要,并且 services.exe 使用正确的密码调用 LogonUser。
密码被塞到注册表深处的某个地方,只有 SYSTEM 可以访问并加密以启动,但 SYSTEM 帐户可以获得机器密钥并解密密码。
http://www.computersecurityarticles.info/security/decrypting-lsa-secrets/
请注意,因为这是无证的,你不应该使用它。