说到远程控制,除了一些需要在家办公以及影视制作人员之外,最大的需求者应该就是系统运维人员,毕竟小到公司的一台电脑主机,大到集团公司的服务器集群,都需要集中有序的管理。而如果只是通过远程桌面这种 GUI 界面操作,效率慢不说,还需要较大带宽的支持远程传输被控机的画面,这对于系统运维人员而言,实在是太不方便了。
显然,任何一个成熟的系统运维人员都会熟谙各种脚本和批处理操作,通过自动化的手段来进行了批量处理,完成小到公司电脑的管理控制,大到公司的服务器集群的管理,所以使用命令行进行远程操作是真正意义上的刚需,此前我曾经使用向日葵对一台主机进行了远程桌面操作,因为是对图形化系统桌面进行操作,因此操作过程中常常会遇到桌面操作的高延迟,从效率来说可谓是极差,其实向日葵也完全可以使用 cmd 这种命令行交互的方式,对于一些操作而言使用终端操作会显得更为方便一些。
如何使用终端管理公司的一台联外网的计算机?
生产环境中往往会遇到一些实际的情况,员工的办公电脑需要进行定期的维护,网络管理人员需要对设备进行检查:是否安装了最新的系统补丁、员工是否安装了娱乐视频类的软件以及系统的运行情况,如果像以往那样使用远程桌面进行控制,不仅需要大量的带宽支撑,也会对员工平时办公产生影响,如果有大量的办公电脑都需要进行管理呢?显然每一台都使用远程桌面非常不现实,最快的方式依旧是通过 cmd 终端远程管理,当然这对于运维人员的技术要求也更高一些。
和传统的远程桌面类似,同样被控端以及控制端都要安装对应的向日葵客户端,打开控制端选择「CMD」就可以打开远程的 CMD 终端。默认向日葵的 cmd 终端是以非管理员身份打开的,当然从操作上来看其实也没差,毕竟目前绝大多数的软件也无需提权就可以正常运行,放在现代的企业,基本上办公电脑都是 Windows 7 以上,也没有以往 Windows XP 的各种疑难杂症。为了方便使用,我首先在 CMD 中输入 Powershell
,将终端切换至更为强大的 Powershell:
用 Powershell 远程管理客户机进程
此前,公司的员工常常反应称公司电脑卡顿,那么我先看一下有多少进程,进程检查使用的是 tasklist
。
输入完成之后会立刻返回目前当前被控主机的进程,部分国产软件吃资源厉害,还有各种影视客户端,为了便于公司管理,我可以通过对应的 名称以及 PID 名称,然后杀掉进程,这里我通过 PID 杀掉,例如 notepad ++ 这个PID 为 11936 ,杀掉该进程的命令为 taskkill /F /PID 11936
。
这样可以在后台杀掉对应的进程,对付那些常驻后台的程序非常管用
使用 Powershell 复制拷贝文件
有时候我们需要对文件内容进行移动/复制删除工作,例如我们需要批量对一批电脑进行初始操作,需要在其个人文档中拷贝个人办公用软件按照包等,这种操作每一台远程操作非常不现实,最为方便的做法就是通过终端命令,几条命令快捷高效:
同样在 powershell 中,我需要将 Z 盘中的 a 文件夹中所有文件统一拷贝到 D 盘的 b 文件夹中,使用命令 Copy-Item cmdlet
,具体是 Copy-Item z:/a/* d:/b
。
具体更多的命令操作,例如批量重命名乃至衍生的脚本执行这里就不过多衍生说了,做运维的相信大家都非常清楚了。
使用 Powershell 查看系统更新
其实在很多企业没那么麻烦,如果你是一个专业运维,公司电脑网络中建立域网络几乎可以无需登录客户机就可以实现,当然对于一个小微企业而言,直接使用远程终端管理可以在一定程度上做到类似域网络的效果,例如我现在查看这台客户机的软件更新情况,使用远程 cmd / powershell 可以轻松做到,只需要输入 wmic qfe list
。
这样就会列出所有的更新和安全更新,因为这台客户机是最新的 Windows 10 1809,因此只有一个更新和两个之后的安全更新。
当然如果管理的设备系统较老(Windows 7 等),你可以还需要看看对应的修补程序 KB 以及关联描述等,可以试试这个方便查看更多安全信息 get-wmiobject -class win32_quickfixengineering
。
使用 Powershell 读取系统日志
客户机出现启动故障或者其他问题,有时候查看设备是何时启动或者关闭的,乃至系统宕机的原因,最为直接的方式就是读取系统日志,同样远程 cmd 也可以做到,同样是通过 Powershell 下的 Get-EventLog 实现,命令如下 Get-EventLog -LogName System
。
只不过这样执行下去实在是窗口滚动完全停不下来,那么就加入约束条件,例如是2018年10月27日的日志,只显示错误,那么就使用这条命令 Get-EventLog -LogName System -EntryType Error -After 2018-10-28
。
这样就可以方便我们定位电脑出问题的时间和原因,并对电脑进行进一步的故障排除了。
如何对一台没有外网连接的电脑 / 服务器进行远程维护?
很多公司的 PC /服务器设备中或多或少都会有一台设备选择只有内网连接,其实原因无外乎就是从安全的角度考虑,但这也给远程运维带来麻烦,毕竟公司的业务服务器需要 7×24 小时运行 ,但运维人员却不可能随时出现在公司的机房,那么有没有合适的方式可以解决这个问题呢?
很多企业的做法是采用跳板或者堡垒机的形式进行控制,也就是说,在公司内网中使用一台计算机作为跳板与该服务器链接,运维或者工程人员在跳板机上对服务器进行操作,然而这种「远程控制」依旧有不少的局限性,一方面如果想要真正在家进行远程操作,需要选择先远程到跳板机然后再操作服务器,想想都觉得过程的繁琐,而且只要跳板机无法连接外网或者出现故障,那么就无法操作服务器。而另一方面则是资源的浪费,为了运维服务器却必须一直开跳板机,有没有更为简易或者灵活的解决方案呢?
向日葵控控可以看作是一个简易又不失专业的「跳板机」,简单来说,我们可以通过外网(Wi-Fi 或者有线网络等)连接控控,而控控则通过 USB 连接的形式对被控主机进行控制,从而做到「无外网连接」的远程主机控制。这样既保证了重要数据不暴露在外网,又可以方便运维人员进行管理。
控控的安装并不复杂,可以将其看作是另一种形式的「机顶盒」设备,首先通过 USB 数据线,将控控和被控设备连接起来,考虑到还需要进行桌面控制传输画面,因此还需要通过 HDMI 线将控控接入到被控机的 HDMI 输出口中,至于控控的外网连接方式,考虑到内网安全的缘故,我在我的生产环境中选择了 Wi-Fi 连接,全部连接好之后控控接电准备等待绑定。
由于在我的生产环境中,公司的无线网络区域为设置为单独的子网,采用这种物理分割子网的方式来做到一定的信息安全性(例如员工的手机平板将无法访问公司的内网文件服务器),而挂载控控之后直接选择让控控使用公司布置的 Wi-Fi 链接,可以避免占用公司的交换机端口,另一方面做到服务器的灵活放置。
和绑定向日葵被控机类似,我们依旧需要将控控绑定到你的向日葵账户中,打开向日葵控制端,点击右上角的 + 绑定控控,之后选择链接控控的 Wi-Fi,绑定并选择控控上外网的无线并设定链密码完成绑定。
其实以上步骤就不难看出,其实这一步骤就是为了将控控链接到外网,方便向日葵的控制端对其进行操作。
全部完成之后,你就可以看到控制端设备列表中多了一个新的控控设备。不过控制端中的选项则有所不同,多出了 SSH 选项,这个选项其实就是为了方便部分生产环境中需要控制内网中 Linux 服务器,而控控作为一个超级精简的「迷你终端机」,来建立 SSH 隧道并实现内网服务器的「远程运维」。
当然在实际生产环境中,如果你连接的控制机是一台 Windows 设备,那么在配置或者说安装控控的时候,牵涉到 GUI 的画面传输就必须连接 HDMI 用来传输画面(无论是看桌面还是远程控制),对于一些较早期的硬件服务器,由于没有 HDMI 接口而仅配备了 VGA 接口,也可以通过 HDMI 转 VGA 线(控控套餐中可选该配件)来进行 GUI 画面的传输。当然如果你运维 Linux 服务器很在行,习惯于通过内置的 SSH 工具进行运维,那么就无需连接视频相关接口啦,这部分完全取决于各个生产环境的需要,运维人员灵活选择搭配即可。
结语:用简单的方式运维
不同的企业在进行企业网络运维时,或多或少都会存在各种形式的限制,而运维人员更多的是希望通过方便快捷的方式完全远程运维工作,在这一点上向日葵提供的解决方案可以说满足了一部分运维人员的需要,毕竟有时候 CMD / Bash 命令行交互在效率上要更高一些。
而从内网运维的角度出发,控控提供了更贴合实际的解决方案,一方面巧妙的避免涉密设备连接外网可能引发的安全问题,另一方面则通过硬件配件的形式,做到通过外网的远程控制,解决了很多生产上可能遇到的问题。如果你恰好在企业中进行运维工作,控控倒是你可以考虑的对象之一。