Analysis updated 2026-05-18
Audit whether your Windows machine's Global Device Identifier is being reported.
Disable the background services and endpoints that report the GDID to Microsoft.
Revert the mitigation to restore normal Windows services.
| korben00/no-gdid | disintegr8te/teams-policy-export | rimagination/good-question | |
|---|---|---|---|
| Stars | 113 | 114 | 94 |
| Language | PowerShell | PowerShell | PowerShell |
| Setup difficulty | moderate | moderate | easy |
| Complexity | 3/5 | 3/5 | 1/5 |
| Audience | developer | ops devops | researcher |
Figures from each repo's GitHub metadata at analysis time.
Requires an elevated PowerShell session, test in a VM snapshot before applying mitigations since they disable real Windows services.
no-gdid is a PowerShell toolkit that explains and reduces the reach of a hidden Windows identifier called the Global Device Identifier, or GDID. The project is upfront that it does not erase this identifier and does not make anyone anonymous. The GDID is created and stored on Microsoft's own servers as soon as a Windows machine signs in with a Microsoft Account, and no local script can undo that. What the tool actually does is stop the machine from continuing to check in and report that identifier going forward. The README explains where the identifier comes from and why it matters: it is a numeric ID tied to a Microsoft Account, cached in the Windows registry, registered with a Microsoft device directory service, and periodically reported through a background delivery system. Unlike an IP address, it does not change when someone switches networks or uses a VPN, which is why the project's introduction points to a real case where investigators reportedly used this kind of identifier to help locate a suspect despite VPN use. The toolkit is organized into read-only audit scripts that show a user their own identifier and which background services are active, and separate mitigation scripts that can disable those services and block their network endpoints, with a companion script to undo the changes. Every mitigation script requires an explicit flag before it makes any real change, and the author recommends testing first inside a virtual machine with a snapshot, since the mitigation disables real Windows services. The README is direct about the limits: deleting the local copy of the identifier does nothing because it is regenerated from the server, and turning off standard Windows telemetry settings does not stop it either, since it travels through a different background service. Disabling the relevant services also breaks some Windows features, including peer to peer update sharing and cross device linking with a phone. Microsoft Account sign-in itself is left working throughout. The project is released under the MIT license and is described by its author as defensive, privacy-oriented tooling meant for use only on machines the user owns.
A PowerShell toolkit that audits and silences reporting of Windows' hidden Global Device Identifier, without erasing it or granting anonymity.
Mainly PowerShell. The stack also includes PowerShell.
Use freely for any purpose, including commercial use, as long as you keep the copyright notice.
Setup difficulty is rated moderate, with roughly 30min to a first successful run.
Mainly developer.
This repo across BitVibe Labs
Verify against the repo before relying on details.