问题描述:
使用:
net share ipc$ /del
关闭IPC共享服务时,系统产生提示:
发生系统错误5。 拒绝访问。
截图如下:
解决方案:
注:以下操作使用Windows XP完成。
首先,运行net share命令是需要使用管理员权限的,因此,第一步就是使用管理员权限打开cmd
如果当前系统没有创建管理员,首先需要创建一个管理员,如果已经创建了管理员,则下一步可以跳过不看。
为Windows系统创建管理员
依次打开“开始菜单->控制面板->用户账户->创建一个新账户”
之后输入用户名,选择用户类型为“计算机管理员”
再之后,点击刚才创建的计算机管理员账户,再点击“创建密码”。
最后,注销当前登陆并以管理员身份重新登陆或者在普通用户中采取如下方式获取管理员权限:
依次点击“开始菜单->所有程序->附件”
之后,右击“命令提示符”,选择“运行方式->下列用户”
将“下列用户”修改为刚才创建的管理员用户,并输入管理员用户的密码,如图:
这样就以管理员权限运行了cmd了。
但是此时,输入:
net share ipc$ /del
仍然会出现如本文一开始那样的拒绝提示(本文开篇的“问题描述”中的截图就是截取的运行在管理员权限下的cmd)
在Microsoft的官网上,我找到这样一篇帮助文档:
PC$ share and null session behavior in Windows
这篇帮助文档的主要内容是:在 Windows XP, Windows Vista, Windows 7, Windows Server 2003, Windows Server 2008 这些比较新的Windows操作系统上(注意,不包括Windows 2000,在Windows2000中使用net share ipc$ /del可以直接关闭IPC共享),默认是不能直接关闭IPC共享的,而且微软也不建议用户关闭IPC共享服务。如果真的要关闭IPC,可以选择直接关闭Windows系统的Server服务。
在Windows XP上关闭Server服务的步骤如下:
注:也可以“Win+R”后输入services.msc 并回车打开“服务”控制界面之后找到”Server”服务并关闭。
依次打开“开始菜单->控制面板->管理工具->服务”
找到“Server”,右键点击“停止”,如图:
之后再运行net share ipc$ /del 就会出现如下提示:
这说明IPC共享服务已经停止工作。
至此,问题解决。
附:什么是IPC和IPC$?
IPC英文全称:Inter-Process Communication
直接翻译成中文就是:进程间通信
在百度百科中对于IPC是这样解释的:
引用:进程间通信(IPC,Inter-Process Communication),指至少两个进程或线程间传送数据或信号的一些技术或方法。进程是计算机系统分配资源的最小单位(严格说来是线程)。每个进程都有自己的一部分独立的系统资源,彼此是隔离的。为了能使不同的进程互相访问资源并进行协调工作,才有了进程间通信。举一个典型的例子,使用进程间通信的两个应用可以被分类为客户端和服务器,客户端进程请求数据,服务端回复客户端的数据请求。有一些应用本身既是服务器又是客户端,这在分布式计算中,时常可以见到。这些进程可以运行在同一计算机上或网络连接的不同计算机上。
进程间通信技术包括消息传递、同步、共享内存和远程过程调用。IPC是一种标准的Unix通信机制。
IPC$就是:进程间通信共享(也被称为空会话连接),在英文中也可以使用inter-process communication share 或IPC$ share表达。
在Windows XP中,输入:
net share
可以看到目前计算机中所有已开启的默认共享:
在没有进行相关自定义设置的情况下,Windows系统每次启动都会打开admin$共享、ipc$共享、用户自己创建的共享文件夹,以及系统中每个盘符的共享(即C$和D$等,这里的”C”和”D”指的就是当前计算机中可以受Windows系统管理的盘的盘符)。
如图5,”Share”就是我在Windows 10系统下创建的一个共享文件夹。