[转]Python 获取Windows管理员权限
最近在写一个可以自动更换 hosts 的 python 脚本,但是操作 hosts 需要管理员权限 ,所以就想着要怎么获取。
总结了一下,有三种方法可以获取,下面分别介绍一下。
1. 以管理员运行 cmd
这个方法很简单,也无需多说,右键以管理员运行就可以了,然后在里面运行 python 脚本就有管理员权限了。
2. 用 cmd 脚本获取
假设我要运行的文件是 test.py
,则我可以写一个 cmd 脚本,不妨叫做 go.cmd
,在里面写入:
@echo off
%1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",1)(window.close)&&exit
cd /d "%~dp0"start python test.py
保存,与 test.py
放在同一文件夹,双击 go.cmd
运行,会弹出提示,点击“是”就会以管理员运行 test.py
了。
3. 用 python 代码获取
以上两种方法都能用,但是总觉得不够优雅,所以接下来我找到了一种可以直接用 python 代码直接获取管理员权限的方法,可以说是相当优雅了。
以下代码来源:python如果获取windows管理员权限(一)
from __future__ import print_function
import ctypes, sysdef is_admin():try:return ctypes.windll.shell32.IsUserAnAdmin()except:return False
if is_admin():# 将要运行的代码加到这里
else:if sys.version_info[0] == 3:ctypes.windll.shell32.ShellExecuteW(None, "runas", sys.executable, __file__, None, 1)else:#in python2.xctypes.windll.shell32.ShellExecuteW(None, u"runas", unicode(sys.executable), unicode(__file__), None, 1)
以上代码运行时先判断是否拥有管理员权限,如果没有,则调用那个函数获取权限以后再运行一次代码,所以如果在命令行中运行的话,会再弹出一个小黑框。而且根据原博客,这个不能在 IDE 中运行,但是我没有 IDE ,所以没有进行测试。
4. 不弹出UAC解决方法
有的人可能使用上面的 2 和 3 方法发现不会弹出授权弹框,这可能是因为系统的 UAC 被关掉了,按照以下步骤开启:
- win + R,在运行框里输入
msconfig
. - 点击 工具,然后点击 更改UAC设置,再点击 右下方的启动.
- 将通知调整到 始终通知.
这里也有图文教程:win10系统如何开启UAC
---------------------
作者:MemoryD
来源:CSDN
原文:https://blog.csdn.net/MemoryD/article/details/83148305
版权声明:本文为作者原创文章,转载请附上博文链接!
内容解析By:CSDN,CNBLOG博客文章一键转载插件
[转]Python 获取Windows管理员权限相关推荐
- Python获取Windows管理员权限
在查阅博客(Python获取Windows管理员权限)时,我使用的代码并不能获得权限,因而对其产生了好奇. 在尝试过后成功,代码如下: # -*- coding:utf-8 -*- import sy ...
- Python 获取Windows管理员权限
最近在写一个可以自动更换 hosts 的 python 脚本,但是操作 hosts 需要管理员权限 ,所以就想着要怎么获取. 总结了一下,有三种方法可以获取,下面分别介绍一下. 1. 以管理员运行 c ...
- python如果获取windows管理员权限(一)
我们在运行我们编写好的python代码时,会碰到这样的报错问题 PermissionError: [WinError 5] 拒绝访问. 这是因为我们编写的脚本的权限不够.一种解决办法是在管理员cmd中 ...
- python如果获取windows管理员权限(二)
我们在python如果获取windows管理员权限(一)中谈到了UAC的问题. 很多时候我们不希望我们的软件弹出UAC提示,这个时候我们可以通过注册表的方法去解决.这其实已经不在是一个安全的编程了,它 ...
- 比雷蛇0day更严重:通过虚拟赛睿外设即获取 Windows 管理员权限
聚焦源代码安全,网罗国内外最新资讯! 编译:代码卫士 安全研究员发现,攻击者可利用在 Windows 10 上安装赛睿 (SteelSeries) 外设的官方 app,获得管理员权限. 攻击者可以在 ...
- win10 系统怎么获取最高管理员权限删除文件
http://www.xitongcity.com/jiaocheng/win8_content_3473.html 很多win8.1系统用户在对磁盘文件进行清理时,经常会遇到"文件夹访问被 ...
- php v9 如何获取超级管理员权限,Windows8.1如何获取超级管理员权限
Win8.1系统下默认管理员权限是有一定权限的,系统内部分文件是无法通过管理员权限进行操作的,需要获取更高级别的超级管理员权限才可,下面我们主要介绍下Win8.1如何利用注册表来获取超级管理员权限. ...
- 怎样恢复计算机管理员身份,电脑高手必备:2招教你找回Windows管理员权限?
原标题:电脑高手必备:2招教你找回Windows管理员权限? 昨晚有个小伙伴提问有关Windows账户信息的问题,虽然描述上有些笼统吧,但根据小编多年的经验猜测(此处是得意脸),不是某些安全软件把当前 ...
- win10软件拒绝访问删不掉_Win10右键菜单添加“获取文件管理员权限”选项
文件访问被拒绝,你需要TrustedInstaller提供的权限才能对此文件进行更改/文件访问被拒绝,你需要权限才能执行此操作/你需要提供管理员权限才能移动此文件" 两种方案 一长期 为Wi ...
最新文章
- 大专生如何报考MBA
- python代码模板_python 代码模板
- 微信小程序插件---表单验证篇
- Vite ---- 创建Vue3.0+TS项目
- 基于simulink的模糊PID控制器设计与仿真
- 中国城市云计算首站现场会成都隆重举行
- 用Python在word的指定位置插入图片(使用Python-docx包)
- VR全景视频、图片播放器
- 歌词遍历案例 lrc文件
- php cunstruct,南开大学海外大学生物学类教授一览
- Python 预测 NBA 比赛结果
- python——求解微分方程
- python基础笔试面试题_python基础面试常见题
- 正交投影与弱透视投影
- LoadLibrary无法加载.dll解决思路
- 超实用的15个shell脚本,有手就会,拿走不谢
- 生物信息学python脚本_Python生物信息学数据管理
- 关于DataTable查询数据的几种方式
- Pytorch:卷积神经网络-GoogLeNet
- 网络营销 10.26
热门文章
- 诺基亚首款Windows Phone智能手机将在年内推出
- Gentle.Net学习笔记四:修改代码,使用Oracle数据库
- 既生瑜何生亮 access_token VS refresh_token
- ABP Framework 5.0 RC.1 新特性和变更说明
- CentOS 7 安装 Greenplum6 (附 dotNET Core 示例)
- 跟我一起学.NetCore之.NetCore概述
- .NET Core:跨平台和开源,让我在框架中脱颖而出
- [开源] .Net ORM FreeSql 1.8.0-preview 最新动态播报
- 打不死我的,终将使我强大!DevOps黑客马拉松参赛心得
- 做「容量预估」可没有true和false