Unpacking Software Livestream

Join our monthly Unpacking Software livestream to hear about the latest news, chat and opinion on packaging, software deployment and lifecycle management!

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

Chocolatey Coding Livestream

Join us for the Chocolatey Coding Livestream, where members of our team dive into the heart of open source development by coding live on various Chocolatey projects. Tune in to witness real-time coding, ask questions, and gain insights into the world of package management. Don't miss this opportunity to engage with our team and contribute to the future of Chocolatey!

Learn More

Calling All Chocolatiers! Whipping Up Windows Automation with Chocolatey Central Management

Webinar from
Wednesday, 17 January 2024

We are delighted to announce the release of Chocolatey Central Management v0.12.0, featuring seamless Deployment Plan creation, time-saving duplications, insightful Group Details, an upgraded Dashboard, bug fixes, user interface polishing, and refined documentation. As an added bonus we'll have members of our Solutions Engineering team on-hand to dive into some interesting ways you can leverage the new features available!

Watch On-Demand
Chocolatey Community Coffee Break

Join the Chocolatey Team as we discuss all things Community, what we do, how you can get involved and answer your Chocolatey questions.

Watch The Replays
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

Downloads:

2,305

Downloads of v 4.1.2.4:

560

Last Update:

16 Dec 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.1.2.4 | Updated: 16 Dec 2023

Downloads:

2,305

Downloads of v 4.1.2.4:

560

Maintainer(s):

Software Author(s):

  • Western Digital Corporation

Western Digital Dashboard 4.1.2.4

  • 1
  • 2
  • 3

All Checks are Passing

3 Passing Tests


Validation Testing Passed


Verification Testing Passed

Details

Scan Testing Successful:

No detections found in any package files

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.1.2.4'
    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.1.2.4'
end

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


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

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


package { 'wd-dashboard':
  ensure   => '4.1.2.4',
  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 TheCakeIsNaOH on 16 Dec 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


tools\chocolateyinstall.ps1
$ErrorActionPreference = 'Stop'

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

$softwareName = 'Dashboard'
$softwareVersion = '4.1.2.4'
$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       = '2f2733491603958e08ea45f7d6bcebbb21e9f2abb35a09d74a8974a7e1a14c2e'
    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 -ValidExitCodes (-1, 0)

        $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