Windows 用户名和密码

4
这个问题背后的故事是,我有一个应用程序在许多客户端计算机上运行。要求最终用户在收到新的在线更新通知时关闭应用程序。所有客户都使用相同的SQL服务器数据库。
当需要更新服务器应用程序(也安装了SQL Server)时,需要对网络中所有计算机进行更新。我已经开始向所有用户发送消息,如MsgBox("您必须关闭我们软件的所有其他计算机")
我想问服务器操作员是否希望关闭所有其他计算机上的应用程序。
我已经成功地使用命令提示符和通过网络上的用户发送消息来做到这一点。然而,在这种情况下,我知道计算机的用户名密码
我想能够访问远程计算机运行我的应用程序,以关闭我的应用程序(或任何其他进程)。
我想知道是否可以使用VB.net或其他一些工具来登录服务器并获取连接到我的服务器计算机的所有计算机的所有用户名和密码?
如果不可能,则我想知道使用命令提示符向运行我的应用程序的网络上的所有计算机发送消息的方法。类似于MSG NET
我已经尝试了互联网上找到的各种方法,但没有成功。
如果您需要更多信息或希望我更清楚地表达请求,请告诉我。
2个回答

1
如果您不知道用户名,可以使用msg * /SERVER:servername“message”命令向连接到服务器的所有计算机发送消息。
您还可以使用/v开关查看msg命令执行的特定任务。
请注意:msg命令旨在用作终端服务器用户之间的消息传递系统,而不一定是在两台Windows 7计算机之间。
这将向所有具有服务器会话的用户发送消息。
MSG {username | sessionname | sessionid | @filename | *}
    [/SERVER:servername] [/TIME:seconds] [/V] [/W] [message]

  username            Identifies the specified username.
  sessionname         The name of the session.
  sessionid           The ID of the session.
  @filename           Identifies a file containing a list of usernames,
                      sessionnames, and sessionids to send the message to.
  *                   Send message to all sessions on specified server.
  /SERVER:servername  server to contact (default is current).
  /TIME:seconds       Time delay to wait for receiver to acknowledge msg.
  /V                  Display information about actions being performed.
  /W                  Wait for response from user, useful with /V.
  message             Message to send.  If none specified, prompts for it
                      or reads from stdin.`

您也可以使用Net session或net sess来运行net session。 使用net session查看服务器上用户的计算机名称和用户名,查看用户是否打开文件以及查看每个用户的会话空闲时间。 备注: 您也可以使用net sessions或net sess来运行net session。 使用net session查看服务器上用户的计算机名称和用户名,查看用户是否打开文件以及查看每个用户的会话空闲时间。
The information appears in a format similar to the following:
Computer      User name        Client type  Opens   Idle time
------------------------------------------------------------------------
\\BASSETT     CHRISDR          Windows 2000   1     00:00:13
\\SHARONCA    Administrator    DOS LM 2.1     0     01:05:13

要显示一个用户的会话,请使用命令中的ComputerName。有关单个用户的信息包括用户连接的共享资源列表。 当客户端上的用户成功联系服务器时,会记录一个会话。当两台计算机在同一网络上,并且用户具有服务器接受的用户名和密码时,才会发生成功的会话。 在客户端,用户必须与服务器建立会话才能使用服务器的资源,并且只有当客户端上的用户连接到资源时,才会建立会话。客户端和服务器只有一个会话,但它们可以有多个入口点或连接到资源。 要设置会话在空闲一段时间后自动断开连接的时间,请使用net config server /autodisconnect来设置自动断开功能。有关net config server的更多信息,请参阅相关主题。自动断开对用户透明,因为当用户再次访问资源时,会话会自动重新连接。 要结束与服务器的会话,请使用net session \ComputerName /delete。

看起来你在这方面有经验。如果你有几分钟的空闲时间,我们可以聊一下吗? - Hoh
我现在不是很空闲。之后可能可以吗? - SoftwareCarpenter
当然可以。谢谢。 - Hoh

0

你可以在电脑上使用MSG.exe,按照此链接使用CMD发送网络消息

Edit

如果你遇到了“访问被拒绝”或“获取会话名称错误5”的问题,请按照以下步骤操作:

  1. 打开注册表编辑器(regedit.exe)。

  2. 在左侧面板中,找到并单击以下注册表键:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server

  3. 在右侧面板中,找到AllowRemoteRPC键,并确保该键的值为1。如果该值不为1,请将其更改为1。

  4. 关闭注册表编辑器并重新启动计算机。

希望这可以帮助你。


这在Win7/Win8上无法工作,我真的不知道为什么,我已经设置了所有的注册表和凭据,但仍然无法工作。我能够向自己的计算机发送消息,但不能发送到网络中的其他计算机。 - Hoh
错误1825、1722和5(我不记得这些错误具体是什么)。顺便说一下,我刚刚尝试了一台电脑,MSG可以工作,但我不知道我做了什么与之前我尝试的1500次不同。 - Hoh
我修改了我的答案,我尝试了从Windows 8到Windows XP和反过来的操作,它可以工作,希望能帮到你。 - Al-3sli
我已经尝试过了,而且我还添加了要发送消息的计算机的Windows凭据。我想我已经找到了我的错误所在。无论如何,要添加新的Windows凭据,我必须知道用户名和密码。 - Hoh
好的,尝试这个方法:在您想要发送消息的主机上:-打开文件共享到目标并保存用户名和密码,勾选记住选项,然后尝试发送即可。 - Al-3sli
你能在你的回答中“逐步”写出来吗? - Hoh

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接