首页 > 代码库 > “电脑管控”的罪恶

“电脑管控”的罪恶

      PS:这是我从业IT这么多年来第一次见到这么拙略可笑的管理方式。

      正常情况下,客户机到了一定的数量规模,都会启用域控来管理。我所经历过的几家公司里除了TK(研发部除外),基本上都有启用域控。域控的好处不言而喻,最重要的是他可以在控制台中心集中管理,网络方式推送策略更新管控,可控高效。而我们公司对电脑的管理并不是用域控,而是离线式的“批处理”文件来对本机注册表、组策略等做修改,使得用户即便是用本机Administrator的用户登录,也一样没有很多的权限,比如部分软件不可安装,部分软件不可使用,注册表和组策略被禁用,甚至连电脑属性都给隐藏掉了。

      批处理首先关闭正在运行的所有用户进程,例如下面代码之一:      

  1 taskkill /im 160WiFi.exe /f /t

      接下来对硬盘里的一些要处理的目录赋予可读写的权限,然后对这些目录直接粗暴RMDIR,比如下面的语句之一:            

  1 echo y|cacls "C:\Program Files\植物大战僵尸柠檬版" /g everyone:f  2 attrib -r -s -h "C:\Program Files\植物大战僵尸柠檬版"  3 rd /s /q "C:\Program Files\植物大战僵尸柠檬版"  4 RMDIR /s /q "C:\Program Files\植物大战僵尸柠檬版"

      这样做的目的就是一次性简单粗暴清除掉这些目录里用户所安装的软件。正常情况下来说,软件的卸载要用专门的软件自带的卸载程序来执行,这样不仅会删除软件的文件,也会删除一些注册表等设置信息,同时也会还原系统的设置。而现在通过上面的命令来清除软件,不用说会给系统带来非常多不可预知的影响,比如拖慢系统速度,造成非常多的垃圾等。

      删除这些目录之后,再对他们进行重新创建,并且去掉任何权限,例如:            

  1 md "c:\Program Files\植物大战僵尸柠檬版"   2 attrib +r +s +h "c:\Program Files\植物大战僵尸柠檬版"  3 echo y|cacls "c:\Program Files\植物大战僵尸柠檬版" /d everyone

      对于一些预先要管理的软件和游戏,比如搜狐影音、360等都会预先创建这些软件默认的安装路径,再把权限去掉。目的当然是限制用户对这些软件的安装了。但是,用户在安装的时候只要把这些软件的默认安装目录改为其他目录,那么软件的安装就可以正常进行了。所以说这样不仅达不到管控的目的,反而会给系统带来很多垃圾目录!

      这些目录多达三四千个,想想多么可怕!

      目录创建完之后,开始修改注册表,将一些不允许用户运行的软件在注册表中禁用掉,这样的话用户一旦运行这些软件就会提示管理员禁用。对于一些特别重要且一定要严防死守的软件,采用了哈希值绑定的方式禁用。例如下面的代码:      

  1 >>"%Temp%.\DefOpen.reg" ECHO [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\DisallowRun]  2 >>"%Temp%.\DefOpen.reg" ECHO "k1"="softmain.exe"  3 >>"%Temp%.\DefOpen.reg" ECHO "k2"="shoujizhushou.exe"  4 >>"%Temp%.\DefOpen.reg" ECHO "k3"="QQPCMgr.exe"  5 >>"%Temp%.\DefOpen.reg" ECHO "k4"="QQPCSoftMgr.exe"  6 >>"%Temp%.\DefOpen.reg" ECHO "k5"="360Safe.exe"

      通过在DisallowRun键值里创建对应软件的名称来达到禁运行的目的。聪明的人一看就能够知道,其实把软件修改一下名字,哪怕是在后面加一个数字1,都可以绕过它来运行。所以这样的设定基本上意义不大!

      之后前IT管理者还自作聪明得在注册表里限制住了,凡是在D盘里的exe程序都不允许运行,如下代码:      

  1 >>"%Temp%.\DefOpen.reg" ECHO [HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\safer\codeidentifiers\0\Paths\{f6dce391-8bc6-42db-9866-e30b59c7e45c}]  2 >>"%Temp%.\DefOpen.reg" ECHO "LastModified"=hex(b):4d,b7,9a,bb,ae,5b,cf,01  3 >>"%Temp%.\DefOpen.reg" ECHO "Description"=""  4 >>"%Temp%.\DefOpen.reg" ECHO "SaferFlags"=dword:00000000  5 >>"%Temp%.\DefOpen.reg" ECHO "ItemData"="D:\\"

      不过像我这种习惯于在桌面上临时放需要运行的软件来说,这根本就不值一提。如果用户在电脑使用中发现了这个窍门,也一样可以轻松绕过这个设定,只要把软件拷到C盘或者桌面上就可以了。

      值得一提的是,该“电脑管控”批处理还有一点代码,在注册表里限制组策略的权限:      

  1 >>"%Temp%.\DefOpen.reg" ECHO [HKEY_CURRENT_USER\Software\Policies\Microsoft\MMC]  2 >>"%Temp%.\DefOpen.reg" ECHO "RestrictToPermittedSnapins"=dword:00000001  3 >>"%Temp%.\DefOpen.reg" ECHO "RestrictAuthorMode"=dword:00000001  4 >>"%Temp%.\DefOpen.reg" ECHO [HKEY_CURRENT_USER\Software\Policies\Microsoft\MMC\{58221C67-EA27-11CF-ADCF-00AA00A80033}]  5 >>"%Temp%.\DefOpen.reg" ECHO "Restrict_Run"=dword:00000001  6 >>"%Temp%.\DefOpen.reg" ECHO [HKEY_CURRENT_USER\Software\Policies\Microsoft\MMC\{8FC0B734-A0E1-11D1-A7D3-0000F87571E3}]  7 >>"%Temp%.\DefOpen.reg" ECHO "Restrict_Run"=dword:00000001

      用户一旦运行组策略,就会提示管理员禁用。

      最后一步,就是在注册表里限制用户对注册表的编辑:      

  1 >>"%Temp%.\DefOpen.reg" ECHO [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System]  2 >>"%Temp%.\DefOpen.reg" ECHO "DisableRegistryTools"=dword:00000002  3 >>"%Temp%.\DefOpen.reg" ECHO.

      

      OK,以上便是公司对终端电脑的管理方式了。

      这样的管理有几点弊病:

      1、无法做到实时更新。

       IT根本没有那么多的精力去统计和列出需要管控的软件和游戏。这世界上软件和游戏千千万,这样批处理一条一条去限制根本就不可能。更别提这批处理无法在云端通过网络批量更新客户机。IT只能把这批处理拷到需要更新管控的电脑里去执行。但公司里电脑1500台,怎么去执行?所以现在的方式根本就不可靠和不现实。

      2、对系统造成不可预知的影响

       这样管控的目的是会造成很多垃圾数据和目录,会严重拖慢系统。擅自修改注册表,擅自删除一些键值,会给系统造成不可预知的错误和不稳定性。

      3、无法做到分部门管控

       不同的部门需要有不同的管控方式,而不是一股脑子就执行这个批处理,该管的不管,不该管的一大堆。这是“懒政惰政”的表现。

      4、Windows版本差异

       不同的Windows版本,注册表和组策略的管理方式也是不同的,现在的批处理就算适合Win7和Win8管理,也不适合Win10的管理方式(已经有证明无法在Win10上面执行成功)。如果要针对每个系统来创建一个批处理,只会给IT增加不必要的负担和工作量。

      5、对用户的影响

       如果确实因为工作需要而要使用一些软件,或者要修改注册表和组策略等内容的,网管就痛苦了。根本没办法完全剥离掉这些电脑设定,很大程度上他们只能依赖于系统重装,苦不堪言。

 

      虽然有以上这几个大问题,可是公司为何不取缔呢?原因很简单,他们没见识过更科学高效可控的管理方式,就以为现在的方式是很好的。而前IT管理者也以此为豪,认为自己会写一点批处理代码或者从网上找到一点批处理代码,就觉得自己做了一件非常了不起的事情。殊不知IT行业有这么一句话:一流人员做管理架构、二流人员做需求、三流人员写代码。管理方式没有做对,需求没有明确,代码写再多也是垃圾。现在只能期望域控的管理赶紧推行起来了。

      路,还很长!

“电脑管控”的罪恶