Skip to main content

Manage Microsoft Defender path exclusions from Python, CLI, or GUI.

Project description

py-win-mp-exclude

py-win-mp-exclude is a Windows package for adding, removing, and listing Microsoft Defender path exclusions from a CLI, a small GUI, or Python code.

The tool uses PowerShell's Defender cmdlets:

  • Add-MpPreference -ExclusionPath
  • Remove-MpPreference -ExclusionPath
  • Get-MpPreference

When a CLI subcommand or the GUI starts without administrator privileges, the program relaunches itself once through py-admin-launch. A hidden startup flag prevents repeated elevation attempts. --dry-run commands only print the PowerShell script and do not request elevation.

Installation

pip install py-win-mp-exclude

CLI

Add a file or folder exclusion:

win-mp-exclude add C:\path\to\file.exe
win-mp-exclude add C:\path\to\folder

Remove a file or folder exclusion:

win-mp-exclude remove C:\path\to\file.exe
win-mp-exclude remove C:\path\to\folder

List configured path exclusions:

win-mp-exclude list

Preview the PowerShell command without running it:

win-mp-exclude --dry-run add C:\path\to\folder

The package also installs the alias py-win-mp-exclude.

GUI

Launch the graphical interface:

win-mp-exclude-gui

The GUI can add exclusions, remove exclusions, remove a selected exclusion, list current exclusions, and refresh the list. The package also installs the alias py-win-mp-exclude-gui.

Python API

The Python API exposes the same add, remove, list, and dry-run capabilities used by the CLI and GUI:

from win_mp_exclude import add_exclusion, list_exclusions, remove_exclusion

add_result = add_exclusion(r"C:\path\to\folder")
print(add_result.message)

for path in list_exclusions().exclusions:
    print(path)

remove_result = remove_exclusion(r"C:\path\to\folder")
print(remove_result.message)

Use dry_run=True to inspect the PowerShell script without applying a change:

from win_mp_exclude import add_exclusion

result = add_exclusion(r"C:\path\to\folder", dry_run=True)
print(result.script)

By default, Python mutating calls can request administrator elevation once. Pass elevate=False if your program wants to handle elevation itself.

Development

Build with Poetry:

poetry build

Publish with Poetry:

poetry publish

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

py_win_mp_exclude-0.2.2.tar.gz (7.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

py_win_mp_exclude-0.2.2-py3-none-any.whl (10.1 kB view details)

Uploaded Python 3

File details

Details for the file py_win_mp_exclude-0.2.2.tar.gz.

File metadata

  • Download URL: py_win_mp_exclude-0.2.2.tar.gz
  • Upload date:
  • Size: 7.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.4.1 CPython/3.11.15 Windows/10

File hashes

Hashes for py_win_mp_exclude-0.2.2.tar.gz
Algorithm Hash digest
SHA256 12982b0c03a78d4fc2829ad7b1facb6f5ac670492bc04f911d40b9f874900cbb
MD5 b3901c41eb6dddaa69de4a4e151a2697
BLAKE2b-256 e4892cc7d4c0d11d1156ba87db9c947ee438ca15a6a2163a730cac6906bb3ad9

See more details on using hashes here.

File details

Details for the file py_win_mp_exclude-0.2.2-py3-none-any.whl.

File metadata

  • Download URL: py_win_mp_exclude-0.2.2-py3-none-any.whl
  • Upload date:
  • Size: 10.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.4.1 CPython/3.11.15 Windows/10

File hashes

Hashes for py_win_mp_exclude-0.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 a5fed7a0b631394e4f02ace4c2f0ff84f55fc06914da6c6f91c34e2b4c9a954d
MD5 1ee5467435a27f7f7241a25a00493164
BLAKE2b-256 68d5d79eb8cb5ef317b020517fc4e6f133f38e49f81ddd92c082414816e89088

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page