转载请标明出处:
https://dujinyang.blog.csdn.net/article/details/90045657
本文出自:【奥特曼超人的博客】
执行一个子进程的命令,进程中读写一些文件,但是始终出现(系统拒绝)
的问题。
说到这里,很多人想到的应该是以管理员权限执行,但是很可惜,也失效了。
管理员权限,进程读写,dos超级管理员,都尝试了,无果。
**场景:**使用A包打入A渠道报错。
首先做了N个尝试,如下表格:
思路 | 描述 |
---|---|
思路1 | 更换母包,使用B包打入A渠道,发现可以。 |
思路2 | 更换渠道,使用A包打入B渠道,发现可以。 |
思路3 | A包打B渠道,可以。A包打A渠道,系统拒绝写入。B包打A渠道可以,其它渠道也可以。 |
# 运行拒绝
#
# A包-其它渠道没问题-A渠道挂彩(系统拒绝访问)
# B包-所有渠道都可以-A渠道也可以(不会拒绝)
#
# A渠道没问题
# A没问题
# 环境没问题
#
# 管机员运行 -- 效果没有改变
#
对比之后,可以得出结论,权限问题,但是很奇怪的是同个脚本,换个母包就可以了,这说明目录和脚本都是有权限的呀,这个问题估计要留给 微软的win10 解答了。
(蛋碎,虽然很喜欢疑难杂症,但是这种问题,TM根本控制不了啊。 )
当时尝试的办法有:
net user administrator /active:yes
开启,然后 NET USER
展示用户,发现admin有了,但是,你还是无法使用的,当然,继续下去也有办法开启,但是代价太大,我们绕开它吧。后来尝试了把用户改成了当前的,发现是可以运行的,但是这样就要涉及到进程交互了,太繁琐,加上还会弹出是否以界面来询问,最终选择放弃 ,只需要重启进入admin就可以继续操作了,不过不适合单用户存储的同学。( win10用户密码是你用户的密码,本地也会存储的,所以不用担心是否联网。)
最后想起新建一个管道执行的命令 os.popen()
,通过fork一个子进程,然后该子进程执行命令,缓存带就不管了。
尝试了一天的道路走完,已吐血。
最终编译成功,虽然绕过去成功了,但是还是不知道系统抽什么风 ,只有 A包的A渠道才会有问题。