Giter VIP home page Giter VIP logo

nefcon's Introduction

nefcon

MSBuild GitHub All Releases Discord GitHub followers Mastodon Follow

Windows device driver installation and management tool.

About

This little self-contained, no-dependency tool can be built either as a console application or a Windows application which has no visible window (ideal to use in combination with setup makers). It offers a command-line-based driver (un-)installer and allows for simple manipulation of class filter entries. Run nefconc.exe --help to see all the options offered.

Motivation

Windows Device Driver management is and always has been hard. The APIs involved are old, moody and come with pitfalls. Historically the devcon tool or nowadays pnputil have been used to offload these tedious tasks, but unintuitive and sparsely documented command line arguments and error propagation make them poor candidates for automation in e.g. setup engines. Grown tired of these limitations I made this "devcon clone" available under a permissive license which offers the following highlighted features and more:

  • Allows for true window-less execution
  • Actively suppresses and works around user interaction inconsistencies ("reboot required" dialogs and OS-included bugs)
  • Offers optional logging to stdout or file
  • Sane command line arguments ๐Ÿ˜
  • Class filter values manipulation
  • Supports installation of primitive drivers

Installation

Binaries are available to download in the releases page, just download and extract. However, if you are using a package manager, you can use one of the following options:

Scoop

This is a community-maintained source and might lag behind GitHub releases.

nefcon is available in the Extras bucket:

scoop bucket add extras
scoop install nefcon

Winget

This is a community-maintained source and might lag behind GitHub releases.

nefcon is available in the winget-pkgs repository:

winget install nefcon

Examples

For a console example use nefconc, for windowless execution use nefconw binary.

Installing a Primitive Driver

nefconw --install-driver --inf-path "Path\To\Inf.inf"

Uninstalling a Primitive Driver

nefconw --uninstall-driver --inf-path "Path\To\Inf.inf"

Modifying HIDClass upper filters

nefconw --add-class-filter --position upper --service-name HidHide --class-guid 745a17a0-74d3-11d0-b6fe-00a0c90f57da

Create virtual Root-enumerated device node

nefconw --create-device-node --hardware-id root\HidHide --class-name System --class-guid 4D36E97D-E325-11CE-BFC1-08002BE10318

Remove device(s) and driver

nefconw --remove-device-node --hardware-id root\HidHide --class-guid 4D36E97D-E325-11CE-BFC1-08002BE10318

Install file system volume controller driver

nefconw --inf-default-install --inf-path "F:\Downloads\btrfs-1.8\btrfs.inf"

devcon "emulation"

Currently the devcon install INFfile HardwareID command is implemented so you can use nefcon as a drop-in replacement for this popular software node device driver installation command! The /r flag to auto-reboot is not supported; check the exit code to determine if a reboot is required and inform the user to do so whenever convenient.

3rd party credits

This project uses the following 3rd party resources:

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.