远程更改VNC密码 – 所有版本(Windows)

还有一些其他的post(例如, 远程设置VNC服务密码 ),但是它们仅限于一个特定的VNC软件/版本。

我有一个情况,在Windows域上有大约500台电脑,而且他们使用VNC版本 – RealVNC4,UltraVNC,TightVNC和不同版本。

所以有些人使用ini文件(如最新版本的UltraVNC),有些使用registry,他们使用不同的registry部分。

任何人都知道脚本/工具,只会尝试所有选项,并设置密码?

没有这样的工具存在。

而在你跑出去之前,你要自己写一个脚本去做一些非常愚蠢的事情(比如在500个VNC服务器上尝试一系列不同的凭据,然后报告结果),唯一的解决scheme就是不会让人觉得很痛苦或者涉及一堆手工工作。

  1. 编写脚本/ GPO以卸载环境中的所有VNC服务器。
    • 我对这些VNC服务器的经验告诉我,你可以检查registry键来获取特定的应用程序和版本,然后使用它来调用(正确的)卸载程序。
  2. 确定您所需的标准VNC服务器部署。
    • 包括你希望这些服务器拥有的凭证,当然。
    • 根据您决定推出哪个VNC服务器,将服务器与安装程序一起安装可能更容易,然后将包含设置和凭据的.ini文件复制到所有客户端(通过GPP)。
  3. 编写一个GPO,将VNC服务器安装到所有客户端。
    • 可能最好用计算机启动脚本。
    • 在调用安装程序之前,再次使用registry项来检查它是否已安装。
  4. 根据需要更新新版本的脚本。

这将比尝试与多个VNC服务器供应商处理多种configuration要好得多,而且相比之下,我甚至不会去处理这个问题。 你绝对是在一个从零开始构build而不是修复的情况下。

为了logging,下面是我用来在所有计算机上禁用VNC的脚本(运行域中所有计算机的脚本):

@ECHO OFF :: Find out what VNC services exists for /f "tokens=1" %%f in ('psservice \\%1 ^| egrep -i "vnc|tvnserver" ^| grep "SERVICE_NAME" ^| sed "s/SERVICE_NAME: //"') do ( echo %%f psservice \\%1 stop %%f psservice \\%1 setconfig %%f disabled ) 

这需要Sysinternals和UnixTools。