Important Notice: On February 29th, this community was put into read-only mode. All existing posts will remain but customers are unable to add new posts or comment on existing. Please feel to join our Community Discord for any questions and discussions.

Docking stations

Can i inventory dell docking stations? we have the Dell WD19130W (USB C) it would be super helpful to be able to track them

0

Comments

3 comments
Date Votes
  • Hopefully you figured this out. I'd probably run the stock "Hardware Devices" report, then find one or two of your laptops that has that dock connected. Then scroll through all the devices detected on that machine, and from their you should be able to pick out something to identify the dock, then build your collections or report from that.  I've done something similar to detect dictation microphones form our inventory. So now i can easily identify machines that have a specific microphone.  So something similar should be able to be done with your dock?

    0
  • PDQ itself doesn't seem to list any specific Dock hardware, nor does Device Manager on the computers.

    But like Chris said, there are often components listed that are only present if a dock is attached.

    For example, if I list all the non-wifi, non-vpn network adapter names, I see that all of our Dell Latitudes have an "Intel Ethernet Connection" of various types, and some also have a "Realtek USB GbE Family Controller.

    On ours, the Intel ones are the onboard ethernet, and the Realtek ones are the docks ethernet port.


    It appears from a quick search that WMI may reveal more specific info, like this one: https://www.dell.com/support/kbdoc/en-us/000126566/windows-how-to-identify-your-dell-docking-station-using-powershell 

    0
  • I've came across this topic during my research to achive something similar but for Lenovo Docks. As this topic is high ranked within search results, I would like to share my solution. Feel free to use it and customize for your needs. But be aware: This is a "quick & dirty" implementation far away from being perfect. If you have a lot of different types of docking-stations you perhaps need to look for another solution. You can copy the script at the end of this text, alter the values for your types of docking-stations and run it as a Powershell-Scanner within PDQ Inventory for example.

    A few notable things about this script:

    • Most Docking-Stations I know will be present as an usb-device within windows device-manager. This is what we query in the script with help of wmi-classes.
    • Another option are displays with a built-in docking-station. There is also a quick & dirty example within the script how you could query that based on the display devices (Lenovo P24h-2L) attached to a notebook.
    • We then go on and compare the returned device-id's with a list of "known" device-ids of our docking-stations and simply return an ps-custom object with a single property (whichs value is the model-name of the docking-station but you can change this to whatever you want)
    • You will have to get an example for each type of docking-station you want to inventorize and copy the Device-ID (from the device which represents your docking-station in device-manager) and add it to the script.
    • Please also note: Don't run this across your whole fleet of devices! There is no sense to run it against desktops for example. You can, just yet another example of course, create a dynamic-collection and filter by the "chassis" prop of the devices within PDQ Inventory (Notebook and Detachable for example) and schedule your powershell-scanner to run only against devices within this collection.
    • As another side note: The script is, as already said, far from beeing perfect. It's a.t.m. more of a "poc" then a great script. I will try to improve it within the next weeks (but I'm not sure if I will have spare time for that) and share it again once I'm finished. Feel free to add your enhancements as a reply to this topic. I will try to catch them up.

     

    The script itself:

    $wmiquery = Get-WmiObject Win32_USBControllerDevice -ErrorAction Stop
    $displays = Get-CimInstance -Namespace root\wmi -ClassName WmiMonitorBasicDisplayParams

    $integrated = $false

    foreach ($display in $displays) {
        if ($display.InstanceName -like "*LEN62B2*") {
            [PSCustomObject]@{
                    DockingStation      = "Lenovo P24h-2L integrated"
            }
        $integrated = $true
        }
    }


    if ($integrated -eq $false) {
        foreach ($entry in $wmiquery) {
            $dependents = [wmi]($entry.Dependent)
            foreach ($dep in $dependents) {
                if ($dep.DeviceID -like "*USB\VID_17EF&PID_A354&MI_00*") {
                    [PSCustomObject]@{
                        DockingStation      = "ThinkPad Hybrid USB-C with USB-A Dock"
                    }
                }elseif ($dep.DeviceId -like "*USB\VID_17EF&PID_30A9&MI_00*") {
                    [PSCustomObject]@{
                        DockingStation      = "ThinkPad Universal USB-C Dock"
                    }
                }else{
                    Write-Verbose "No known docking-station detected"
                }
            }
        }
    }

    What you will get as a result within PDQ Inventory per computer object (within the Powershell-Tab):

     

    Hope this helps anyone who came across the same task :)

    1