如何查找用户登录的计算机名称

如何查找用户登录的计算机名称

是否有工具、脚本或其他方式可以知道特定用户当前登录到的计算机名称?或者曾经登录过?

假设用户“HRDrone”正在其主机名是“HRStation01”的机器上工作。

我坐在系统管理员的办公桌前,只知道用户名是“HRDrone”。有什么方法可以让我不用询问用户就能知道他是否登录了“HRStation01”?AD 事件查看器?什么方法?

谢谢!

答案1

有一个很棒的 Sysinternals 实用程序可以为你做到这一点 -登入

答案2

我经常使用的一个廉价技巧是查看“计算机管理”控制台中“共享文件夹”下列出的“会话”,该控制台针对的是文件服务器计算机,我知道主题用户将拥有“映射”的“驱动器”。

答案3

将这些作为用户登录脚本放入bat文件中,运行它,你会看到乐趣

mkdir %username% 
pushd %username% 
net config workstation > %computername%.txt

或者如果您需要详细信息

mkdir %username% 
pushd %username% 
@echo off
echo
echo I am logged on as %UserName%. >> %username%\%computername%.txt
echo My computer's name is %ComputerName%. >> %computername%.txt
echo %Date% >> %computername%.txt
echo %Time% >> %computername%.txt
echo My IP settings are >> %computername%.txt
ipconfig | find "." | find /i /v "suffix" >> %computername%.txt
getmac >> %computername%.txt
echo\

如果你需要的话,你可以联系我获取更多脚本,这对我也是一个很好的学习

答案4

我必须解决这个问题才能在整个公司范围内提供远程支持。事实证明,PsLoggedOn 之类的工具以及用于扫描域控制器安全日志的工具对于我的目的(获取主机名以对用户进行远程支持)来说太慢了。以下是我想出的办法:

  • 所有用户都有一个映射到 X: 的驱动器,位于 AD 中的配置文件 - 主文件夹下
  • 每个人都在配置文件 - 登录脚本下分配了以下脚本

该脚本将他们登录的计算机记录在他们的主文件夹中。它特别不记录他们登录我们的终端服务器,因为我不关心这样的条目。

'===============================================================
' Record the logon in their X: drive UNLESS they are on TERM-SERVER!
'===============================================================
If strComputerName <> "TERM-SRVER" Then
    strFile = "X:\login.txt"
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    Set objTextFile = objFSO.OpenTextFile(strFile, 8, True)
    objTextFile.WriteLine(strIP + " - " + strComputerName + " - " + CStr(Date) + " " +     CStr(Time))
    objTextFile.Close
    ' Make it hidden
    Set objTextFile = objFSO.GetFile(strFile)
    objTextFile.Attributes = 2
End If

然后我在本地机器上使用一些 VBscript 自动在 AD 中找到他们的主目录,打开日志文件,并打印出最后几行。

相关内容