Как сделать запуск файла Python от имени администратора?
Пытаюсь сделать сниффер пакетов. При выполнении получаю ошибку OSError: [WinError 10013] An attempt was made to access a socket in a way forbidden by its access permissions
Попытался решить при помощи
import admin
if not admin.isUserAdmin():
admin.runAsAdmin()
получаю -> AttributeError: module 'admin' has no attribute 'isUserAdmin' Как пофиксить?
Ответы (1 шт):
Автор решения: Kers
→ Ссылка
Можно проверить админ ли вы и при необходимости перезапустить скрипт с правами админа.
import ctypes
import os
import sys
def is_admin():
"""Проверяем права"""
try:
# Если админ вернет True
return ctypes.windll.shell32.IsUserAnAdmin()
except:
return False
if is_admin():
# Если админ продолжаем скрипт дальше
input(" As Admin!!!\n Press Enter!")
else:
# Перезапускаем скрипт с правами админа
ctypes.windll.shell32.ShellExecuteW(
None, "runas", sys.executable, __file__, None, 1
)
exit() # выходим из старой версии скрипта
print("your code...")
# что-бы скрипт не закрылся мгновенно
os.system("pause")