esxcli @v5

Hello Luke,.

Can you please fix? Furthermore, default psp where? can you pls add that in it?

SE connect-VIServer-Server "vcenterserver" - User "username-password"Password"
$report = @)
$vmhosts = get-vmhost
Disconnect-VIServer-Server "vcenterserver" - confirm: $false
{foreach ($esx to $vmhosts)
SE connect-VIServer-Server $esx.name - user 'root' - password "Password".
$esxcli = get-EsxCli - VMHost $esx.name
$report += $esxcli.storage.nmp.device.list () |
Select-Object - property @{"Name" = 'ESXName'; {'Expression' = {$esx.name}}, device, DeviceDisplayName, PathSelectionPolicy, StorageArrayType
Disconnect-VIServer-Server $esx.name - confirm: $false
}
$report | Export Csv - UseCulture - c:\nmpsonlist.csv NoTypeInformation

Thank you

With PowerCLI 5.x, you don't have to connect directly to the ESXi servers more.

Connect-VIServer -Server 'vcenterserver' -User 'user' -Password 'Password' $report = @()
$vmhosts = Get-VMHost foreach($esx in $vmhosts){
  $esxcli = Get-EsxCli -VMHost $esx -ErrorAction SilentlyContinue  if($esxcli){
    $report += $esxcli.storage.nmp.device.list() |    Select-Object -Property @{"Name" = "ESXName"; "Expression" = {$esx.name}},    Device, DeviceDisplayName, PathSelectionPolicy, StorageArrayType  }
}
$report | Export-Csv c:\nmpsonlist.csv -UseCulture -NoTypeInformation

Are you getting errors? You can show them?

Tags: VMware

Similar Questions

  • Get-ESXCLi

    Hi all

    How to pass a parameter m (as shown below) in a get-esxci command.  Basically I want a powercli oneliner to list queudeph for qlogic

    the list module for the esxcli m pilot system parameters

    $esxcli.system.module.parameters.list (?)

    Thank you!

    Take a look at Get-EsxCli on steroids and How to use ESXCLI in PowerCLI

    Explain in detail how to use the Get-EsxCli cmdlet.

    You can get the modules by

    $esxcli.system.module.list)

    Once you have the module you do for example (name of the module as a parameter)

    $esxcli.system.module.parameters.list ('nmp')

  • vShield Endpoint install via POWERCLI or ESXCLI?

    Hello

    I have to install vShield Endpoint on 100s of hosts, but I can't find a way to automate this. Are there esxcli/powercli cmdlets for this?

    Thanks in advance

    Check if help: http://www.virtu-al.net/2011/09/30/automated-install-of-vshield-services/

  • esxcli of vCO using PowerShell plugin

    Hello

    I tried to come up with a workflow to run esxicli on an ESXi host commands, I am aware of the different solutions out there including one that uses the vMA as an SSH server, but I would like to give it a try with the plugin from PowerShell. So far, I can connect the vCenter, get the crowd and not even the subject of esxcli by using different examples already on the PowerShell plugin library.

    But my problem is that after I get the object esxcli is on the PowerShellRemotePSObject format and I don't know how to work with it.

    var sess;
    try {
      sess = host.openSession()
      sess.addCommandFromString("Add-PSSnapin VMware.VimAutomation.Core -ErrorAction  SilentlyContinue");
      var invResult = sess.invokePipeline();
      //Show result
      System.log( invResult.getHostOutput() );
      sess.addCommandFromString('Connect-VIServer '+vcenter+' -User user@domain -Password "passw0rd" -Force');
      var invResult = sess.invokePipeline();
      //Show result
      System.log( invResult.getHostOutput() );
      // Get PowerShellRemotePSObject
      sess.addCommandFromString('Get-VMHost -Name '+esxi+' -Server '+vcenter);
      var invResult = sess.invokePipeline();
      //Show result
      System.log( invResult.getHostOutput() );
      var psObject = invResult.getResults();
      if (invResult.invocationState  == 'Failed'){
      System.error(invResult.getErrors());
      }
      else {
      var cmd = sess.addCommandFromString('Get-EsxCli')
      cmd.addParameter('Server', vcenter);
      cmd.addParameter('VMHost', psObject);
      var sessionId = sess.getSessionId();
      var esxcli = System.getModule("com.vmware.library.powershell").invokeCommand(host,sessionId);
      System.log(esxcli);
      }
    
    
    } catch ( ex ) {
      System.log (ex);
    } finally {
      if (sess) {
      host.closeSession( sess.getSessionId());
      }
    }
    
    
    

    The esxcli object is accessible as $esxcli.software.vib.list () in PowerShell I don't know how to use the PowerShellPSObject to access information or execute methods on it.

    Any help is appreciated.

    Thank you

    Juan.

    Hi Juan,

    I'm not sure you can call methods from PowerShellPsObjects returned by VCO.  In the meantime, they were serialzed in XML format from the PowerShell script then resérialisé in VCO.  I'm sure that you lose all methods when this happens.

    What I've done for similar purposes, use the WF model who calls a PowerShell script externally.  I put all my my logical calls and method in the external PoSH script and at the end pass back the final results to the VCO.  I'm much better with PoSH as VCO, so I put as much intelligence in the PoSH as possible.

  • VMA new v6 Server Error (s) runs a command ESXCLI: connection failed. Digital fingerprint SHA1 of the server (not approved)

    New Server v6 of vMA. Added two new ESXi hosts v6 at the VMAs with no problems. When I change the target to one of these new hosts and try to run "esxcli system syslog recharge", I get the error: failed to connect . (Untrusted) Server SHA1 thumbprint [thumb print listed here] .

    Research tells me what to do if I get this error running and order ESXCLI on my PC, but nothing when it arrives at the VMAs.

    Any help is appreciated people - thank you!

    Me am I say - READ THE MANUAL/RELEASE NOTES

    vMA 6.0 Release Notes

    • ESXCLI command displays SSH fingerprint error

      When you run a command ESXCLI in each target ESX, footprint SSH error appears. Add the footprint against each target ESX using the credstore_admin.pl utility. Run the following command:

      /usr/lib/VMware-VCLI/apps/General/credstore_admin.pl add s ServerName> imprintt >

      where: servername is the name of target ESX and Thumbprint is the value that is received in error during the execution of the command esxcli .

      For example:

      VI-admin@sin2-Pek-esxplatdhcp156 :/> Add sin2-pek - esxplatdhcp211.eng.vmware.com - s /usr/lib/vmware-vcli/apps/general/credstore_admin.pl t E2:FA:96:09:FC:18:C8:19:07:3F:78:12:74:46:66:1E:C8:3 B: 84:8 C

      VI-admin@sin2-Pek-esxplatdhcp156 :/> /usr/lib/vmware-vcli/apps/general/credstore_admin.pl add s 10.111.8.211 t E2:FA:96:09:FC:18:C8:19:07:3F:78:12:74:46:66:1E:C8:3 B: 84:8 C

      This problem has been resolved in this release.

    All better.

  • Problem with the release of setting in the form using get-esxcli

    Hello... I tried to format information obtained using get-esxcli.  According to me, the question is to do with the default value fit for the typpe of info I receive.  Instead of get 3 columns, with one row for each parameter name and its configured default information /, I get the following... Name                                          Default                                        Configured                                    ----                                          -------                                        ----------                                    {acpiDbgLevel, allowNonNX, auditMode, autoC... {0, FALSE, FALSE, TRUE,...}                    {0, FALSE, FALSE, TRUE,...} Is anyone able to help out how I can change the formatting to what I was... Here's the code... function get-55HOSTAdvancedSettings ($vmobj) {$55HOSTAdvancedSettingsreport = @ () ForEach ($esxhost in $vmobj) {$settings = (get-esxcli - vmhost $esxhost).system.settings.kernel.list ($false) $row = "" |}} Select-Object Name, by default, configured $row. Name = $settings. Name $row. Default = $settings. Default $row. Set $settings =. {Set $55HOSTAdvancedSettingsreport += $row} if ($OutputToCSV) {$55HOSTAdvancedSettingsreport |} {Export-Csv - NoTypeInformation - UseCulture-path $CSVOutput - Append} else {Write-output $55HOSTAdvancedSettingsreport}} thanks in advance

    With

    $esxcli.system.settings.kernel.list () | FT - AutoSize

    I get the result in three columns.

  • Mower esxcli the values that are returned in Powercli

    Hi guys,.

    Has anyone managed to adjust the value returned when executing esxcli via powershell

    For example

    $myhost = get-vmhost-name esx01

    $esxcli = get-EsxCli - VMHost $myhost

    $esxcli.system.coredump.network.get () | FT Enabled

    Capture.JPG

    I'm looking for Trim the true -Enabled - to output html.

    Capture.JPG

    Any idea?

    Concerning

    Cliff

    Not sure I have the question, but the output of the Get-EsxCli commands are objects.

    You can not just do?

    $myhost = get-vmhost-name esx01

    $esxcli = get-EsxCli - VMHost $myhost

    $enabled = $esxcli.system.coredump.network.get () | -ExpandProperty allowed to select

  • Remove the vFlash via esxcli configuration?

    For some reason any my SSD containing a vflash crashed. I replaced, but I can't add capacity. When I click "add" and select the SSD, the job starts, but no capacity is shown and capacity settings are grayed out. I already rebooted but cannot get this to work more. Is it possible to delete old/orphaned vflash via esxcli configurations?

    OK, solved. Using SSH, I discovered that both GPT tables were corrupted on the SSD. I used partedUtil mklabel GPT to create a new label. Then I added the SSD as a flash storage device and voila, it worked.

  • esxi Update using esxcli.software.vib.install

    Hello

    I need to update 100 Esxi 5.x build 5.1_update03 bed and breakfast

    Tried the steps below

    file "update - from - esxi5.1 - 5.1_update03.zip ' 1) sent to all hosts datastore - with a script.

    (2) has tried to install SSH to a host as the command below, it works perfectly.

    software esxcli vib install d ' / vmfs/volumes/Datastore/DirectoryName/PatchName.zip '.

    But I failed using powercli, can someone correct me the code below.

    Code used:

    $hosts = Get-VMHost 10.50.37.31
    
    foreach($vihost in $hosts){
    
     $uuid=$vihost |Get-Datastore |?{$_.ExtensionData.Summary.MultipleHostAccess -eq $false} |select -First 1|Select @{n="UUID"; e={$_.ExtensionData.Info.Vmfs.Uuid}}
    
      $esxcli = get-vmhost $vihost | Get-EsxCli
    
    $esxcli.software.vib.install("/vmfs/volumes/$uuid/update-from-esxi5.1-5.1_update03.zip",$false,$true,$true,$false,$false)
    
    #$esxcli.software.vib.install($null,$false,$false,$false,$false,$true,$null,$null,'/vmfs/volumes/$uuid/update-from-esxi5.1-5.1_update03.zip')
    
     #$esxcli.software.vib.update($null,$false,$false,$false,$false,$true,$null,$null,"/vmfs/volumes/*datastore*/scsi-fnic-1.6.0.5-1OEM.500.0.0.472560.x86_64.vib")
    
    }
    
    
    
    
    
    
    
    

    Error:

    Message: [MetadataDownloadError];

    InnerText: [MetadataDownloadError] able to download no deposit to

    zip:/vmfs/volumes/@{UUID=514f1a00-17e89090-4207-e41f1390d694}/update-from-esxi5.1-5.1_update03.zip?index.XML, jump

    (('zip:/vmfs/volumes/@{UUID=514f1a00-17e89090-4207-e41f1390d694}/update-from-esxi5.1-5.1_update03.zip?index.xml', '', "erreur extraction))

    the index. XML /vmfs/volumes/@{UUID=514f1a00-17e89090-4207-e41f1390d694}/update-from-esxi5.1-5.1_update03.zip: [Errno 2] no files or

    (("Directory:" / vmfs/volumes/@{UUID=514f1a00-17e89090-4207-e41f1390d694}/update-from-esxi5.1-5.1_update03.zip "")) url =

    zip:/vmfs/volumes/@{UUID=514f1a00-17e89090-4207-e41f1390d694}/update-from-esxi5.1-5.1_update03.zip?index.XML, check the log file

    For more details. EsxCLI.CLIFault.summary

    C:\Program Files\VMware\Infrastructure\vSphere PowerCLI\vibinstall.ps1:16 tank: 3

    + $esxcli.software.vib.install ("/ vmfs/volumes/$uuid/update-from-esxi5.1-5.1_upda...")

    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    + CategoryInfo: OperationStopped: (:)) [], ViError)

    + FullyQualifiedErrorId: VMware.VimAutomation.Sdk.Types.V1.ErrorHandling.VimException.ViError

    ======================================

    Message: [VibDownloadError];

    InnerText: [VibDownloadError] ('/ vmfs/volumes/$uuid/update-from-esxi5.1-5.1_update03.zip', "," [Errno 4] IOError: urlopen error [Errno 2] ")

    (' No such file or directory: "/ vmfs/volumes/$uuid/update-from-esxi5.1-5.1_update03.zip" > ") url =

    /vmfs/volumes/$UUID/update-from-esxi5.1-5.1_update03.zip please see the log file for more details. EsxCLI.CLIFault.summary

    C:\Program Files\VMware\Infrastructure\vSphere PowerCLI\vibinstall.ps1:18 tank: 3

    + $esxcli.software.vib.install ($null $false, $false, $false, $false, $true, $null, $nu...

    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    + CategoryInfo: OperationStopped: (:)) [], ViError)

    + FullyQualifiedErrorId: VMware.VimAutomation.Sdk.Types.V1.ErrorHandling.VimException.ViError

    There is the -force or f switch, see the documentation:

    https://pubs.VMware.com/vSphere-50/index.jsp?topic=%2Fcom.VMware.VCLI.ref.doc_50%2Fesxcli_software.html

    The syntax should look like this:

    $esxcli.software.vib.update (deposit of string [], boolean dryrun, Boolean force, Boolean maintenancemode, boolean noliveinstall, Boolean nosigcheck, string, string [] vibname, string [] viburl proxy)

    You did: $esxcli.software.vib.install("/vmfs/volumes/$uuid/update-from-esxi5.1-5.1_update03.zip",$false,$true,$true,$false,$false)

    In terms of shell of ESXi this translates to force and ignore the requirement of maintenance mode, which are not recommended:

    esxcli vib software install - /vmfs/volumes/$uuid/update-from-esxi5.1-5.1_update03.zip--force--mode maintenance depot

    What you should do though is just to enter maintenance mode and run:

    update of vib software esxcli - /vmfs/volumes/$uuid/update-from-esxi5.1-5.1_update03.zip deposit

    So the PowerCLI command should look like this: (again once, remember to put the host in maintenance mode before that):

    $esxcli.software.vib.update("/vmfs/volumes/$uuid/update-from-esxi5.1-5.1_update03.zip",$false,$false,$false,$false,$false,$null,$null,$null)

    By omitting all other parameters not specified may work too.

    Note: flags or behavior could have evolved in esxcli between different versions. Compare versions of ESXi host where it works and where it is not and see what options, one esxcli update software vib expected. If this causes errors

  • export esxcli o/p for each server in xls

    $hosts = get-Cluster prod-cluster | Get-VMHost

    {foreach ($vihost in $hosts)

    $esxcli = get-vmhost $vihost | Get-EsxCli

    $esxcli.storage.nmp.satp.list)

    }

    In the above code I want to o/p to export to a csv file. I also have title of hostname esxi in it. Can help you, please fix the code?

    Try like this

    $hosts = get-Cluster prod-cluster | Get-VMHost

    & {{foreach ($vihost in $hosts)

    $esxcli = get-vmhost $vihost | Get-EsxCli

    $esxcli.storage.nmp.satp.list () |

    Select @{N = 'ESXi'; E = {$vihost. Name}}, DefaultPSP, Description, name

    }} | Export Csv report.csv - NoTypeInformation - UseCulture

  • Getting WWN's for all adapters of storage with ESXCLI

    Is there a command to ESXcli to get all the WWN on all HBAs currently installed on an ESXi host and output to the screen?

    Thank you

    Here you go,

    ~ list adapter base storage esxcli # | grep-i CF | AWK '{print $4} '.

    FC.200018a99b4cXXXX:200118a99b4cXXXX

    FC.200018a99b4cXXXX:200218a99b4cXXXX

    Thank you and best regards,

    Shrikant Gavahne

  • esxcli 'not found.

    Hello

    I hope that someone will take pity on a bad Administrator stressed, having inherited an ESXi 5.0.0 build server 623860 and try to install Windows 2012... I know, I know!

    I do not have the Update Manager and I'm trying to patch update 3 via the command interface. I downloaded the update - from - esxi5.0 - 5.0_update03.zip to... [ISO-Storage]/Updates/update-from-esxi5.0-5.0_update03.zip and helped local shell via F2 on the console and SSH.]

    In both cases, it seems to me end up at the basic prompt, with none of the esxi CLI commands...

    ~ # esxcli

    SH: esxcli: not found

    ~ # vicfg - cfgbackup - save myserver.tgz

    SH: vicfg-cfgbackup: not found

    ~ # vicfg - hostops - information on the operation

    SH: vicfg-hostops: not found

    So I downloaded vCLI for windows with about the same amount of success...

    C:\Program Files (x 86) \VMware\VMware vSphere CLI\bin > esxcli - kay - 9 server - use

    List of the preofile sources rname software admin - deposit = [ISO-storage] / updates/upgrades.

    -esxi5.0 - 5.0_update03.zip

    Enter the password:

    Error: Unknown namespace software

    esxcli cannot be used with version 4.0 or newer servers

    In short - I can't find any of these problems on google... help!

    Once again, thank you very much for your time and effort Arun!

    I solved the problem of the esxcli as well. As my login "admin" seems to be a privilege high as I can do, including execution known to the command line, it does not appear to have esxcli permissions. Registration as a works 'root '.

    Therefore, I think have more no problem.

    If anyone has any of these problems...

    (1) make sure that your version of vCLI matches your version of ESXi - vCLI 4.0 does not quite seem to run against 5.0 ESXi.

    (2) If you are 'away' esxcli and vi - cfg on a local console - check your permissions and login as "root".

  • Running Powershell script with ESXCLI commands via a scheduled task in Windows 2012 does not work.

    I'm trying to run a powershell script of a scheduled task in Windows 2012. The script calls the commands ESXCLI and ends with success (exporting to a CSV file) but the file has no data inside.  If I run the script manually without the scheduled task file has all the I expect to exit.

    I wonder if there is a framework with Powershell or a PSSnapin I need to add to the script for it to run via a scheduled task.  Has anyone done this before with the ESXCLI commands?

    panhvr - you may to something.  The process account that I use to run this script has only read-only access in vCenter.  I logged on the server I am running these reports with the process ID and tried to run the script.  He gave me errors indicating permission to perform the operations of esxcli was denied.

    I think we found the culprit!  I'll have this process ID in vCenter rights upward.

    Thank you all!

  • Assistance with the scrip value perpetually bulk bookings using Get-ESXCLi

    I was expecting a little help here. Ive written a script which must on a "Perpetually reserved" lun using Powercli & Get-ESXICli, however when I run the following command locally on a host computer to confirm it worked and LUN are marked respectively, I find that the result is False

    esxli store feature list | grep reserved

    Ive written script is below. IM aware there are easier ways to get the IDs and get hostnames, etc. However im more concerned about the actual action of the script in the creation of the reserve.

    Param(
      $RootCredentials = (Get-Credential)
    )
    
    
    $RDMDisks = ("naa.60002ac0000000000000003e00002b3e","naa.60002ac0000000000000002800002b3e","naa.60002ac0000000000000003f00002b3e","naa.60002ac0000000000000002b00002b3e","naa.60002ac0000000000000002d00002b3e","naa.60002ac0000000000000002f00002b3e","naa.60002ac0000000000000003100002b3e","naa.60002ac0000000000000003500002b3e","naa.60002ac0000000000000003600002b3e","naa.60002ac0000000000000003700002b3e","naa.60002ac0000000000000003800002b3e","naa.60002ac0000000000000003900002b3e","naa.60002ac0000000000000004100002b3e","naa.60002ac0000000000000003b00002b3e","naa.60002ac0000000000000002600002b3e","naa.60002ac0000000000000002700002b3e","naa.60002ac0000000000000002900002b3e","naa.60002ac0000000000000002a00002b3e","naa.60002ac0000000000000002c00002b3e","naa.60002ac0000000000000002e00002b3e","naa.60002ac0000000000000003000002b3e","naa.60002ac0000000000000003300002b3e","naa.60002ac0000000000000004000002b3e","naa.60002ac0000000000000003c00002b3e","naa.60002ac0000000000000003200002b3e","naa.60002ac0000000000000003400002b3e")
    $TargetHosts = ("Server190","Server191","Server192","Server193","Server194","Server195","Server196")
    
    
    
    
    Foreach ($ESXHost in $TargetHosts) {
    
    
    Connect-VIServer $ESXHost -Credential $RootCredentials
    }     
    Start-Sleep -Seconds 3
    Foreach($esxcli in Get-ESXCli) {
                                          Foreach ($ESXHost in $TargetHosts){
                                                          Foreach ($Disk in $RDMDisks) {
                                                                     $esxcli.storage.core.device.setconfig($false, $Disk, $true)
                                                   }
                                       }
                               }
    Foreach ($ESXHost in $TargetHosts) {
    Disconnect-VIServer $ESXHost -Confirm:$false |Out-Null
    }
    

    Thanks in advance for any help.

    To set the flag on all ESXi nodes in a cluster, the script needs a little change

    $vmName = "VMwithRDM"
    
    $vm = Get-VM -Name $vmName$rdm = Get-HardDisk -DiskType rawPhysical -Vm $vm$vmhosts = Get-Cluster -VM $vm | Get-VMHostforeach($esx in $vmhosts){  $esxcli = Get-EsxCli -VMHost $esx  Get-HardDisk -DiskType rawPhysical -Vm $vm | %{    $esxcli.storage.core.device.list($rdm.ScsiCanonicalName) |    Select @{N="Time";E={"{0:g}" -f (Get-Date).TimeOfDay}},Device,IsPerenniallyReserved
    
        $esxcli.storage.core.device.setconfig($false,$rdm.ScsiCanonicalName,$true)
    
        $esxcli.storage.core.device.list($rdm.ScsiCanonicalName) |    Select @{N="Time";E={"{0:g}" -f (Get-Date).TimeOfDay}},Device,IsPerenniallyReserved  }}
    

    The logic is now as follows:

    1. Get the ROW (s) physical connected to the virtual computer (if your RDM is virtual, you will need to change the DiskType, add them both to the setting)
    2. Get all nodes in ESXi cluster where the virtual machine is configured, and then run the codeblock to each node
      1. The current flag of the RDM LUN parameter list
      2. Change the flag
      3. The current flag of the RDM LUN parameter list

    See a few ways to enter code PowerCLI under the new SW forum on how to enter the syntax coloring.

  • Basic use of ESXCLI

    Hi guys,.

    Sorry to be a dummy, but I am really struggling with doing the esxcli in my work environment. I have two PC with installed esxcli. On the Win7 machine I don't know even how to start the CLI and on the Ubuntu machine, I know how to start but I'm struggling with the syntax of the command. Basically, I wanted to try to force a shutdown of a virtual machine on one of our three hosts, but I don't know how to specify the one that I want to connect.

    I started to follow the instructions here: VMware KB: turn off a virtual machine on a host ESXi

    But when I type:

    Esxcli vm process list

    He asks me to specify the host.

    So I tried:

    Esxcli vm 10.3.0.72 process list

    and then she complains about syntax.

    Can you please point me to the right direction?


    I have two 5.5 hosts and a 5.0 host.


    See you soon,.

    Martin

    The syntax you ar using may require you to first ptty/ssh on the server and then run the command.

    If you want to run it remotely you must - Server put it as:

    esxcli - Server 10.0.0.1

  • Methods ESXCLI

    Hello guys,.

    I am totally confused with esxcli things @version 5

    $esxcli = get-esxcli - vmhost $esx

    $esxcli | get-member

    Why can't I see here methods like $esxcli.storage... $esxcli.network... etc.

    I'm really angry about why this part also does not work to list all the devices

    $esxcli . storage.nmp.device.list (): {$_. {StorageArrayType -eq $satp} or

    $esxcli . storage.nmp.device.list ($null) | {$_. {StorageArrayType -eq $satp}

    Thanks in advance,

    The $esxcli object is not you ordinary object, the 'methods' are all codeproperties or codemethods.

    The easiest way is to view all calls that are available to

    $esxcli.esxcli.command.list)

    I don't know what you mean by the 2nd part of your question.

    What you have in the $satp variable?

    If you want to see all devices, why don't leave you on the Where clause?

Maybe you are looking for