Skip navigation

DASH CLI 2.1 supports new options to enable developers to send request query in JSON format to DASH systems and get the output in JSON format. The output can be interpreted by any programming language supporting JSON format. The output JSON is modeled similar to Redfish Schema published by DMTF.

 

In typical usage, DASH CLI is launched with request JSON. DASH CLI processes the request and forms the response in JSON format. This response is sent back to the launching application.

 

JSON is supported by almost all modern programming languages. Hence it will be easier to add DASH capability into any application or tool with few simple steps. Since the application will be launching DASH CLI, the integration with the application is therefore ‘loosely coupled’. DASH communication, DASH standards compliance, DASH security & stability are encapsulated within DASH CLI. The calling application doesn’t have to know anything about DASH standard.

 

There are two new options in DASH CLI:

  • jdo option: With this flag, DASH request input is taken from command-line and output DASH response is written to console.
  • ji/jo option: With this flag, DASH request input is taken from file and output DASH response is written file.

jdo option is faster since it doesn’t involve any file operation.

 

Before starting

  • Download and install DASH CLI 2.1 version. In this blog, DASH CLI is installed in default path, “C:\Program Files (x86)\DASH CLI 2.1\”
  • Examples are illustrated with Visual Studio 2017. But any other IDE or editor can be used.
  • Refer DASH CLI Developer Guide, which is available in DASH CLI installation folder: “C:\Program Files (x86)\DASH CLI 2.1\docs\”, for JSON request & response formats for supported DASH profiles.
  • This blog provides the steps for C# .NET language. Sample code for using -jdo, -ji & -jo options is attached.

 

JDO Flag usage

Using via direct command line

     dashcli -jdo

When this command is run, DASH CLI waits for input in JSON format. Once the input is provided, it will be executed by DASH CLI and output of which is written back in JSON format, as shown in the screenshot below.

Input_Masked_JDO

Using JDO programmatically

Create a sample C# application by following the steps below:

 

Step 1: Create a new project in Visual Studio by selecting from the Menu “File” > “New” > “Project”

 

Step 2: Select “Visual C#” -> “Console App (.net Framework)”. Name the application “SampleJDO” and click “OK” button.

 

 

Step 3: Add the two constant members dashCliDirectory and dashCliPath in “Program.cs” file.

        private static readonly string dashCliDirectory = @"C:\Program Files (x86)\DASH CLI 2.1\bin\";

        private static readonly string dashCliPath = dashCliDirectory + @"dashcli.exe";

 

Step 4: Add the using statements to include “System.Diagnostics” and “System.IO” as these will be referenced in the upcoming code.

 

using System.Diagnostics;

using System.IO;

 

Step 5: Define the functions “JdoExample” and “RunDashCli” as shown below:

 

        static void JdoExample() {

            string memStdIn, memStdOut = String.Empty, memStdErr = String.Empty;

            string inputJsonFile = @"input_json.txt";

            memStdIn = Convert.ToString(File.ReadAllText(inputJsonFile));

            Console.WriteLine("Input: ");

            Console.WriteLine(memStdIn);

            string arguments = @"-jdo";

            int returnCode = RunDASHCli(arguments, memStdIn, out memStdOut, out memStdErr);

            Console.WriteLine("Output: ");

            Console.Write(memStdOut);

            //'memStdout' has the result in JSON format

        }

 

        static int RunDASHCli(string arguments, string memStdIn, out string memStdOut, out string memStdErr) {

            memStdOut = String.Empty;

            memStdErr = String.Empty;

 

            int exitCode = 1;

            Process process = new Process();

            StreamWriter streamWriter = null;

            StreamReader streamOutReader = null;

            StreamReader streamErrReader = null;

 

            process.StartInfo.UseShellExecute = false;

            process.StartInfo.WindowStyle = ProcessWindowStyle.Normal;

            process.StartInfo.WorkingDirectory = dashCliDirectory;

            process.StartInfo.RedirectStandardInput = true;

            process.StartInfo.RedirectStandardOutput = true;

            process.StartInfo.RedirectStandardError = true;

            process.StartInfo.FileName = dashCliPath;

            process.StartInfo.Arguments = arguments;

            try {

                process.Start();

                streamOutReader = process.StandardOutput;

                streamWriter = process.StandardInput;

                streamErrReader = process.StandardError;

                streamWriter = process.StandardInput;

                streamWriter.WriteLine(memStdIn);

                streamWriter.Close();

                memStdOut = streamOutReader.ReadToEnd();

                memStdErr = streamErrReader.ReadToEnd();

                process.WaitForExit();

                exitCode = process.ExitCode;

                streamOutReader.Close();

                streamErrReader.Close();

            } catch (Exception) {

                exitCode = -1;

            } finally {

                process.Close();

            }

            return exitCode;

        }

 

Step 6: Call “JdoExample” function in the “Main” function and surround the call with messages to indicate start and stop of call like so:

 

            Console.WriteLine("Trying JdoExample ...");

            JdoExample();

            Console.WriteLine("JdoExample done.");

 

The entire code at this stage should look like so:

 

using System;

using System.Diagnostics;

using System.IO;

 

namespace SampleJDO {

    class Program {

        private static readonly string dashCliDirectory = @"C:\Program Files (x86)\DASH CLI 2.1\bin\";

        private static readonly string dashCliPath = dashCliDirectory + @"dashcli.exe";

        static void Main(string[] args) {

            Console.WriteLine("Trying JdoExample ...");

            JdoExample();

            Console.WriteLine("JdoExample done.");

        }

        static void JdoExample() {

            string memStdIn, memStdOut = String.Empty, memStdErr = String.Empty;

            string inputJsonFile = @"input_json.txt";

            memStdIn = Convert.ToString(File.ReadAllText(inputJsonFile));

            Console.WriteLine("Input: ");

            Console.WriteLine(memStdIn);

            string arguments = @"-jdo";

            int returnCode = RunDASHCli(arguments, memStdIn, out memStdOut, out memStdErr);

            Console.WriteLine("Output: ");

            Console.Write(memStdOut);

            //'memStdout' has the result in JSON format

        }

 

        static int RunDASHCli(string arguments, string memStdIn, out string memStdOut, out string memStdErr) {

            memStdOut = String.Empty;

            memStdErr = String.Empty;

 

            int exitCode = 1;

            Process process = new Process();

            StreamWriter streamWriter = null;

            StreamReader streamOutReader = null;

            StreamReader streamErrReader = null;

 

            process.StartInfo.UseShellExecute = false;

            process.StartInfo.WindowStyle = ProcessWindowStyle.Normal;

            process.StartInfo.WorkingDirectory = dashCliDirectory;

            process.StartInfo.RedirectStandardInput = true;

            process.StartInfo.RedirectStandardOutput = true;

            process.StartInfo.RedirectStandardError = true;

            process.StartInfo.FileName = dashCliPath;

            process.StartInfo.Arguments = arguments;

            try {

                process.Start();

                streamOutReader = process.StandardOutput;

                streamWriter = process.StandardInput;

                streamErrReader = process.StandardError;

                streamWriter = process.StandardInput;

                streamWriter.WriteLine(memStdIn);

                streamWriter.Close();

                memStdOut = streamOutReader.ReadToEnd();

                memStdErr = streamErrReader.ReadToEnd();

                process.WaitForExit();

                exitCode = process.ExitCode;

                streamOutReader.Close();

                streamErrReader.Close();

            } catch (Exception) {

                exitCode = -1;

            } finally {

                process.Close();

            }

            return exitCode;

        }

    }

}

 

Step 7: In step 5, the added function “JdoExample”, has defined the input JSON File as input_json.txt. This declaration assumes that input_json.txt is in the same path as the location of the executable. As the default configuration in Visual studio points to Debug folder, please navigate to the debug folder. Upon building the project, the Output window gives the location of the Debug folder.

 

Step 8: Put the following JSON test in input_json.txt file:

 

     {"h":"hp705g4-3","u":"admin","P":"adminPass","Commands":["discover"]}

 

Step 9: Run the SampleJDO.exe application form the console.

 

 

Ji JO Flag usage

Using via direct command line

     dashcli -ji input_json.txt -jo output_json.txt

Here, the file ‘input_json.txt’ has the DASH command in JSON format. DASH CLI executes this command and writes the output in JSON format to file specified by -jo option, which is output_json.txt. Usage is shown in the screenshot below.

Using JI/JO programmatically

Create a sample C# application by following the steps below:

 

Step 1: Create a new project in Visual Studio by selecting from the Menu “File” > “New” > “Project”

 

Step 2: Select “Visual C#” -> “Console App (.net Framework)”. Name the application “SampleJiJO” and click “OK” button.

 

 

Step 3: Add the two constant members dashCliDirectory and dashCliPath in “Program.cs” file.

        private static readonly string dashCliDirectory = @"C:\Program Files (x86)\DASH CLI 2.1\bin\";

        private static readonly string dashCliPath = dashCliDirectory + @"dashcli.exe";

 

Step 4: Add the using statements to include “System.Diagnostics” and “System.IO” as these will be referenced in the upcoming code.

 

using System.Diagnostics;

using System.IO;

 

Step 5: Define the functions “JiJoExample” and “RunDashCli” as shown below:

 

        static void JiJoExample() {

            string AppPath = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetEntryAssembly().Location) + "\\";

            string inputJsonFile = AppPath + @"input_json.txt";

            string outputJsonFile = AppPath + @"output_json.txt";

            Console.WriteLine("Input File: " + inputJsonFile);

            Console.WriteLine("Output File: " + outputJsonFile);

            string arguments = String.Format("-ji {0} -jo {1}", inputJsonFile, outputJsonFile);

            int returnCode = RunDASHCli(arguments);

            //'outputJsonFile' has the result in JSON format

        }

 

        static int RunDASHCli(string arguments, string memStdIn, out string memStdOut, out string memStdErr) {

            memStdOut = String.Empty;

            memStdErr = String.Empty;

 

            int exitCode = 1;

            Process process = new Process();

            StreamWriter streamWriter = null;

            StreamReader streamOutReader = null;

            StreamReader streamErrReader = null;

 

            process.StartInfo.UseShellExecute = false;

            process.StartInfo.WindowStyle = ProcessWindowStyle.Normal;

            process.StartInfo.WorkingDirectory = dashCliDirectory;

            process.StartInfo.RedirectStandardInput = true;

            process.StartInfo.RedirectStandardOutput = true;

            process.StartInfo.RedirectStandardError = true;

            process.StartInfo.FileName = dashCliPath;

            process.StartInfo.Arguments = arguments;

            try {

                process.Start();

                streamOutReader = process.StandardOutput;

                streamWriter = process.StandardInput;

                streamErrReader = process.StandardError;

                streamWriter = process.StandardInput;

                streamWriter.WriteLine(memStdIn);

                streamWriter.Close();

                memStdOut = streamOutReader.ReadToEnd();

                memStdErr = streamErrReader.ReadToEnd();

                process.WaitForExit();

                exitCode = process.ExitCode;

                streamOutReader.Close();

                streamErrReader.Close();

            } catch (Exception) {

                exitCode = -1;

            } finally {

                process.Close();

            }

            return exitCode;

        }

 

Step 6: Call “JiJoExample” function in the “Main” function and surround the call with messages to indicate start and stop of call like so:

            Console.WriteLine("Trying JiJoExample ...");

            JiJoExample();

            Console.WriteLine("JiJoExample done.");

 

The entire code at this stage should look like so:

 

using System;

using System.Diagnostics;

using System.IO;

 

namespace SampleJiJO {

    class Program {

        private static readonly string dashCliDirectory = @"C:\Program Files (x86)\DASH CLI 2.1\bin\";

        private static readonly string dashCliPath = dashCliDirectory + @"dashcli.exe";

        static void Main(string[] args) {

            Console.WriteLine("Trying JiJoExample ...");

            JiJoExample();

            Console.WriteLine("JiJoExample done.");

        }

        static void JiJoExample() {

            string AppPath = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetEntryAssembly().Location) + "\\";

            string inputJsonFile = AppPath + @"input_json.txt";

            string outputJsonFile = AppPath + @"output_json.txt";

            Console.WriteLine("Input File: " + inputJsonFile);

            Console.WriteLine("Output File: " + outputJsonFile);

            string arguments = String.Format("-ji {0} -jo {1}", inputJsonFile, outputJsonFile);

            int returnCode = RunDASHCli(arguments);

            //'outputJsonFile' has the result in JSON format

        }

        static int RunDASHCli(string arguments) {

            string Out, Err;

            return RunDASHCli(arguments, string.Empty, out Out, out Err);

        }

 

        static int RunDASHCli(string arguments, string memStdIn, out string memStdOut, out string memStdErr) {

            memStdOut = String.Empty;

            memStdErr = String.Empty;

 

            int exitCode = 1;

            Process process = new Process();

            StreamWriter streamWriter = null;

            StreamReader streamOutReader = null;

            StreamReader streamErrReader = null;

 

            process.StartInfo.UseShellExecute = false;

            process.StartInfo.WindowStyle = ProcessWindowStyle.Normal;

            process.StartInfo.WorkingDirectory = dashCliDirectory;

            process.StartInfo.RedirectStandardInput = true;

            process.StartInfo.RedirectStandardOutput = true;

            process.StartInfo.RedirectStandardError = true;

            process.StartInfo.FileName = dashCliPath;

            process.StartInfo.Arguments = arguments;

            try {

                bool processStarted = process.Start();

                streamOutReader = process.StandardOutput;

                streamWriter = process.StandardInput;

                streamErrReader = process.StandardError;

                streamWriter = process.StandardInput;

                streamWriter.WriteLine(memStdIn);

                streamWriter.Close();

                memStdOut = streamOutReader.ReadToEnd();

                memStdErr = streamErrReader.ReadToEnd();

                process.WaitForExit();

                exitCode = process.ExitCode;

                streamOutReader.Close();

                streamErrReader.Close();

            } catch (Exception) {

                exitCode = -1;

            } finally {

                process.Close();

            }

            return exitCode;

        }

    }

}

 

Step 7: In step 5, the added function “JiJoExample”, has defined the input JSON File as input_json.txt and output JSON File as output_json.txt. This declaration assumes that input_json.txt is in the same path as the location of the executable. As the default configuration in Visual studio points to Debug folder, please navigate to the debug folder. Upon building the project, the Output window gives the location of the Debug folder.

 

Step 8: Put the following JSON test in input_json.txt file:

 

     {"h":"hp705g4-3","u":"admin","P":"adminPass","Commands":["discover"]}

 

Step 9: Run the “SampleJiJO.exe” application form the console.

 

Step 10: Check the content of the “output_json.txt” file using “type” command on the console

 

In this blog, DASH Discovery is illustrated. Similarly, other DASH profiles can be accessed by the application by framing the required JSON request. See the ‘DASH CLI Developer Guide’ for JSON format for other supported DASH profiles.

 

Attachments:

  1. SampleJDO solution
  2. SampleJIJO solution

 

For any further query, drop a note below or contact via mail dashsupport@amd.com

 

Reference:

  • DASH CLI Developer Guide (Available in DASH CLI installation folder: “C:\Program Files (x86)\DASH CLI 2.1\docs\”)

 

Useful links:

HP 705 G4 EliteDesk supports AMD KVM solution based on DASH. This blog is on enabling KVM on that desktop, and using the feature via AMC (AMD Management Console).

 

The recommended software version for KVM are:

  • BIOS: Q06 Ver. 02.04.01
  • Realtek Ethernet driver: 10.23.1003.2017

This blog outlines the procedure to update the HP DASH system to these software versions.

 

Quick steps:

  1. Download latest BIOS from HP support site.
  2. Install the BIOS image on the DASH system.
  3. Enable DASH option in the BIOS setup.
  4. Verify Ethernet controller driver version and update if required.
  5. Try DASH KVM use-case from AMC or DASH CLI.

 

Note that this blog is on getting KVM working. It assumes DASH is working on the HP 705 G4 DASH system.

 

Step1: Download the latest BIOS:

At the time of writing this document the latest BIOS information is Q06 Ver. 02.04.01:

 

1) Navigate to the URL: https://support.hp.com/in-en/drivers/selfservice/hp-elitedesk-705-g4-microtower-pc/21351257/model/21351258

 

2) Select the OS as Windows and the version as Windows 10 (x64) then click on ‘Change’ Button

image001.png

 

3) From the list of items select the ‘+’ marked against BIOS. This expands the list and shows 3 versions of Bios namely Q05, Q06 and Q09.

image002.png

 

4) Then click on Download against Q06. This downloads the executable sp92135.exe

image003.png

 

Step 2: Install the BIOS image on the Target:

 

Copy the executable (sp92135.exe) to the Target machine. Right click on the executable and run it as administrator.

image004.png

 

This launches the InstallShield Wizard which explains the purpose of the application. Click on the “Next >” button to proceed.

image005.png

 

Read the license agreement thoroughly. Upon agreeing, click on “I accept the terms in the license agreement” option. Then click on the “Next >” button.

image006.png

 

Decide on a suitable location to save the files required for flashing.

image007.png

 

If the folder already exists, it will prompt for an overwrite confirmation. Users can choose to select “Yes to All”, if they are sure that all the files need to be changed.

image008.png

 

After completion of this step, automatically the HP Firmware Upgrade and Recovery application is launched.

Select Update option if you wish to Update the current target machine itself. Then click on the “Next >” button to proceed.

image009.png

 

The screen shows the current version of BIOS running as well as the version the Firmware will be upgraded to. Click on the “Next >” Button to proceed.

image010.png

 

This takes us to the Success screen, that initiates the firmware update process upon clicking “Restart” button.

image011.png

 

Upon restarting, the user is taken to the BIOS screen which mentions the version to which the BIOS is currently being updated to.

 

BIOS Update progress

image012.jpg

 

BIOS Update progress

Then the message “Updating PEIA Region” is shown along with a progress bar.

image013.jpg

 

The user is then prompted to “Please be patient”, till the BIOS Update operation completes.

image014.jpg

 

After this process, the startup screen is shown with the currently running BIOS version. We can see here that the version mentioned as 02.04.01 matches with the update version mentioned before the update.

image015.jpg

 

Step 3: Enable DASH from BIOS:

Restart the system and hit “Esc” button till the system goes into BIOS – startup Menu screen.

image016.png

Click on Bios Setup (F10). This takes us to the Main Tab.

image017.png

Click on the “Advanced” Tab. And click on “System Options”.

image018.png

Look for the option “AMD DASH”. Then ensure that it is ticked.

image019.png

Return to “Main” Tab. Click on “Save Changes and Exit”.

image020.png

This shows the screen confirming with us if we really want to save the changes. Click on “Yes” and continue.

image021.png

 

Step 4: Verify Ethernet Controller Driver Version.

Right Click on the Start Button and Select Device Manager

image022.png

Expand Network Adapters, then right click on Realtek Driver followed by clicking “Properties”

image023.png

Then click on “Driver” Tab and verify the “Driver Version”

VerifyDriverVersion.png

The driver version must be 10.23.1003.2017 or higher. Available at the following link.

 

Note: To get the latest Realtek Ethernet Controller driver, please contact HP Customer Support.

 

The Realtek Dash Client will appear in the tray icon

Realtek Screenshots.PNG

Upon opening the Realtek Client it shows window with current Firmware version and DASH Client Version

Realtek Client Screenshot.png

 

Step 5: Launch KVM from AMC

 

In AMC, 'Discover' the HP DASH System. After the DASH system is listed, click on “BOOT TO BIOS” ribbon icon.

image025.png

 

This launches the window where KVM information is shown. From here click Start to initiate the Boot to BIOS.

image026.png

 

This initiates the system restart Process:

image027.png

 

The HP DASH system boots to the BIOS setup screen and shortly afterwards, AMD VNC Viewer is launched. It redirects the Keyboard, Video and Mouse from HP DASH system on to the VNC viewer.

image028.png

 

Equivalent DASH CLI command:

  • dashcli -h systemname -p 623 -S http -a digest -u Administrator -P DashPassword enumerate kvmredirection
  • dashcli -h systemname -p 623 -S http -a digest -u Administrator -P DashPassword-t kvmredirection[0] startkvm

'startkvm' will launch the VNC viewer.

 

Links:

1) HP 705 G4 product page: https://store.hp.com/us/en/pdp/hp-elitedesk-705-g4-microtower-pc

2) AMC, DASH CLI: http://www.amd.com/DASH

 

Contact us:

Site (www.amd.com/DASH)

Email (dashsupport@amd.com)

The new builds of AMPS, AMC & DASH CLI are available for download. The latest versions are,

  • AMD Management Plugin for SCCM - AMPS 4.1.0.0918
  • AMD Management Console - AMC 3.0.0.0454
  • DASH Command Line Interface - DASH CLI 2.0.0.0536

 

The key features in all of these releases are,

  • KVM Redirection support – with Boot To BIOS screen workflow.
  • Performance tuning and network enhancements to KVM use case
  • Support Windows Server 2016 & latest Windows 10 OS
  • Support DASH CIM Schema 2.48.0

 

The AMPS release has these updates,

  • Support version 1802, 1706, 1702, 1610, 1606, 1602 & 1511 of SCCM

 

AMC release has these updates,

  • Support Windows 10 update 1803

 

DASH CLI release has these new commands,

  • ‘enumerate’ - Show all instances of KVM service
  • ‘show’ - Show information of an instance of KVM Service
  • ‘enable’ - Enable KVM redirection service
  • ‘disable’ - Disable KVM redirection service
  • ‘connect’ - Connect to running VNC server in KVM engine
  • startkvm’ - Boot to BIOS workflow (enable the service, reboot and connect to VNC server)

 

Download link: http://www.amd.com/DASH#downloads

 

Note: Platform and DASH LoM must support KVM profile. Please check with your system vendor for KVM support.

WMI contains an event infrastructure that produces notifications about changes in WMI data and services. WMI event classes provide notification when specific events occur.

User can create a semisynchronous or asynchronous query to monitor changes to event logs, process creation, service status, computer availability or disk drive free space, and other entities or events.

In C++, IWbemServices::ExecNotificationQueryAsync() is used to get the callback in case of event creation/deletion/modification.

 

AMPS (DASHService) uses WMI event registration mechanism to get notified about changes in deployment classes of SCCM. We observed following issues in large scale enterprise infrastructure while using this mechanism :

 

  • WMI Event Registration failed. While registration for change in event for class SMS_ApplicationAssignment,  ExecNotificationQueryAsync() method failed with error code WBEM_E_QUOTA_VIOLATION.

pic.png

  • WMI Event notification not received even if WMI Event registration was successful.Notification query failed with error code WBEM_E_CALL_CANCELLED.

Picture2.png

AMD discussed with Microsoft about the same and filed following bugs for these issues:

https://connect.microsoft.com/ConfigurationManagervnext/feedback/details/3126741/wmi-event-registration-failed

https://connect.microsoft.com/ConfigurationManagervnext/feedback/details/3126744/wmi-event-notification-issue

 

Workaround :We proposes to increase polling memory per user and polling memory total to solve this issue as workaround.

Please refer to below blog to change polling memory settings:

HOW TO CHANGE POLLING MEMORY IN WMI

  1. Go to Start–> run and type wbemtest.exe
  2. Click Connect on the Windows Management Instrumentation Tester
  3. In the namespace text box just enter "root" (without quotes)
    • 1.jpg
  4. Click on Query and run below query :
    • Select * from __ArbitratorConfiguration
    • 2.jpg
  5. Click on __ArbitratorConfiguration=@ and change following parameters :
    • PollingMemoryPerUser = 10000000
    • PollingMemoryTotal = 20000000
    • 3.jpg
  6. Click Save Property
  7. Click Save Object in the Object Editor window
  8. Close the other windows now and exit WMI Tester
  9. Restart the machine.

Change values of following parameters:

PollingMemoryPerUser = 10000000

PollingMemoryTotal = 20000000

A new release of AMD Management Console, AMC 2.5 is now available.

 

AMC is a GUI based DASH manageability application for SMB (small & medium business) environments, capable of monitoring and managing up to 500 DMTF’s DASH-compliant client computer systems.

 

New features in 2.5 release are:

  • Firmware Upgrade on the device  - this feature enables the user to upgrade or downgrade the firmware of a device.
  • Boot text image workflow - text based ISO images can be remotely deployed.
  • Support for Record Log profile - display platform logs of the DASH system.

 

The release note is attached, which provide more information on for this release and also the history of releases.

 

Visit @DASH Home for downloading this software.

A new release of AMD Management Console, AMC 2.0 is now available.

 

AMC is a GUI based DASH manageability application for SMB (small & medium business) environments, capable of monitoring and managing up to 500 DMTF’s DASH-compliant client computer systems.

 

New features in 2.0 release are:

  • Demo mode, with the capability to work in private & closed networks.
  • Built-in web server to host ISO images to support USB redirection feature.
  • Support for Windows 8.1, Windows 10.
  • Various bug fixes.

 

Release note is attached, which provide more information on for this release and also the history of releases. AMC User guide is also attached, which provides information on all the features and their usage in AMC 2.0.

 

Visit @DASH Home for downloading this software.

A new release of AMD Management Plugin for SCCM, AMPS 3.0 is now available.

AMPS is a product that extends Microsoft System Center Configuration Manager 2012 to manage the desktop and mobile systems, out-of-band, using DASH standards. AMPS is essential part of enterprise IT management.

 

New features in 3.0 release are:

  • Firmware Upgrade on device and collection - Upgrade or downgrade the firmware of a device or on a collection.
  • Schedule DASH tasks on a collection - Power change and firmware upgrade operations.
  • DASH Scheduled Tasks tab - UI screen view all the scheduled DASH tasks.
  • "All AMPS Status Messages" Status Message Queries - Enable user to view all status messages related to AMPS.
  • New groupings of DASH systems:
    • All DASH Capable Systems - contains all DASH systems.
    • All DASH Managed Systems - contains all manageable DASH systems, that is, DASH systems that are provisioned with working credentials.
    • All DASH Unmanaged Systems - contains all unmanageable DASH Systems, that is, those DASH systems which do not have working credentials.
  • Reporting - Generate Configuration Manager style reports for DASH actions

 

Release notes is attached, which provide more information on for this release and also the history of releases. AMPS User guide is also attached, which provides information on all the features and their usage in AMPS 3.0.

Visit @DASH Home for downloading this software.

 

Related blogs:

Firmware Upgrade in AMPS 3.0 - Detail steps on performing firmware upgrade

DASH User Action Report - Steps on generating report on DASH related actions performed by AMPS users

pooja_kuntal

DASH User Action Report

Posted by pooja_kuntal Employee Apr 6, 2016

DASH User Action Report helps user to accumulate and organize all DASH activities along with details of user.

This report is enabled with AMPS 3.0 release.

 

 

SCCM users can generate this report by following below steps :

  • Expand Monitoring node and select overview and then Reporting.
  • Click on ‘Report Manager’ Link .

 

 

  • And click on “ConfigMgr_<siteCode>” Folder . Create a new Folder named “DASH Reports”.

 

  • Expand Reporting node and click on Report and select ‘Create Report’ and provide the name of report as ‘DASH User Action Report’ and path as ‘DASH Reports’ in Create Report Wizard. Select close on Create Report Wizard and Report builder will start where user can create the report query and its parameter.

 

 

 

  • Creating DataSets:
    • Create a new dataset. Click on ‘Add DataSet’.Rename the name as ‘DASHUserActionLogs’ and select “Use a dataset embedded in my report” and select the Datasource from dropdown menu. Select ‘Query Type’ as Text and place the below query in “Query” text box.

SELECT [ComputerName0],[Creation_Date0],[EventDetails0],[RecordID0],[Severity0],[SiteCode0],[Username0] FROM[CM_<site Code>].[dbo].[v_R_DASHUserActionLogs_2_0_0] WHERE ( (@Severity = 0) OR (@Severity = 1 AND Severity0 = 'Informational') OR (@Severity = 2 AND Severity0 = 'Warning') OR (@Severity = 3 AND Severity0 = 'Error') )AND Username0 = @Login AND ( (@DateRange = 0) OR (@DateRange = 1 AND Creation_Date0  >= DATEADD(dd,DATEDIFF(dd,0,GETDATE()),0)) OR (@DateRange = 2 AND Creation_Date0  >= DATEADD(dd,DATEDIFF(dd,0,GETDATE())-30,0)) OR (@DateRange = 3 AND Creation_Date0 >= DATEADD(dd,DATEDIFF(dd,0,GETDATE())-90,0)) OR (@DateRange = 4 AND Creation_Date0 >= DATEADD(dd,DATEDIFF(dd,0,GETDATE())-365,0)) )

 

 

    • Create a new dataset. Click on ‘Add DataSet’. Rename the name as ‘Users’ and select “Use a dataset embedded in my report” and select the Datasource from dropdown menu. Select ‘Query Type’ as Text and place the following query in “Query” text box.

SELECT DISTINCT[LogonName] FROM [CM_<siteCode>].[dbo].[v_Admins]

 

 

  • Creating Parameters:

@Login:

    • Expand the parameters and delete default parameters.
    • Click on “Add Parameters…”
    • Provide name as “Login” and prompt as “Users”
    • Click on Available values and select ‘Get values from query’. Select Dataset as Users (created in step 8) and ‘value field’ and ‘label field’ as “logonname”.

 

 

@Severity:

    • Click on “Add Parameters…”
    • Provide name as “Severity” and prompt as “Severity”
    • Click on Available values and select “Specific Values” and specify following pair of  values :

Label

Value

<All Values>

0

Informational

1

Warning

2

Error

3

 

 

@DateRange:

    • Click on “Add Parameters…”
    • Provide name as “DateRange” and prompt as “Date Range”
    • Click on Available values and select “Specific Values” and specify following pair of  values:

Label

Value

<All Values>

0

During Today

1

During Last 30 Days

2

During Last 90 Days

3

During Last 365 Days

4

 

  • Click on Table or Matrix option from center pane of Report Builder and select the dataset ‘DASHUserActionLogs’ created in step 5. Select all columns for final report and rename the header of selected columns as below:

[Creation_Date0] - > Date Time (UTC)

[Username0] -> Modified By

[Severity0] - > Severity

[EventDetails0] -> Event Details

[SiteCode0] -> Site Code

[ComputerName0] -> Resource Name

[RecordID0] -> Record Id.

Design header of the report and description like SCCM reports.

 

 

  • Save the report.
  • Expand DASH Category under Report Node and select ‘DASH User Action Report’ and run the report.

  • Report will prompt user to select user from “Users” dropdown, select severity from “Severity” drop down and select a date range from “Date Range” drop down.

 

Note : Replace <siteCode> to appropriate sitecode.

vibs

Firmware Upgrade in AMPS 3.0

Posted by vibs Employee Apr 6, 2016

Firmware Upgrade feature is introduced in AMPS 3.0. It is based on DMTF's DASH standard specification, 'software update profile'. Firmware Upgrade feature enables the IT Administrator to perform installation and update of BIOS, firmware, drivers and related software on a managed system.  Please check with your OEM support, to find the software modules enabled for firmware upgrade. This blog demonstrates Firmware Upgrade for Broadcom's Gigabit Ethernet client controller, BCM5762.

Here is the overview of using this feature:

[A] Host firmware versions on web server

Setup a web-server and copy the firmware software modules.  These firmware must be accessible at the manged system. Figure 1 illustrates the firmware modules for BCM5762.

1.png

Figure 1, Web server hosting firmware

 

[B] Save URLs in AMPS firmware list

 

In the Configuration Manager console, navigate to Assets and Compliance\Overview\Devices\All DASH Managed Systems. Select any DASH system and in DASH tab, click 'Firmware Upgrade'.

 

2.PNG

Figure 2, Firmware Upgrade icon in Configuration Manager console

 

Firmware Upgrade window opens with empty URL list if the URLs were not saved before. Click on '+' to add new URLs. After adding all URLs, save them using 'Save' button.

 

3.PNG

Figure 3, Adding URLs

 

After saving, the URLs will be listed as shown in Figure 4.

 

4.PNG

Figure 4, URL List

 

 

[C] Start Firmware Upgrade

 

In the Firmware Upgrade window, select software module. The current version of that software module is displayed below it. In this example, 'Management Controller Firmware' is selected and version of it is 3.04.01.

 

5.PNG

Figure 5, Firmware Selection

 

In this example, we will upgrade from 3.04 to 3.05. Version 3.05 is selected in the URL list and 'Apply' button is clicked to start Firmware Upgrade process. After few minutes, Firmware Upgrade will be completed and success message is displayed, as shown in Figure 6.

 

6.PNG

Figure 6, Firmware Upgrade Success

 

[D] Verify

 

To check whether the upgrade was successful, you can query the current version of the  software module by opening 'Firmware Upgrade' window.  In Figure 7, the version is '3.05.03', which means Firmware Upgrade was successful from 3.04 to 3.05.

 

7.PNG

Figure 7, Software Module Version

 

In case of management controller firmware, you also check the version in 'Discovery' window.

 

8.PNG

Figure 8, Management Controller Firmware version

 

[E] Collection

 

Firmware Upgrade can be done on collection. Open 'Firmware Upgrade' on a collection, select the new URL and apply. You can also schedule the upgrade at a later time.

 

9.PNG

Figure 9, Firmware Upgrade on Collection

 

References:

 

  1. DASH Home: http://developer.amd.com/tools-and-sdks/cpu-development/tools-for-dmtf-dash/
  2. Software Update Profile: Software Update Profile | DMTF

A new release of AMD Management Plugin for SCCM, AMPS 2.5 is now available.

AMPS is a product that extends Microsoft System Center Configuration Manager 2012 to manage the desktop and mobile systems, out-of-band, using DASH standards. AMPS is essential part of enterprise IT management.

 

New features in 2.5 release are:

  • Boot text image feature – text based ISO images can be remotely deployed. Multiple DASH tasks are combined into a workflow to accomplish the deployment task.
  • Performance enhancements to handle large number of devices in a collection - DASH tasks can be run on maximum supported clients by the Configuration Manager 2012 R2.

 

Check the attached release notes for more information and visit DASH Home for downloading this software.

 

Important links:

A new release of AMD Management Plugin for SCCM, AMPS 2.3 is now available.

AMPS is a product that extends Microsoft System Center Configuration Manager 2012 to manage the desktop and mobile systems, out-of-band, using DASH standards. AMPS is essential part of enterprise IT management.

 

New features in 2.3 release are:

  • DMTF DASH 1.2 compliance
    • Record Log
    • Service Processor
  • Role based administration supported for DASH operations
  • Enhancements to power operations on collections
  • Dash wake-up support for software updates & deployments

Check the attached release notes for more information and visit DASH Home for downloading this software.

 

Important links:

This post will illustrate how DASH option can be enabled on fresh HP 6305 system and later provisioned for access from management consoles.

 

HP 6305 comes with Broadcom 5761 ethernet controller. DASH management option must be enabled in BIOS and required software must be installed on Windows OS. Let us start with changes in BIOS.

 

[A] BIOS Changes

DASH Management option must be enabled in the BIOS. To confirm, goto BIOS\Advanced, select and enter Management Operations

100-BIOS-DASH_Option.jpg

In the Management Operations, these options must be enabled

  • DASH Support
  • DASH Console Redirection.

Press F10 to save the changes and exit BIOS.

200-BIOS-DASH-Enable.jpg

Note: You could request the OEM (HP in this case) to have these options enabled by default in factory BIOS.


[B] Microsoft Windows Changes

This post illustrates the changes to be made on Windows OS. For other OS, check either HP or Broadcom documentation.

 

(1) Network Driver

Boot to Windows OS. The recommended network driver version is 16.6.0.4b or above. To confirm the driver version, goto 'Control Panel\All Control Panel Items\System', open 'Device Manager', expand 'Network adapters', right click on 'Broadcom NetXTreme Gigabit Ethernet Plus' adapter and select 'Properties'. In the driver tab, verify the 'Driver Version'.

300-Broadcom-Driver-version.jpg

In case the driver version is old, to get the latest driver, download Broadcom's 'NetXtreme Software Kit' version 16.6.4.1 or highrer. Extract the archive, go to the folder 'B57HPCD-DT-v16.6.4.1/MgmtApps/x64' and run,

setup /s /v /qn

This option will install the required driver and the software required for DASH management.

Note: Broadcom NetXtreme Software Kit can be obtained from either HP support or Broadcom support site.

500-NetXtreme-Package-Version.jpg

 

(2) Broadcom Management Agent

Open 'Control Panel\All Control Panel Items\Administrative Tools\Services' windows and ensure status of 'Broadcom Management Agent' is 'Running'. If it is not running, check if 'Broadcom NetXtreme Software Kit' version is right and is correctly installed.

400-Broadcom-Agent-Service.jpg

(3) Broadcom WMI namespaces

This is additional verification step. Goto Start\Run, enter 'wbemtest' and click OK. In the window, Connect to  'root\BrcmBnxNs' namespace and verify if connect is successful. If connect fails, check if 'Broadcom NetXtreme Software Kit' version is right and is correctly installed.

600-WMI-Test.jpg

Note: You could add the right version of Broadcom NetXtreme Software Kit to your organization's OS image.


Once these settings are in place, HP 6305 can be provisioned either locally or remotely using DASHConfig tool. Checkout the detailed usage of DASHConfig here - How to use AMD DASHConfig tool to provision DASH capable targets

 

(4) Quick steps using DASHConfig

DASHConfig is packaged with AMPS (AMD Management Plugin for SCCM), AMC (AMD Management Console) and DASHCli. These tools can downloaded from http://www.amd.com/DASH

1) In the DASHConfig folder, edit the 'DASHConfigExample.xml' file. Fill in digest credentials or active directory settings and save the file.

2) On the HP 6305 DASH system, from the Command-Prompt, go to the DASHConfig folder and run the command,  "DASHConfig.exe –xf:DASHConfigExample.xml -lf:DASHProvision.log"

 

HP 6305 will be provisioned. Now the system can be discovered and managed by any Management Console which supports DASH.

 

Resources: