最近在写一个可以自动更换 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 被关掉了,按照以下步骤开启:

  1. win + R,在运行框里输入 msconfig.
  2. 点击 工具,然后点击 更改UAC设置,再点击 右下方的启动.
  3. 将通知调整到 始终通知.

这里也有图文教程:win10系统如何开启UAC

---------------------
作者:MemoryD
来源:CSDN
原文:https://blog.csdn.net/MemoryD/article/details/83148305
版权声明:本文为作者原创文章,转载请附上博文链接!
内容解析By:CSDN,CNBLOG博客文章一键转载插件

[转]Python 获取Windows管理员权限相关推荐

  1. Python获取Windows管理员权限

    在查阅博客(Python获取Windows管理员权限)时,我使用的代码并不能获得权限,因而对其产生了好奇. 在尝试过后成功,代码如下: # -*- coding:utf-8 -*- import sy ...

  2. Python 获取Windows管理员权限

    最近在写一个可以自动更换 hosts 的 python 脚本,但是操作 hosts 需要管理员权限 ,所以就想着要怎么获取. 总结了一下,有三种方法可以获取,下面分别介绍一下. 1. 以管理员运行 c ...

  3. python如果获取windows管理员权限(一)

    我们在运行我们编写好的python代码时,会碰到这样的报错问题 PermissionError: [WinError 5] 拒绝访问. 这是因为我们编写的脚本的权限不够.一种解决办法是在管理员cmd中 ...

  4. python如果获取windows管理员权限(二)

    我们在python如果获取windows管理员权限(一)中谈到了UAC的问题. 很多时候我们不希望我们的软件弹出UAC提示,这个时候我们可以通过注册表的方法去解决.这其实已经不在是一个安全的编程了,它 ...

  5. 比雷蛇0day更严重:通过虚拟赛睿外设即获取 Windows 管理员权限

     聚焦源代码安全,网罗国内外最新资讯! 编译:代码卫士 安全研究员发现,攻击者可利用在 Windows 10 上安装赛睿 (SteelSeries) 外设的官方 app,获得管理员权限. 攻击者可以在 ...

  6. win10 系统怎么获取最高管理员权限删除文件

    http://www.xitongcity.com/jiaocheng/win8_content_3473.html 很多win8.1系统用户在对磁盘文件进行清理时,经常会遇到"文件夹访问被 ...

  7. php v9 如何获取超级管理员权限,Windows8.1如何获取超级管理员权限

    Win8.1系统下默认管理员权限是有一定权限的,系统内部分文件是无法通过管理员权限进行操作的,需要获取更高级别的超级管理员权限才可,下面我们主要介绍下Win8.1如何利用注册表来获取超级管理员权限. ...

  8. 怎样恢复计算机管理员身份,电脑高手必备:2招教你找回Windows管理员权限?

    原标题:电脑高手必备:2招教你找回Windows管理员权限? 昨晚有个小伙伴提问有关Windows账户信息的问题,虽然描述上有些笼统吧,但根据小编多年的经验猜测(此处是得意脸),不是某些安全软件把当前 ...

  9. win10软件拒绝访问删不掉_Win10右键菜单添加“获取文件管理员权限”选项

    文件访问被拒绝,你需要TrustedInstaller提供的权限才能对此文件进行更改/文件访问被拒绝,你需要权限才能执行此操作/你需要提供管理员权限才能移动此文件" 两种方案 一长期 为Wi ...

最新文章

  1. 大专生如何报考MBA
  2. python代码模板_python 代码模板
  3. 微信小程序插件---表单验证篇
  4. Vite ---- 创建Vue3.0+TS项目
  5. 基于simulink的模糊PID控制器设计与仿真
  6. 中国城市云计算首站现场会成都隆重举行
  7. 用Python在word的指定位置插入图片(使用Python-docx包)
  8. VR全景视频、图片播放器
  9. 歌词遍历案例 lrc文件
  10. php cunstruct,南开大学海外大学生物学类教授一览
  11. Python 预测 NBA 比赛结果
  12. python——求解微分方程
  13. python基础笔试面试题_python基础面试常见题
  14. 正交投影与弱透视投影
  15. LoadLibrary无法加载.dll解决思路
  16. 超实用的15个shell脚本,有手就会,拿走不谢
  17. 生物信息学python脚本_Python生物信息学数据管理
  18. 关于DataTable查询数据的几种方式
  19. Pytorch:卷积神经网络-GoogLeNet
  20. 网络营销 10.26

热门文章

  1. 诺基亚首款Windows Phone智能手机将在年内推出
  2. Gentle.Net学习笔记四:修改代码,使用Oracle数据库
  3. 既生瑜何生亮 access_token VS refresh_token
  4. ABP Framework 5.0 RC.1 新特性和变更说明
  5. CentOS 7 安装 Greenplum6 (附 dotNET Core 示例)
  6. 跟我一起学.NetCore之.NetCore概述
  7. .NET Core:跨平台和开源,让我在框架中脱颖而出
  8. [开源] .Net ORM FreeSql 1.8.0-preview 最新动态播报
  9. 打不死我的,终将使我强大!DevOps黑客马拉松参赛心得
  10. 做「容量预估」可没有true和false