# Advanced: Create a Windows Installer EXE

If you need to install PixieBrix on Windows in an environment where Group Policies/ADMX are not supported, you can create an installer using the open-source Nullsoft Scriptable Install System (NSIS) framework.

The installer sets the [windows-registry](https://docs.pixiebrix.com/enterprise-it-setup/browser-extension-installation-and-configuration/browser-extension-installation-policy/windows-registry "mention") keys, which control the browser extension installation and configuration policy.

### Example NSIS script for Chrome

```nsis
Name "PixieBrix Installer"
OutFile "PixieBrix-NoClient.exe"
RequestExecutionLevel admin  ; Require admin rights
SilentInstall silent

; Define pages only for non-silent installation
!include "MUI2.nsh"
!ifdef MUI_PAGE_DIRECTORY
    !insertmacro MUI_PAGE_DIRECTORY
!endif
!ifdef MUI_PAGE_INSTFILES
    !insertmacro MUI_PAGE_INSTFILES
!endif
!insertmacro MUI_LANGUAGE "English"

Var /GLOBAL SilentInstall

Function .onInit
    ; Check if the installer is running in silent mode
    StrCmp $CMDLINE "/S" 0 +2
    StrCpy $SilentInstall "true"
FunctionEnd

Section "Install Chrome Extension" SecExtension
    SetShellVarContext all  ; Set to affect all users

    ; Create the registry key if it doesn't exist
    WriteRegStr HKLM "SOFTWARE\Policies\Google\Chrome\ExtensionInstallForcelist" "10" "mpjjildhmpddojocokjkgmlkkkfjnepo;https://clients2.google.com/service/update2/crx"

    ; Display a finished message only if not silent
    StrCmp $SilentInstall "true" +2
    ; MessageBox MB_OK "Chrome extension has been successfully registered."
SectionEnd

Section "Uninstall"
    ; This is where uninstallation code would go, if necessary
    DeleteRegValue HKLM "SOFTWARE\Policies\Google\Chrome\ExtensionInstallForcelist" "10"
SectionEnd
```
