远程更改 VNC 密码 - 各种版本(Windows)

远程更改 VNC 密码 - 各种版本(Windows)

还有一些其他帖子(例如远程设置VNC服务密码) 但都局限于某一特定的 VNC 软件/版本。

我的情况是,我在 Windows 域中拥有大约 500 台 PC,并且它们安装了多个 VNC 版本 - RealVNC4、UltraVNC、TightVNC 以及每个不同的版本。

因此,有些使用 ini 文件(例如最新版本的 UltraVNC),有些使用注册表,并且它们使用注册表的不同部分。

有谁知道可以尝试所有选项并设置密码的脚本/工具吗?

答案1

不存在这样的工具。

在您尝试自己编写脚本来做一些非常愚蠢的事情(例如在 500 个 VNC 服务器上尝试一堆不同的凭据并报告结果)之前,唯一不会非常痛苦或涉及大量手动工作的解决方案如下。

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

这比尝试处理多个 VNC 服务器供应商的多种配置要好得多,甚至应该比你现在的情况更容易管理,我甚至不会尝试处理现在的情况。你肯定会处于一种从头开始构建比修复容易得多的情况。

答案2

为了记录,下面是我用来在所有计算机上禁用 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。

相关内容