分类 微软 下的文章

最近发现WSUS虚拟机的硬盘满了,由于是多年前用Windows Server 2012做的,正好重新做一个Windows Server 2019的WSUS,免得每次清理数据都很慢,还时不时把WSUS服务给清理挂掉。
新安好Windows Server 2019,一路下一步装好WSUS服务,经过漫长的等待,在更新了16235个补丁之后,终于可以使用了。
不过好景不长,每天频繁出现WSUS控制台连接不上,错误提示是连接错误,只能点击重置服务器节点,开始以为负载高,重启就好了,后台发现不定期就不好用,重启也重启不过来,也没啥特点,就是一堆错误日志。在应用程序日志可以看到以下日志信息:

错误日志1:来源Windows Server Update Services 事件ID 7053

WSUS 管理控制台遇到意外错误。这可能是暂时错误;请尝试重新启动该管理控制台。如果此错误仍然存在,

请尝试通过删除 %appdata%\Microsoft\MMC\ 下的 wsus 文件来删除该控制台的永久性首选项。


System.NullReferenceException -- 未将对象引用设置到对象的实例。

Source
Microsoft.UpdateServices.UI.SnapIn

Stack Trace:
   在 Microsoft.UpdateServices.UI.SnapIn.Pages.ServerSummaryPage.backgroundWorker_RunWorkerCompleted(Object sender, RunWorkerCompletedEventArgs e)

错误日志2:来源Windows Server Update Services 事件ID 12072

无法访问 WSUS 内容目录。
System.Net.WebException: 远程服务器返回错误: (503) 服务器不可用。
   在 System.Net.HttpWebRequest.GetResponse()
   在 Microsoft.UpdateServices.Internal.HealthMonitoring.HmtWebServices.CheckContentDirWebAccess(EventLoggingType type, HealthEventLogger logger)

无法访问 WSUS 内容目录。
System.Net.WebException: 远程服务器返回错误: (503) 服务器不可用。
   在 System.Net.HttpWebRequest.GetResponse()
   在 Microsoft.UpdateServices.Internal.HealthMonitoring.HmtWebServices.CheckContentDirWebAccess(EventLoggingType type, HealthEventLogger logger)

错误日志3:来源Windows Server Update Services 事件ID 12052

DSS 身份验证 Web 服务无法正常工作。

错误日志4:来源Windows Server Update Services 事件ID 12042

简单身份验证 Web 服务无法正常工作。

错误日志4:来源Windows Server Update Services 事件ID 12022

客户端 Web 服务无法正常工作。

错误日志5:来源Windows Server Update Services 事件ID 12032

服务器同步 Web 服务无法正常工作。

错误日志6:来源Windows Server Update Services 事件ID 12012

API 远程 Web 服务无法正常工作。

错误日志7:来源Windows Server Update Services 事件ID 12002

报告 Web 服务无法正常工作。

错误日志8:来源Windows Server Update Services 事件ID 13042

自我更新无法正常工作。

错误日志9:来源Windows Server Update Services 事件ID 10032

服务器无法下载某些更新。

搜索了一下找到了解决思路,大意是,出现这个故障时,IIS中的WSsusPool应用程序池变成已停止,启动它就恢复正常了,究其原因,据说是IIS的应用程序池默认给分配的内存是1.8G内存,根据需要改大就可以了

找到IIS管理器,打开应用程序池,找到WsusPool,右侧点击高级设置,在专用内存限制项中把1843200改为4096000,也就是从1.8G改成4G,当然你内存够大也可以改成0也就是不限制。

改完以后,点击WSUS控制台各个菜单和按钮都变得十分流畅了,之前一度很卡。

Win10新版本的Hyper-V增加了一个自动检查点设定,也就是每次开启虚拟机的时候,都会自动创建一个检查点,然后下次开机会问你是否还原还是继续,如果继续,它会在后台自动合并上一个还原点,如果虚拟机超级大,会严重影响性能,所以需要关闭,根据需要来手动创建检查点。
经查阅资料,没有彻底关闭的地方,而是需要为每个虚拟机关闭该属性,命令如下

Set-VM -Name MyVM -AutomaticCheckpointsEnabled $false

将MyVM替换为你的虚拟机名称即可。

自从微软出了存储池功能就在Windows Server 2012系统开始启用了这个新特性,同时Win8和Win10上也对存储池功能进行了开放,只不过桌面版不支持去重。
另一个差别就是对于存储池的处理方式不同,桌面版系统会自动挂载存储池,而默认情况下服务器版系统的存储池则只有在本机原生配置的时候会自动挂载,如果是从其他机器挪过去的存储池则不会自动挂载,比如硬件故障,将硬盘都更换到另一台服务器上,则需要配置让Windows Server 2012自动挂载该存储池。
方法也很简单,通过PowerShell命令即可打开,输入以下命令查询未自动挂载的存储池

 Get-VirtualDisk | Where-Object {$_.IsManualAttach –eq $True}

会得到如下类似结果

PS C:\Windows\system32> Get-VirtualDisk | Where-Object {$_.IsManualAttach –eq $True
FriendlyName ResiliencySettingName OperationalStatus HealthStatus IsManualAttach Size
----------   -----------------     ---------------   ----------   ------------   ----
vd1          Mirror                Detached          Unknown      True           5.1 TB

输入以下命令将全部存储池设置为自动挂载

Get-VirtualDisk | Where-Object {$_.IsManualAttach –eq $True} | Set-VirtualDisk –IsManualAttach $False

再次重新查询确认命令是否生效即可。

由于公司绝大部分计算机都不能连接互联网,经常有员工会问说自己网络有问题,网卡显示黄叹号,而实际上只有局域网情况下,确实就是显示黄叹号。
这是由于微软的一个网络状态指示器在工作导致的,工作原理如下:
Win7会去下载一个文件,http://www.msftncsi.com/ncsi.txt
内容是“Microsoft NCSI”
Win10会去下载另一个文件,http://www.msftconnecttest.com/connecttest.txt
内容是“Microsoft Connect Test”
另外,Win7还会发送一个DNS请求,dns.msftnisi.com,该请求必须确保能解析为131.107.255.255;

如果不想看到黄色叹号,有两个解决办法
1、组策略(如果有域环境就更好了,一劳永逸)
依次展开“计算机配置”、“管理模板”、“系统”和“Internet 通信管理”,然后单击“Internet 通信设置”。在详细信息窗格中,双击“关闭 Windows 网络连接状态指示器活动测试”,然后单击“已启用”。
2、做DNS欺骗,伪造检测用的服务器
首先,内网DNS服务器增加三个域名解析,dns.msftncsi.com解析到131.107.255.255,www.msftncsi.com和www.msftconnecttest.com都解析到内网一个http服务器上,比如192.168.1.100,这台机器上需要跑个http服务,网站根目录放两个文件,ncsi.txt(Microsoft NCSI)以及connecttest.txt(Microsoft Connect Test)。

写个程序,需要用到ldap的功能,发现报错,虽然php.ini打开了ldap的模块,但phpinfo中没有发现ldap扩展
搜索一番,发现,win下面还需要apache强制加载两个依赖库libeay32.dll和ssleay32.dll,
修改apache的配置文件,强制加载着两个扩展:

LoadFile "C:/PHP/ext/ssleay32.dll"
LoadFile "C:/PHP/ext/libeay32.dll"

重启即可。