分类 Windows 下的文章

Windows的局域网文件共享用的是SMB服务,使用139和445这两个端口。(没错,就是WannaCry最喜欢的那个)

之前被WannaCry病毒搞怕了,于是手动建立了两条防火墙规则,屏蔽了139和445端口的TCP和UDP连接,而最近需要局域网传文件,又得把这个服务打开。

开了之后结果没有任何反应,用局域网ip访问自己都说是远程服务器不响应连接。然后telnet了一下,连接失败。后来考虑看看是不是服务的问题,用了本地回环地址,结果居然能telnet连接,更是可以用资源管理器访问。然后由于有局域网远程连接的需要,有线网卡上配置了一个单独的网段,结果用这个ip可以访问到共享文件。(emm,日常上网用的是无线网卡)

然后咕果上查了一大堆,有以下几个解决方案:

  1. 检查Server和Workstation服务;
  2. 检查Lanmanserver服务;
  3. 检查Print Spooler服务;
  4. 重启网卡服务协议。

除开2看起来不像是Windows自带的服务之外,其余的依次从头到尾试了一遍。最后一个重启网卡服务协议是啥呢,一个在巨硬论坛上找到的邪门方法。说是先把网卡-属性-Microsoft网络的文件和打印机共享勾去掉,保存,再重新点进来勾上就好了。但是在我的实际使用过程中,并未奏效。到是啥呢,顺手禁用然后重新启用了一下网卡,然后就可以访问了。

然后就可以访问了。

??????

然后就可以访问了???这是什么神仙操作???

(顺便说一句,在测试各种解决方案之前重启过很多次计算机,然而并没有用)

https://www.cnblogs.com/fqucuo/p/4887083.html

问题出在Debug配置的-Zi选项上。这个选项用于生成目标项目的调试符号。 我产生该警告的过程是,使用CMake配置第三方项目,编译并安装后,删除了编译时的文件夹。 因而猜测,调试符号并不是嵌入到可执行文件(或者库)里的。 MSVC应该是在链接静态库文件的时候,根据写在文件里的信息去寻找(应该也是PATH里的)对应的符号数据库文件吧。(猜测一下,那岂不是把pdb文件复制到lib对应目录下就好了么) 解决方法之一如引用中所说,删除-Zi选项,不生成额外的调试文件,就可以避免MSVC找不到对应的符号文件而报出的警告。 另一个解决方法,个人认为,如果不是在第三方库的初学阶段,可以考虑将该库的源码添加至项目中,作为主项目的依赖随项目一起编译,然后配置一下输出目录和输出文件名和主项目在同一目录即可。这样至少项目树结构会显得清晰一些。(应该不会有人不知道在没有更新目标target的选项或是源文件的情况下,VS是可以自动跳过该目标的重新编译的吧)

https://devtalk.nvidia.com/default/topic/1049681/nsight-visual-studio-edition/nvidia-nsight-visual-studio-edition-2019-1-with-cuda-9-2/

  1. C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.2\extras\visual_studio_integration\MSBuildExtensions下的文件复制到C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\MSBuild\Microsoft\VC\v160\BuildCustomizations

  2. 编辑C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.2\include\crt\host_config.h的133-135行,强行添加对新版本VC++的支持。把133行的1913改成1921,要是不怕出事可以直接注释掉整个if。我的个人修改方法:在修改133行的同时,139行插入
#elif _MSC_VER == 1921

#pragma message("support for Microsoft Visual Studio 2019 is unofficial!")

用于验证修改是否有效。

有一点要注意的是,CUDA若是安装在默认的X:\Program Files目录下的话,修改其中的文件通常需要管理员权限。而我使用的gedit会很神奇地在没有权限的时候(即以普通用户权限保存文件),不知道自动在哪创建一个同名副本保存,并且还会每次贴心地读取副本。。。我一直以为是哪里缓存的问题,直到重启电脑发现文件变回原样才想起来。。。所以说在权限问题上尽量要清晰,不要偷懒或者马虎。

由于在配置直接使用网线进行的远程桌面连接时,操作太急,把弹出的提示框直接关掉了。 然后发现在网络管理中心,在同一张网卡、同一个网络下,多出了一个“未识别网络”。这玩意不但碍眼,还导致网络访问速度(甚至成功率)有一定的下降。

在经过长时间的网络搜寻之后,在这个帖子里获得了灵感。在该文中提到,提问者是由于在一张网卡上配置了两个网关,导致Windows会对经由每一个网关的网络连通性进行检测,若是数据包发错了路由,就会无法正常与服务器通讯,出现网络错误。

回想之前的操作过程中,由于急着修改IP地址,忘记网关没有修改了,然后Windows自动为其配置成了多网关模式,而这就导致了上述情况的发生,回去查看连接属性,果然有两个网关。先点选手动分配IP地址,然后删掉那个多余的网关,再重新切换回自动分配模式即可。

Windows 10默认把硬件时间当成当前时间,时区就成了摆设。 而*nix显示时间的方式是硬件存储的UTC时间+当前设置的时区。 因而如果在两个系统中都开启自动同步时间的话,就会经常出现错乱。 解决方法是在Windows 10中使用硬件的UTC时间存储方式。

修改注册表:

HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation

在该项下新建一个DWORD值RealTimeIsUniversal,取值设置为1。 重启即可。