如何阻止Windows因多会话同时访问剪贴板而关闭会话?
这个问题确实挺闹心的——多会话远程访问时的剪贴板冲突我也碰见过,尤其是像NoMachine这种需要双屏分开展示的场景。既然官方已经明确是Windows剪贴板访问触发的异常,咱们可以试试下面几个可行的临时解决办法:
隔离各会话的剪贴板实例:
NoMachine藏了一些剪贴板相关的配置项,你可以尝试修改会话配置来让每个远程会话用独立的剪贴板缓存。找到NoMachine的配置目录(通常是C:\Program Files (x86)\NoMachine\etc,或者用户个人目录下的.nx文件夹),打开对应的会话配置文件,添加或修改参数:ClipboardDisableIntegration 1这个设置会让每个会话和系统剪贴板断开直接关联,避免冲突。代价是跨会话的复制粘贴没法直接用了,你可以先把内容粘贴到本地的文本编辑器(比如记事本),再转到另一个会话复制。
用第三方剪贴板管理器接管系统剪贴板:
试试安装Ditto、ClipboardFusion这类第三方剪贴板工具,它们会接管Windows原生的剪贴板功能,把复制的内容存在自己的独立缓存里。这样两个NoMachine会话访问剪贴板时,其实是和第三方工具交互,不会直接触发Windows的访问异常。记得要在远程主机上安装这个工具,并且确保NoMachine的剪贴板设置允许和第三方程序交互。调整NoMachine会话进程的权限:
打开任务管理器,找到NoMachine的会话进程(一般是nxnode.exe或者类似的进程),右键选择「转到详细信息」,再右键对应进程选择「属性」,切换到「安全」标签页,给当前登录用户添加「完全控制」权限。这个操作可以尝试让进程不会因为剪贴板访问冲突被系统强制终止,不过效果可能因Windows版本而异。临时绕过的小技巧:
如果上面的方法都没生效,你可以试试这个应急办法:在一个会话复制内容后,先粘贴到本地的记事本/文本编辑器里,再从本地复制这个内容,切换到另一个会话粘贴。相当于把内容通过本地做中转,避免两个远程会话直接同时访问系统剪贴板。
需要说明的是,这些都是临时的解决办法,毕竟官方目前还没有推出根治这个问题的补丁,你可能需要根据自己的实际使用场景测试哪个方法最适合。
备注:内容来源于stack exchange,提问作者Dave

