> ## Documentation Index
> Fetch the complete documentation index at: https://bloodhound.specterops.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Install or upgrade SharpHound Enterprise

> Install SharpHound Enterprise on a Windows server or upgrade an existing deployment.

<img noZoom src="https://mintcdn.com/specterops/tTIczgde9H07oLXf/assets/enterprise-edition-pill-tag.svg?fit=max&auto=format&n=tTIczgde9H07oLXf&q=85&s=b682a26b342bde12302ec829e265bdb6" alt="Applies to BloodHound Enterprise only" width="225" height="45" data-path="assets/enterprise-edition-pill-tag.svg" />

Use this guide to install SharpHound Enterprise on a domain-joined Windows server, upgrade an existing installation, or perform a headless installation for automated deployment workflows.

## Before you begin

* Deploy a domain-joined Windows server for the service. For requirements and deployment guidance, see [SharpHound Enterprise System Requirements and Deployment Process](/install-data-collector/install-sharphound/system-requirements).
* Sign in with a user role that is authorized to download SharpHound Enterprise installation binaries. For role details, see [User Role Definitions](/manage-bloodhound/auth/users-and-roles#user-role-definitions).

## Install SharpHound Enterprise

<Steps>
  <Step title="Open the Download Collectors page">
    Sign in to your BloodHound Enterprise tenant.

    In the left menu, click <Icon icon="arrow-down-to-bracket" /> **Download Collectors**.
  </Step>

  <Step title="Download the latest archive">
    Click the latest SharpHound Enterprise version to begin downloading the `.zip` archive.

    <Frame>
      <img src="https://mintcdn.com/specterops/ETeZtbnNN0LoLdnl/images/data_collectors/sharphound-latest.png?fit=max&auto=format&n=ETeZtbnNN0LoLdnl&q=85&s=839cdbd0678e77a2e0ced50a62185f6e" alt="SharpHound download option marked Latest" width="1402" height="308" data-path="images/data_collectors/sharphound-latest.png" />
    </Frame>
  </Step>

  <Step title="Prepare the target server">
    Connect to the server where you want to install the SharpHound Enterprise service.

    Confirm that your SharpHound service account is a member of the local **Administrators** group.
  </Step>

  <Step title="Extract the archive">
    Copy the downloaded `.zip` archive to the target server and extract it.
  </Step>

  <Step title="Install the service">
    Choose one of the following installation methods:

    <Tabs>
      <Tab title="Interactive">
        Use this method for standard installations where you can interact with the installer UI.

        1. Run **SHSetup-v#.#.#.exe** as an administrator.

        2. If Microsoft Defender SmartScreen displays the following warning, click **More info**.

                   <Frame>
                     <img src="https://mintcdn.com/specterops/3L2OuEwvAIHzUPXm/assets/image-41.png?fit=max&auto=format&n=3L2OuEwvAIHzUPXm&q=85&s=5c66b0f099fbb3fe5504599cac569915" alt="Microsoft Defender SmartScreen warning" style={{ width: "50%" }} width="512" height="480" data-path="assets/image-41.png" />
                   </Frame>

           Confirm that the publisher is **Specter Ops, Inc.**, then click **Run anyway**.

                   <Frame>
                     <img src="https://mintcdn.com/specterops/3L2OuEwvAIHzUPXm/assets/image-42.png?fit=max&auto=format&n=3L2OuEwvAIHzUPXm&q=85&s=30ee11551cc172daea3491644807f5f0" alt="SmartScreen prompt showing publisher details" style={{ width: "50%" }} width="522" height="490" data-path="assets/image-42.png" />
                   </Frame>

        3. Select the installation path, then click **Next**.

           We recommend a path that low-privileged users cannot write to, such as the default `C:\Program Files (x86)\SHService`.

                   <Frame>
                     <img src="https://mintcdn.com/specterops/3L2OuEwvAIHzUPXm/assets/image-43.png?fit=max&auto=format&n=3L2OuEwvAIHzUPXm&q=85&s=a3b4217ec8211b8088919118ce356bc6" alt="SharpHound Enterprise installer path selection" style={{ width: "75%" }} width="698" height="542" data-path="assets/image-43.png" />
                   </Frame>

        4. Click **Install**.

                   <Frame>
                     <img src="https://mintcdn.com/specterops/3L2OuEwvAIHzUPXm/assets/image-44.png?fit=max&auto=format&n=3L2OuEwvAIHzUPXm&q=85&s=1685ed6048d085739e0a46b0614945f4" alt="SharpHound Enterprise installer ready to install" style={{ width: "75%" }} width="698" height="542" data-path="assets/image-44.png" />
                   </Frame>

        5. Enter the SharpHound service account credentials in the format `DOMAIN\username`.

           If you use a gMSA, follow the guidance in [SharpHound hardening](/manage-bloodhound/securing-bloodhound-and-collectors/sharphound-hardening): enter credentials for a standard user account that has local administrator access during installation, then switch the service to the gMSA after installation as described in [Add the gMSA to the SharpHound Enterprise service](/install-data-collector/install-sharphound/create-gmsa).

                   <Frame>
                     <img src="https://mintcdn.com/specterops/3L2OuEwvAIHzUPXm/assets/image-45.png?fit=max&auto=format&n=3L2OuEwvAIHzUPXm&q=85&s=98d25c3273d81675bc3b561a22160a49" alt="SharpHound Enterprise installer service account credentials screen" style={{ width: "50%" }} width="466" height="230" data-path="assets/image-45.png" />
                   </Frame>

        6. Click **Finish**.

                   <Frame>
                     <img src="https://mintcdn.com/specterops/3L2OuEwvAIHzUPXm/assets/image-46.png?fit=max&auto=format&n=3L2OuEwvAIHzUPXm&q=85&s=1e91b7965679363ad795933026bc2fae" alt="SharpHound Enterprise installer completion screen" style={{ width: "75%" }} width="598" height="464" data-path="assets/image-46.png" />
                   </Frame>
      </Tab>

      <Tab title="Headless">
        Use this method for automated deployments where interactive desktop sessions are unavailable or restricted.

        <Note>
          We recommend using a [Group Managed Service Account (gMSA)](/install-data-collector/install-sharphound/create-gmsa) for the SharpHound Enterprise service account instead of a standard Active Directory user account.
        </Note>

        Run the installer silently, then register the service. Replace the placeholder values to match your environment and SharpHound Enterprise version.

        ```powershell theme={null}
        # Run the silent installer
        SHSetup-<version>.exe /VERYSILENT /SUPPRESSMSGBOXES /FORCECLOSEAPPLICATIONS /LOG="BloodHound.log"

        # Register the service
        $ServiceName = "SHDelegator"
        $DisplayName = "SharpHoundDelegator"
        $ExecutablePath = "C:\Program Files (x86)\SHService\SHDelegator.exe"
        $Username = "DOMAIN\service-account"  # For a gMSA, use the format DOMAIN\<gMSA-name>$ (include the trailing $)
        $Password = "<password>"              # Leave blank ("") for a gMSA

        if (-not (Get-Service -Name $ServiceName -ErrorAction SilentlyContinue)) {
            New-Service -Name $ServiceName `
                -BinaryPathName "`"$ExecutablePath`"" `
                -DisplayName $DisplayName `
                -StartupType Automatic
        }

        $svc = Get-WmiObject -Class Win32_Service -Filter "Name='$ServiceName'"
        $null = $svc.Change(
            $null,      # StartMode
            $null,      # DesktopInteract
            $null,      # ErrorControl
            $null,      # BinaryPathName
            $null,      # LoadOrderGroup
            $null,      # LoadOrderGroupDependencies
            $Username,  # ServiceAccountName
            $Password   # Password
        )
        ```
      </Tab>
    </Tabs>
  </Step>

  <Step title="Confirm that the service is installed">
    Confirm that the **SharpHoundDelegator** service is present.

    **Interactive installation**

    <Frame>
      <img src="https://mintcdn.com/specterops/3L2OuEwvAIHzUPXm/assets/image-47.png?fit=max&auto=format&n=3L2OuEwvAIHzUPXm&q=85&s=8147ea944793286cfaa2ec347f210ebf" alt="Services console showing the SharpHoundDelegator service" width="406" height="468" data-path="assets/image-47.png" />
    </Frame>

    **Headless installation**

    ```powershell theme={null}
    Get-Service -Name "SHDelegator"
    ```

    <Note>
      If you do not see the service, see [I don't see the SharpHoundDelegator service](/install-data-collector/install-sharphound/installation-upgrade#no-service).
    </Note>
  </Step>

  <Step title="Switch the service account to a gMSA if needed">
    If you use a gMSA, change the service to run as the gMSA as described in [Add the gMSA to the SharpHound Enterprise service](/install-data-collector/install-sharphound/create-gmsa).
  </Step>

  <Step title="Initialize the configuration directory">
    Start the service once.

    For headless installations, run the following command:

    ```powershell theme={null}
    Start-Service -Name $ServiceName
    ```

    This initial startup fails, but it creates the configuration and log directory in the service account's user profile: `%AppData%\BloodHoundEnterprise`.
  </Step>

  <Step title="Configure the service">
    Update `settings.json` and `auth.json` as described in [SharpHound Enterprise Local Configuration](/install-data-collector/install-sharphound/local-configuration).

    In most environments, update the following values:

    * In `settings.json`, set `RestEndpoint` to your BloodHound Enterprise tenant domain in the format `CODENAME.bloodhoundenterprise.io`.
    * In `settings.json`, if you use a proxy, set `Proxy` in the format `proxy.acme.com:8080`.
    * [Create a BloodHound Enterprise collector client](/collect-data/enterprise-collection/create-collector), then set `Token` and `TokenID` in `auth.json` to the generated values.
  </Step>

  <Step title="Start the service and verify readiness">
    Start the service.

    For headless installations, run the following command:

    ```powershell theme={null}
    Start-Service -Name "SHDelegator"
    ```

    <Note>
      If the service does not start, see [The SharpHoundDelegator service won't start](/install-data-collector/install-sharphound/installation-upgrade#no-start).
    </Note>

    Return to BloodHound Enterprise and confirm that the client reports **🟢 Ready**.

    <Frame>
      <img src="https://mintcdn.com/specterops/3L2OuEwvAIHzUPXm/assets/image-48.png?fit=max&auto=format&n=3L2OuEwvAIHzUPXm&q=85&s=b179850f4acb54d351ecaa51897d5c5c" alt="Collector client status showing Ready" width="829" height="219" data-path="assets/image-48.png" />
    </Frame>

    Start data collection by doing one of the following:

    * [Create a data collection schedule](/collect-data/enterprise-collection/collection-schedule)
    * [Run an on-demand scan](/collect-data/enterprise-collection/on-demand-scan)
  </Step>
</Steps>

## Upgrade SharpHound Enterprise

<Steps>
  <Step title="Open the Download Collectors page">
    Sign in to your BloodHound Enterprise tenant.

    In the left menu, click <Icon icon="arrow-down-to-bracket" /> **Download Collectors**.
  </Step>

  <Step title="Download the latest archive">
    Click the latest SharpHound Enterprise version to begin downloading the `.zip` archive.

    <Frame>
      <img src="https://mintcdn.com/specterops/ETeZtbnNN0LoLdnl/images/data_collectors/sharphound-latest.png?fit=max&auto=format&n=ETeZtbnNN0LoLdnl&q=85&s=839cdbd0678e77a2e0ced50a62185f6e" alt="Latest SharpHound download for upgrade" width="1402" height="308" data-path="images/data_collectors/sharphound-latest.png" />
    </Frame>
  </Step>

  <Step title="Run the installer on the SharpHound server">
    Connect to the SharpHound Enterprise server.

    Extract the `.zip` archive, then run **SHSetup-v#.#.#.exe** as an administrator.
  </Step>

  <Step title="Complete the upgrade">
    Click **Finish**.

    <Frame>
      <img src="https://mintcdn.com/specterops/3L2OuEwvAIHzUPXm/assets/image-51.png?fit=max&auto=format&n=3L2OuEwvAIHzUPXm&q=85&s=d8f97045dd1d70948d1274eaab4d19dc" alt="SharpHound Enterprise installer finish screen after upgrade" style={{ width: "75%" }} width="598" height="464" data-path="assets/image-51.png" />
    </Frame>
  </Step>

  <Step title="Start the service">
    Start the **SharpHoundDelegator** service.

    <Note>
      If the service does not start, see [The SharpHoundDelegator service won't start](/install-data-collector/install-sharphound/installation-upgrade#no-start).
    </Note>
  </Step>

  <Step title="Verify the upgrade">
    Confirm that the service starts successfully and resumes normal communication with BloodHound Enterprise.
  </Step>
</Steps>

## Common installation issues

<h3 id="no-service">
  I don't see the SharpHoundDelegator service
</h3>

This issue most often has one of the following causes:

1. The service account was not added to the local **Administrators** group before installation.
2. The credentials entered during installation were incorrect.

The installation log can help with troubleshooting. The file is `InstallUtil.Install.Log` in the installation directory. The default path is `C:\Program Files (x86)\SHService\InstallUtil.Install.Log`.

<Frame>
  <img src="https://mintcdn.com/specterops/3L2OuEwvAIHzUPXm/assets/image-52.png?fit=max&auto=format&n=3L2OuEwvAIHzUPXm&q=85&s=c027d5b44bb58dca65ced8e8b120fc34" alt="InstallUtil installation log in the SharpHound Enterprise installation directory" width="2925" height="1065" data-path="assets/image-52.png" />
</Frame>

<h3 id="no-start">
  The SharpHoundDelegator service won't start
</h3>

Check the `TempDirectory` value in `settings.json` as described in [SharpHound Enterprise Local Configuration](/install-data-collector/install-sharphound/local-configuration).

If `TempDirectory` is `null`, the service account does not have local administrator privileges. Add the service account to the local **Administrators** group, then restart the service.

If `TempDirectory` is set to a directory, open that directory, locate `service.log`, and review the logged errors. Common issues include:

* `RestEndpoint` cannot be resolved.
  * Confirm that `RestEndpoint` matches your BloodHound Enterprise tenant domain in the format `CODENAME.bloodhoundenterprise.io`.
  * Confirm that the host can resolve the domain from a command prompt.
* `RestEndpoint` cannot be reached, such as by timeout or connection refusal.
  * Confirm that firewall exclusions for your BloodHound Enterprise tenant are configured correctly.
  * If you need an explicit proxy, configure it in `settings.json`.
  * Confirm TLS 1.2 connectivity to your BloodHound Enterprise tenant over port `443`.
