Chocolatey Community Coffee Break

Join the Chocolatey Team on our regular monthly stream where we discuss all things Community, what we do, how you can get involved and answer your Chocolatey questions.

Learn More

Chocolatey Product Spotlight

Join the Chocolatey Team on our regular monthly stream where we put a spotlight on the most recent Chocolatey product releases. You'll have a chance to have your questions answered in a live Ask Me Anything format.

Learn More

Announcing Chocolatey Central Management 0.10.0

Livestream from
Thursday, 06 October 2022

We recently released our largest update to Chocolatey Central Management so far. Join Gary and Steph to find out more about Chocolatey Central Management and the new features and fixes we've added to this release.

Watch On-Demand
Chocolatey and Intune Overview

Webinar Replay from
Wednesday, 30 March 2022

At Chocolatey Software we strive for simple, and teaching others. Let us teach you just how simple it could be to keep your 3rd party applications updated across your devices, all with Intune!

Watch On-Demand
Chocolatey For Business. In Azure. In One Click.

Livestream from
Thursday, 9 June 2022

Join James and Josh to show you how you can get the Chocolatey For Business recommended infrastructure and workflow, created, in Azure, in around 20 minutes.

Watch On-Demand
The Future of Chocolatey CLI

Livestream from
Thursday, 04 August 2022

Join Paul and Gary to hear more about the plans for the Chocolatey CLI in the not so distant future. We'll talk about some cool new features, long term asks from Customers and Community and how you can get involved!

Watch On-Demand
Hacktoberfest Tuesdays 2022

Livestreams from
October 2022

For Hacktoberfest, Chocolatey ran a livestream every Tuesday! Re-watch Cory, James, Gary, and Rain as they share knowledge on how to contribute to open-source projects such as Chocolatey CLI.

Watch On-Demand
Chocolatey Product Spotlight: Chocolatey 1.2.0 and Chocolatey Licensed Extension 5.0.0

Livestream from
Thursday, 03 November 2022

Join Paul and Gary for this months Chocolatey product livestream where we look at the latest release of Chocolatey 1.2.0, Chocolatey Licensed Extension 5.0.0 and shine a spotlight on the new hook scripts functionality. This opens up so many possibilities for Chocolatey CLI users!

Watch On-Demand
Chocolatey Coding Livestream

Livestream from
Tuesday, 29 November 2022

Join Josh as he adds the ability to manage Chocolatey GUI config and features with the Chocolatey Ansible Collection.

Watch On-Demand
Introduction into Chocolatey with Veeam

Webinar from
Tuesday, 13 December 2022

Join Gary, Paul, and Maurice as they introduce and demonstrate how to use Chocolatey! Questions will be answered live in an Ask Me Anything format.

Watch On-Demand

Downloads:

1,686

Downloads of v 4.0.2.20:

488

Last Update:

15 Aug 2023

Package Maintainer(s):

Software Author(s):

  • Western Digital Corporation

Tags:

western-digital sandisk dashboard hdd ssd dock nvme pcie usb thunderbolt trim firmware smart rgb freeware

Western Digital Dashboard

  • 1
  • 2
  • 3

4.0.2.20 | Updated: 15 Aug 2023

Downloads:

1,686

Downloads of v 4.0.2.20:

488

Maintainer(s):

Software Author(s):

  • Western Digital Corporation

Western Digital Dashboard 4.0.2.20

  • 1
  • 2
  • 3

Some Checks Have Failed or Are Not Yet Complete

Not All Tests Have Passed


Validation Testing Passed


Verification Testing Passed

Details

Scan Testing Resulted in Flagged as a Note:

At least one file within this package has greater than 0 detections, but less than 5

Details
Learn More

Deployment Method: Individual Install, Upgrade, & Uninstall

To install Western Digital Dashboard, run the following command from the command line or from PowerShell:

>

To upgrade Western Digital Dashboard, run the following command from the command line or from PowerShell:

>

To uninstall Western Digital Dashboard, run the following command from the command line or from PowerShell:

>

Deployment Method:

NOTE

This applies to both open source and commercial editions of Chocolatey.

1. Enter Your Internal Repository Url

(this should look similar to https://community.chocolatey.org/api/v2/)


2. Setup Your Environment

1. Ensure you are set for organizational deployment

Please see the organizational deployment guide

2. Get the package into your environment

  • Open Source or Commercial:
    • Proxy Repository - Create a proxy nuget repository on Nexus, Artifactory Pro, or a proxy Chocolatey repository on ProGet. Point your upstream to https://community.chocolatey.org/api/v2/. Packages cache on first access automatically. Make sure your choco clients are using your proxy repository as a source and NOT the default community repository. See source command for more information.
    • You can also just download the package and push it to a repository Download

3. Copy Your Script

choco upgrade wd-dashboard -y --source="'INTERNAL REPO URL'" [other options]

See options you can pass to upgrade.

See best practices for scripting.

Add this to a PowerShell script or use a Batch script with tools and in places where you are calling directly to Chocolatey. If you are integrating, keep in mind enhanced exit codes.

If you do use a PowerShell script, use the following to ensure bad exit codes are shown as failures:


choco upgrade wd-dashboard -y --source="'INTERNAL REPO URL'" 
$exitCode = $LASTEXITCODE

Write-Verbose "Exit code was $exitCode"
$validExitCodes = @(0, 1605, 1614, 1641, 3010)
if ($validExitCodes -contains $exitCode) {
  Exit 0
}

Exit $exitCode

- name: Install wd-dashboard
  win_chocolatey:
    name: wd-dashboard
    version: '4.0.2.20'
    source: INTERNAL REPO URL
    state: present

See docs at https://docs.ansible.com/ansible/latest/modules/win_chocolatey_module.html.


chocolatey_package 'wd-dashboard' do
  action    :install
  source   'INTERNAL REPO URL'
  version  '4.0.2.20'
end

See docs at https://docs.chef.io/resource_chocolatey_package.html.


cChocoPackageInstaller wd-dashboard
{
    Name     = "wd-dashboard"
    Version  = "4.0.2.20"
    Source   = "INTERNAL REPO URL"
}

Requires cChoco DSC Resource. See docs at https://github.com/chocolatey/cChoco.


package { 'wd-dashboard':
  ensure   => '4.0.2.20',
  provider => 'chocolatey',
  source   => 'INTERNAL REPO URL',
}

Requires Puppet Chocolatey Provider module. See docs at https://forge.puppet.com/puppetlabs/chocolatey.


4. If applicable - Chocolatey configuration/installation

See infrastructure management matrix for Chocolatey configuration elements and examples.

Package Approved

This package was approved by moderator Windos on 16 Aug 2023.

Description


choco://wd-dashboard

To use choco:// protocol URLs, install (unofficial) choco:// Protocol support


Western Digital Dashboard

The Western Digital Dashboard helps users maintain peak performance of Western Digital drives in Windows® operating systems with a user-friendly graphical interface. The Western Digital Dashboard includes tools for analysis of the disk (including the disk model, capacity, firmware version, and SMART attributes) and firmware updates.

Enhance your gaming station with fully customizable RGB lighting on supported WD_BLACK products, designed to match your style with various colors and thirteen different LED pattern effects to choose from. Or, seamlessly integrate with your existing ASUS Aura Sync on Armoury Crate, GIGABYTE RGB Fusion 2.0, MSI Mystic Light, or Razer Chroma™ RGB ecosystem.

Dashboard Screenshot

Package Parameters

  • /language:UI_STRING_OR_LANGUAGE_TAG - Overrides the default language configuration.

    Supported languages include:

    UI String Language Tag Language Name
    Čeština cs-CZ Czech
    Dansk da-DK Danish
    Deutsch de-DE German
    English en-US English
    Español es-ES Spanish
    Françias fr-FR French
    Italiano it-IT Italian
    日本語 ja-JP Japanese
    한국어 ko-KR Korean
    Nederlands nl-NL Dutch
    Polski pl-PL Polish
    Português pt-PT Portuguese
    Pусский ru-RU Russian
    Svenska sv-SE Swedish
    Türkçe tr-TR Turkish
    简体中文 zh-CN Simplified Chinese
    繁體中文 zh-TW Traditional Chinese
  • /start - Automatically start Dashboard after the installation completes.

Examples

choco install wd-dashboard --params="'/language:Español'"
choco install wd-dashboard --params="'/language:fr-FR'"
choco install wd-dashboard --params="'/start'"
choco install wd-dashboard --params="'/language:Deutsch /start'"

Package Notes

Western Digital does not provide a versioned download URL. This means the installer binary's checksum will periodically change, and a newly released software version will break this package version. Consequently, FOSS users should generally consider older package versions to be obsolete and unsupported. Obsolete package versions may be unlisted if the Chocolatey CDN has not cached the download before obsoletion.

Consider internalizing this package if you require a stable binary, or the ability to install this specific version after a new version is released.


Legacy versions of Western Digital Dashboard's installer (i.e. prior to installer version 5.3.2.2 and application version 3.7.2.5) did not support a silent (un)installation option. Upgrade operations will typically require the currently installed version to be uninstalled first. To ensure compatibility with legacy installations, the package depends on AutoHotkey to implement a best-effort workaround of scripting an unattended uninstallation via GUI automation. GUI automation is not 100% reliable, and may occasionally fail or require manual input to complete.


For future upgrade operations, consider opting into Chocolatey's useRememberedArgumentsForUpgrades feature to avoid having to pass the same arguments with each upgrade:

choco feature enable --name="'useRememberedArgumentsForUpgrades'"

tools\chocolateyinstall.ps1
$ErrorActionPreference = 'Stop'

$toolsDir = "$(Split-Path -Parent $MyInvocation.MyCommand.Definition)"
. $toolsDir\helpers.ps1

$softwareName = 'Dashboard'
$softwareVersion = '4.0.2.20'
$shouldInstall = Get-ShouldInstall -Version $softwareVersion

if (!$shouldInstall -and !$env:ChocolateyForce) {
  Write-Output "$softwareName v$softwareVersion is already installed."
  Write-Output 'Skipping download and execution of installer.'
}
else {
  $installedVersion = Get-CurrentVersion
  if ($null -ne $installedVersion) {
    Write-Output "Current installed version (v$installedVersion) must be uninstalled first..."
    Uninstall-CurrentVersion
  }

  $pp = Get-PackageParameters
  if ($pp.Language) {
    Set-LanguageConfiguration -Language $pp.Language
  }

  $packageArgs = @{
    packageName    = $env:ChocolateyPackageName
    fileType       = 'EXE'
    url            = 'https://wddashboarddownloads.wdc.com/wdDashboard/DashboardSetupSA.exe'
    softwareName   = $softwareName
    checksum       = '3bab9c85ebc1153717b901705ce7aa4831f60f9a38c6adcb7b6173bdf392d97e'
    checksumType   = 'sha256'
    silentArgs     = '-silent'
    validExitCodes = @(0)
  }

  Install-ChocolateyPackage @packageArgs

  if ($pp.Start) {
    $installPath = Get-InstallPath
    if ($null -eq $installPath) {
      Write-Warning "Cannot find install path - will not try to start $softwareName"
    }
    else {
      try {
        $exePath = Join-Path -Path $installPath -ChildPath "$softwareName.exe"
        Start-Process -FilePath $exePath -ErrorAction Continue
      }
      catch {
        Write-Warning "$softwareName failed to start, please try to manually start it instead."
      }
    }
  }
}
tools\chocolateyuninstall.ps1
$ErrorActionPreference = 'Stop'

$toolsDir = "$(Split-Path -Parent $MyInvocation.MyCommand.Definition)"
. $toolsDir\helpers.ps1

Uninstall-CurrentVersion
tools\helpers.ps1
if ((Get-OSArchitectureWidth -Compare 64)) {
    $registrySubkey = 'HKLM:\SOFTWARE\WOW6432Node\Western Digital\SSD Dashboard'
}
else {
    $registrySubkey = 'HKLM:\SOFTWARE\Western Digital\SSD Dashboard'
}

function Get-InstallPath {
    return Get-RegistryValue -ValueName 'InstallPath'
}

function Get-RegistryValue($ValueName) {
    if (Test-Path -Path $registrySubkey) {
        if ((Get-ItemProperty $registrySubkey).PSObject.Properties.Name -contains $ValueName) {
            return (Get-ItemProperty -Path $registrySubkey -Name $ValueName).$ValueName
        }
    }
  
    return $null
}

function Set-LanguageConfiguration($Language) {
    $supportedLanguages = @{
        Čeština    = 'cs-CZ'
        Dansk      = 'da-DK'
        Deutsch    = 'de-DE'
        English    = 'en-US'
        Español    = 'es-ES'
        Françias   = 'fr-FR'
        Italiano   = 'it-IT'
        日本語        = 'ja-JP'
        한국어        = 'ko-KR'
        Nederlands = 'nl-NL'
        Polski     = 'pl-PL'
        Português  = 'pt-PT'
        Pусский    = 'ru-RU'
        Svenska    = 'sv-SE'
        Türkçe     = 'tr-TR'
        简体中文       = 'zh-CN'
        繁體中文       = 'zh-TW'
    }

    if ($supportedLanguages.ContainsKey($Language)) {
        #Map to underlying locale for backward compatibility with passing UI string selection
        $localeString = $supportedLanguages[$Language]
    }
    elseif ($supportedLanguages.ContainsValue($Language)) {
        $localeString = $Language
    }
    else {
        throw "`"$Language`" is not a supported language configuration!"
    }

    if (!(Test-Path -Path $registrySubkey)) {
        New-Item -Path $registrySubkey -Force | Out-Null
    }

    New-ItemProperty -Name 'CurrentCulture' -Path $registrySubkey -PropertyType String -Value $localeString -Force | Out-Null
}

function Get-ShouldInstall($Version) {  
    if (Test-Path -Path $registrySubkey) {
        if (((Get-ItemProperty $registrySubkey).PSObject.Properties.Name -contains 'IsInstalled') -and `
            ((Get-CurrentVersion) -eq $version)) {
            return $false
        }
    }
  
    return $true
}

function Get-CurrentVersion {
    return Get-RegistryValue -ValueName 'CurrentVersion'
}

function Uninstall-CurrentVersion {
    $packageArgs = @{
        packageName    = $env:ChocolateyPackageName
        softwareName   = 'Dashboard'
        fileType       = 'EXE'
        silentArgs     = '-uninstall'
        validExitCodes = @(0)
    }

    [array] $keys = Get-UninstallRegistryKey -SoftwareName $packageArgs['softwareName']

    if ($keys.Count -eq 1) {
        $sanitizedUninstallString = $keys[0].UninstallString.TrimEnd(' -uninstall')

        #When started from Program Files, the binary shells itself out to TEMP,
        #spawns a new process, then terminates. Kick off the shell operation first.
        Start-ChocolateyProcessAsAdmin -ExeToRun $sanitizedUninstallString

        $processName = [System.IO.Path]::GetFileNameWithoutExtension($sanitizedUninstallString)

        $tempProcess = Get-Process -Name $processName

        #Grab the temp copy's path, kill it, then restart it from Chocolatey
        $tempProcessInfo = Get-Process -Id $tempProcess.Id -FileVersionInfo
        $filePath = $tempProcessInfo.FileName
        $packageArgs['file'] = $filePath

        Stop-Process -InputObject $tempProcess -Force
        
        $installedVersion = Get-CurrentVersion
        if ([Version] $installedVersion -lt [Version] '3.7.2.4') {
            #Dashboard did not support a silent (un)install for this version.
            #Script an unattended uninstall with AutoHotkey.
            $ahkVersion = (Get-Command -Name 'AutoHotKey.exe' -CommandType Application).Version
            if ($ahkVersion -lt '2.0.0') {
                $ahkScriptPath = Join-Path -Path $toolsDir -ChildPath 'uninstall_v1.ahk'
            }
            else {
                $ahkScriptPath = Join-Path -Path $toolsDir -ChildPath 'uninstall_v2.ahk'
            }

            Start-Process -FilePath 'AutoHotKey.exe' -ArgumentList $ahkScriptPath
        }
        else {
            $packageArgs['silentArgs'] += ' -silent'
        }

        Uninstall-ChocolateyPackage @packageArgs

        #Clean up the temp file copy to prevent disk bloat
        Remove-Item -Path $filePath -Force -ErrorAction SilentlyContinue
    }
    elseif ($keys.Count -eq 0) {
        Write-Warning "$packageName has already been uninstalled by other means."
    }
    elseif ($keys.Count -gt 1) {
        Write-Warning "$($keys.Count) matches found!"
        Write-Warning 'To prevent accidental data loss, no programs will be uninstalled.'
        Write-Warning 'Please alert package maintainer the following keys were matched:'
        $key | ForEach-Object { Write-Warning "- $($_.DisplayName)" }
    }
}
tools\uninstall_v1.ahk
#NoEnv
#NoTrayIcon
#SingleInstance Force
#Warn
DetectHiddenWindows, off
SetWinDelay, 100
SetTitleMatchMode, 3 ;Exact
SetControlDelay, -1
DetectHiddenText, off
SendMode Input

WindowTitleText = Dashboard Installer ;Title text should not change, regardless of language selection
WindowClass = TESTSETUP
WindowTitle = %WindowTitleText% ahk_class %WindowClass%

WinWait, %WindowTitle%
WinMinimize, %WindowTitle%

UninstallButton = Button1
ControlClick, %UninstallButton%, %WindowTitle%,,,, NA

FinishButton = Button1
IsFinished = 0
while (IsFinished = 0)
{
    Sleep 250
    ControlGet, IsFinished, Visible,, %FinishButton%, %WindowTitle%
}

WinWait, %WindowTitle%
ControlClick, %FinishButton%, %WindowTitle%,,,, NA
ExitApp
tools\uninstall_v2.ahk
#NoTrayIcon
#SingleInstance Force
#Warn
DetectHiddenWindows "On"
SetWinDelay 100
SetTitleMatchMode 3 ;Exact
SetControlDelay -1
DetectHiddenText "Off"
SendMode "Input"

WindowTitleText := "Dashboard Installer" ;Title text should not change, regardless of language selection
WindowClass := "TESTSETUP"
WindowTitle := WindowTitleText " ahk_class " WindowClass

WinWait WindowTitle
WinMinimize WindowTitle

ControlClick "Button1", WindowTitle,,,, "NA"

IsFinished := 0
while (IsFinished = 0)
{
    Sleep 250
    IsFinished := ControlGetVisible("Button1", WindowTitle)
}

WinWait WindowTitle
ControlClick "Button1", WindowTitle,,,, "NA"
ExitApp

Log in or click on link to see number of positives.

In cases where actual malware is found, the packages are subject to removal. Software sometimes has false positives. Moderators do not necessarily validate the safety of the underlying software, only that a package retrieves software from the official distribution point and/or validate embedded software against official distribution point (where distribution rights allow redistribution).

Chocolatey Pro provides runtime protection from possible malware.

Add to Builder Version Downloads Last Updated Status

Discussion for the Western Digital Dashboard Package

Ground Rules:

  • This discussion is only about Western Digital Dashboard and the Western Digital Dashboard package. If you have feedback for Chocolatey, please contact the Google Group.
  • This discussion will carry over multiple versions. If you have a comment about a particular version, please note that in your comments.
  • The maintainers of this Chocolatey Package will be notified about new comments that are posted to this Disqus thread, however, it is NOT a guarantee that you will get a response. If you do not hear back from the maintainers after posting a message below, please follow up by using the link on the left side of this page or follow this link to contact maintainers. If you still hear nothing back, please follow the package triage process.
  • Tell us what you love about the package or Western Digital Dashboard, or tell us what needs improvement.
  • Share your experiences with the package, or extra configuration or gotchas that you've found.
  • If you use a url, the comment will be flagged for moderation until you've been whitelisted. Disqus moderated comments are approved on a weekly schedule if not sooner. It could take between 1-5 days for your comment to show up.
comments powered by Disqus