操作系统

远程桌面报错解决:No Remote Desktop License Servers Available

用户发来反馈,使用部门Windows跳板机报错:The remote session was disconnected because there are no Remote Desktop License Servers available to provide a license.Please contact the server administrator,最后发现是微软RDP远程桌面套件的一个BUG,可通过安装微软补丁或修改注册表来解决,本文简单记录分享下解决过程...
阅读全文
脚本编程

Windows下bat批处理脚本使用telnet批量检测远程端口小记

多年没写过批处理了,来新公司的第一个case却是需要写一个bat脚本,批量更新采集agent的配置文件,其中就涉及到远程IP的端口检测。 本以为会和Linux一样可以简单判断: 结果发现Windows下面telnet退出并没有执行结果的返回值: 一、借助工具 于是我优先开启懒人法则,找其他替代工具。果然,在Windows老娘家找到了: Portqry:https://support.microsoft.com/en-us/kb/310099/zh-cn 确实可以使用,不过检测速度不敢恭维,通与不通都很慢!鉴于手头没有更好的解决办法,就先试试看,贴一下我写的Portqry相关demo: Ps:check是一个被call调用的模块,里面的一些变量就不做介绍了。 于是兴冲冲的封装成exe,给IDC(server2003系统)执行,结果第一台就悲剧了!远程桌面直接断开了: 然后再也连不上了,要他们去机房看了下,结果告诉我系统没了!!??太震精了有木有?一个简单的文本操作脚本,居然把系统干掉了么?而且脚本中都不存在任何删除命令。。。 要那边提供了一下启动错误信息,原来是系统引导坏了: 个人分析了一下,应该是Portqry这个工具导致系统蓝屏关机,进而导致引导损坏! 尼玛,娘家人介绍时说好的“性格”良好呢? 唉,看来这个工具是不敢使用了,俗话说林子大了什么系统都有嘞! 二、另辟蹊径 既然工具不敢用了,还是继续折腾代码吧!周末睡觉前突然灵感一闪,想起了tasklist判断窗口名称这个“失传绝技”,于是把刚关闭的本子又打开,终于在GF的不断抱怨之下搞定了这个问题。 ①、窗口判断 思路比较简单:使用start命令在新窗口执行telnet -e 和 exit命令,如果端口畅通,那么新开的窗口将会立即关闭,而不通的窗口则会保持近半分钟左右,且窗口名称类似 telnet 192.168.1.1,这半分钟时间足够脚本来判断通还是不通了。 于是将上面check部分修改如下: 样就解决了Windows下telnet探测远程端口的问题了,而且检测速度比微软哪个portqry快多了,果然思路比技术更重要,只要有想法,任何技术都不应该成为瓶颈! ②、进程判断【最新补充】 当使用窗口判断的方案下发各大机房实施的时候,又一个问题出现了!窗口判断在某些版本的Windows下是行不通的,比如英文版下的命令提示符窗口名称和中文版的就不一样,所以这个方案也是不完善的! 于是,继续抓耳挠腮,想出了第二个方案:通过判断telnet进程数量来判断网络是否畅通。 方案思路: a. 先判断脚本执行之前是否存在 telnet.exe 的进程,如果存在则统计数量 b. 和窗口判断一样,利用start命令在新的cmd命令提示符中执行 telnet 命令 c. 延迟几秒后统计系统中存在的telnet.exe进程数(存在的telnet表示是不通的) d. 和最开始统计的 telnet 进程数比对计算,就知道有几个IP是不通的了 示例代码:   很明显,这样就可以知道我测试了所有IP当中有几个是不通的了。遗憾的是无法知道是哪个IP不通。不过在手头的这个case当中是不需要具体不通的IP的,只要知道通的IP是否达标就行。 好了,终于把这个问题给解决了。显然,任何时候都需要给出多个方案,而不是自满于一个方案。否则出问题就会焦头烂额了。当然,再次说明了想法比技术更重要。
阅读全文
脚本编程

bat/cmd批处理连接SqlServer数据库查询脚本

难得今天晚上9点前赶回家,而且最近草稿箱也压了不少“湿货”,就挑一篇发出来好了!不过在发文章之前先吐槽一下那个从昨天攻击张戈博客到现在还在继续的无聊蛋疼之人! 本来就算开启了云加速全缓存也是扛不住的,因为静态中混着动态请求,比如浏览计数。还好灵机一动,对这些动态做了点小手脚,现在基本毫无压力了!粗略分析一下这个攻击博客的小人,无外乎是2种人: ①、最近张戈博客流量大涨,估计遭人妒忌或者是挡人财路; ②、来张戈博客换友链被拒或被忽略的人,怀恨在心。 对于①:俗话说无人妒忌是庸才,那么无人妒忌的网站也不能算是优秀的网站。其实,你只闻到我的香水,却没看到我的汗水,你只看到了我的排名,却没看到我的用心。 建站一年多,或多或少对SEO有一些自己的见解。结合张戈博客的发展历程,我认为真正以用户体验、设身处地为用户着想的内容才是最好的“农家肥”,而不是那些短期就能看到成效的“化肥”!写文章时我会时刻想着用户是否看得懂,怎样写才能让用户更容易?总之,文章如果只是贴上你的测试过程,那这博客就真的只是印象笔记了! 所以,如果你是眼红而攻击我,那就继续吧,不把张戈博客打死你就是孬种。 对于②:怎么说呢,前面那篇文章已经说了张戈博客的友链要求,但还是有不少朋友热心的请求交换友链。可是你的网站确实还不够看,达不到我的要求,你要我怎么弄?如果都同意,那我首页不就变成导航了吗?如果是因为拒绝友链而攻击我,那么请继续,但千万别让我知道了是哪个网站,否则你懂的。。。 好了,废话说的够多的了,下面说正事。 前面也说了,我现在的新公司大部分服务器是Windows Server环境,前人都是用Python写的监控脚本,最近正好遇到了一个添加Zabbix监控项目的需求,我就琢磨着用我刚工作时拿手的bat批处理来完成这个项目。 不出意外,批处理果然可以胜任,不过要借助sqlserver命令行工具的帮助,代码如下: 使用方法: ①、验证执行:在CMD中执行【脚本.bat +  监控名】即可,比如:D:\>monitor1.bat  monitor1 ②、关联zabbix:zabbix中怎么设置我就不赘述了,注意下zabbix配置文件zabbix_command.conf如下添加: Ps:主要是注意,需要添加一个cmd /k前置,否则zabbix执行不了,也得不到数据。  最后附几个 osql.exe 命令的实用参数及相关下载地址:
阅读全文
操作系统

解决mstsc无法连接问题:由于没有远程桌面授权服务器可以提供许可证…

最近一直很忙很忙,完全没时间打理博客,回家后基本上就是洗洗睡的节奏,我之前真的从未想过,我会有回到家不想碰电脑的情况。。。不但不想碰电脑,而且失眠症也消失无遗,因为实在是太疲劳了,总算是有了些好处。 这几天实际上也有一些可以记录的工作经验,无奈一直没有头绪也没时间,刚好趁着今天午休间隔,先整理出一小部分好了,不然博客就真废了。。。 一、故障案例① 今天上午在给测试组的IIS新增https的时候,发现远程弹出如下错误: 由于没有远程桌面授权服务器可以提供许可证,远程会话被中断.请跟服务器管理员联系。 度了度,原来也是很常见的一种错误,解释如下: Windows Server 2008 R2 由于没有远程桌面授权服务器可以提供许可证,远程会话被中断。 备忘一下解决方法: ①、可以使用如下命令远程登陆: ②、要彻底解决这个问题,则需要删除远程桌面服务,图解如下: Ps:不过我打开管理员貌似没有发现远程桌面服务。。。 然后新增SSL的时候又遇到了小问题,给我提供只有Nginx下的证书(Key 和 pem),而网站是IIS服务器,那要装Nginx做方向代理也太麻烦了。 本打算去申请一个沃通的免费SSL证书的,结果发现我并没有拿到域名的控制权,只好歇菜。不过最后,我还是把这任务完成了,具体下篇文章继续分享。 以下内容补充于2015年03月28日: 二、故障案例② 解决了案例①出现的问题后,偶然又发现了新的远程桌面连接故障,如图:   错误提示内容为:发生身份验证错误。无法连接到本地安全机构... 网上看了一些类似的案例,解决方法大部分是修改被远程机器的一些设置,而我按照步骤设置了之后依然不行。最后在51CTO论坛发现了一个同样的错误提示的解决案例,照样设置之后果真可以了! 所以,在这里记录下,以方便更多遇到同样问题的人。 解决方法: 网络连接配置-->双击打开TCP/IPV4配置-->选择"高级",在WINS选项卡的下面找到NetBIOS设置,选择“禁用 TCP/IP 上的 NetBIOS”,然后确定就可以了。 简单图解: 如上设置之后,一般就能正常远程登录了,遇到同样问题了吗?赶紧试试吧!
阅读全文
资源分享

原版Windows10操作系统iso镜像、微软正版软件下载站:MSDN,我告诉你!

突然发现不知道该写什么,貌似肚里墨水已吐槽干净了。既然没啥干货分享,就分享一些好资源吧! MSDN的全称是 Microsoft Developer Network。这是微软公司面向软件开发者的一种信息服务。而我这次分享的却叫《MSDN,我告诉你!》,这个是一个收集微软各种操作系统、正版应用软件电驴下载地址的网站,在这里你可以找到任何一款微软出品的正版软件的下载地址! 网站截图: 使用方法 在左侧分支点击你要下载的软件,比如操作系统-->Windows10,然后右侧就会出现各版本的Windows 10 清单,此时你只要挑选所需版本,比如64位的简体中文零售版,点击详细信息即可: 如果和我一样是从VeryCD电驴时代过来的人来说,看了上图就知道如何下载了。下载链接是标准的ed2k下载协议链接,也就是当年熟悉的电驴专用下载地址。 比如,我现在要下载上图64位 Windows 10 简体中文零售版的ISO系统镜像,只要复制这个地址: 然后,打开迅雷,并新建任务、粘贴链接即可下载: 不过,现在是一个云的时代,当你不方便用迅雷下载到本地时,就交给云来托管吧! 比如百度云盘: 同样复制上述ed2k地址,然后打开百度网盘(网页版或客户端均可),如图依次点击离线下载→新建链接任务: 然后,粘贴ed2k链接确定即可极速下载到云盘: 而且,绝大多数资源都是秒下的,因为云端已经有人下载过了! 张戈测试发现最新的 Windows 10 的 ED2K 资源匮乏,百度网盘离线下载几乎不动!为了方便各位看官,张戈特意收集了最近最火的 Windows 10 各简体版本下载地址,欢迎使用: 包含如下版本的64位和32位简体中文ISO系统镜像: Windows 10 (Multiple Editions)  零售版(一般用户推荐下载这个就好了) Windows 10 Enterprise  企业版 Windows 10 Enterprise 2015 LTSB  LTSB分支的企业版(不会预装EDGE浏览器) Ps:LTSB表示长期服务分支,主要面向企业用户,个人用户下载零售版即可。 都做到这一步了,相信怎么弄到你自己电脑就不用罗嗦了。现在,应该知道张戈博客经常分享的微软资源是从哪来的吧?比如,想要啥系统,我就可以云缓存哪个系统,只要注意区分系统版本和语言即可: 又比如,上次分享的Office 办公软件全集: 俗话说,授人以鱼不如授人以渔,与其分享一种资源来吸引IP吊胃口,不如分享方法攒人品!如果,对你有用,请多多关注张戈博客,订阅、收藏、撸广告那也是可以有的哈! 资源格式: 从这个网站下载的文件都是iso镜像,也就是可以刻录光盘的一种格式。所以,安装方法也不是单一的,你可以刻录到光盘或U盘进行安装,你也可以用新版的winrar解压到本地执行setup.exe安装,如果是原版系统的话,你还可以使用Windows安装器到PE下进行安装。至于具体操作,就不是本文所需要介绍的了,自行百度吧,即学即会! 最后,说一下MSDN,我告诉你的网址:http://www.itellyou.cn/ 其实,直接百度搜索MSDN,第一个就是!证明这个网站还是非常热门的,需求性非常高!你不知道,只能说明你在系统安装、MSDN资源这方面的接触面还是太薄弱了。。。 特别说明: 这个网站只是一个微软各类软件下载地址的收集统计。所以,从这里下载的软件和从微软官网下载的原版是一模一样的,这也是这个网站可以长久存在的根本原因!
阅读全文
LVS中Windows作为真实主机(RealServer)时的设置方法 操作系统

LVS中Windows作为真实主机(RealServer)时的设置方法

最近,公司新推了一个电商项目,IIS+ASP。而上面大大规划了要用LVS负载均衡集群,在这个技术陈旧的企业,LVS项目还是去年才真正推行。由于最开始是由我测试的,所以这次的部署又落到了我头上了。 之前一直是在RHEL上做的LVS+Keepalived,现在换成Windows主机,虽然在集群架构上的理解没啥问题,但是这Win主机做RealServer具体该如何设置还真没弄过。不过,万能的搜索引擎很快就帮我解决了,现在记录下,以便查询翻阅! 一、在Win主机上新增环回虚拟网卡(Microsoft Loopback Adapter) 以管理员身份运行cmd后,在cmd命令窗口中执行:hdwwiz,弹出如下界面:   下一步后,勾选手动选择:     点选网络适配器,继续下一步:     左侧选择Microsoft,右侧找到如图硬件(Windows Server 2008/7中则叫:Microsoft Loopback Adapter) 点击下一步开始安装,直至完成,则成功添加了环回虚拟网卡。 成功安装该适配器后,与其他任何适配器一样,您可以手动配置其选项。如果 TCP/IP 属性配置为使用 DHCP,则该适配器最终将使用一个 autonet 地址 (169.254.x.x/16),因为该适配器并没有与任何物理媒体实际相连接。注意:默认情况下,TCP/IP 属性配置为使用 DHCP。 二、设置环回网卡TCP/IP信息 打开Windows 7/8/Server 2008的网络和共享中心,左侧点开“更改适配器设置”,找到新增的环回连接,重命名为realserver(推荐重命名)。 右键realserver连接属性,开始设置TCP/IP: 和Linux中的lo:0一个样,将IP地址设置为VIP,将掩码设置为255.255.255.255,其余留空即可。 Ps:看网上教程,都有提到如下问题,(虽然这些老家伙基本都不用了,但还是记录下吧): 子网掩码255.255.255.255但在MS NT/2K/XP会被认为是无效的。 可以有以下解决方法: 在MS NT/2K/XP中,网络界面(interfaces)在 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Tcpip\Parameters\Interfaces 找到适当的网络连接IP地址,修改subnetMask子网掩码,(注意修改方式)不需要重启,只需重新激活该网络连接即可。   三、修改客户端网卡接口、环回接口连接模式 将以下代码保存为bat执行,或直接在CMD中依次执行2~5行命令即可(双引号中需根据实际连线名称修改) 上面的四条命令一定要输入,因为windows 2008的默认中,网卡的stronghost处于启用状态,这个设置可以防止跨接口转发数据包,这就表明:来自一个网络适配器的请求不会被环回适配器处理,因为这个请求来自于不同的网络适配器。为了将环回适配器从stronghost切换为weakhost,需要运行以上四条命令,要不然TCP的状态会一直处于SYN_RECV 状态。 哦了,做完以上步骤之后,就可以启动keepalived测试效果了!关于LVS+keepalived的其他问题可以参考张戈博客的老文章:LVS+Keepalived负载均衡主备&双主架构全攻略,有任何其他问题也可以给我留言。
阅读全文