我正在设置一个脚本,该脚本将与Windows 10上的防火墙一起使用,从而可以通过该脚本完成防火墙的调整。首先,我得到cmd提示。当我启动cmd时,我尝试需要管理员权限才能运行的netsh命令,如下所示:netsh advfirewall Firewall添加规则名称=“ All ICMP V4” dir = in action = block protocol = icmpv4,得到的是“请求的操作需要高程(以管理员身份运行)”。我正在创建的是一个防火墙功能,该防火墙功能在运行时将能够通过输入的脚本参数(netsh命令)关闭入站,出站或同时关闭网络流量。请记住,这是我的第一个实际大项目。我打算在此脚本中添加其他功能,因此,我是使用Windows 10命令提示符的新手。
我已经尝试过UAC路线,但没有成功。我在此站点上找到了此解决方案,并使用netsh命令进行了尝试:netsh advfirewall防火墙添加规则名称=“ All ICMP V4” dir = in action = block protocol = icmpv4,结果是:SyntaxError:无效的语法。>
这是我开始的代码:
def防火墙():
os.system("start cmd")
这是我在stackover流上找到的解决方案:
ASADMIN ='asadmin'
如果sys.argv [-1]!= ASADMIN:
script = os.path.abspath(sys.argv[0])
params = ' '.join([script] + sys.argv[1:] + [ASADMIN])
shell.ShellExecuteEx(lpVerb='runas', lpFile=sys.executable, lpParameters=params)
sys.exit(0)
其他:
print ("I am elevated!")
sys.exit(0)
我希望能够运行netsh命令来基本调整Windows防火墙状态,例如阻止Internet协议,设置协议,查询防火墙规则。我将继续使用此脚本,直到获得运行它所需的内容为止。
感谢您在此方面的任何答复和帮助。