ADSM-L

Re: How to find out all drives in NT2000 using command line? Thanks

2005-04-26 16:41:17
Subject: Re: How to find out all drives in NT2000 using command line? Thanks
From: "Frank Tsao, email is tsaof AT sce DOT com" <Frank.Tsao AT SCE DOT COM>
To: ADSM-L AT VM.MARIST DOT EDU
Date: Tue, 26 Apr 2005 13:40:48 -0700
I had talked to several people and found that dumpcfg utility would
generate the data I am looking for.

Thanks for all your help and effort.

Frank Tsao
Frank.Tsao AT sce DOT com
PAX 25803, 626-302-5803
FAX 626-302-7131



             Andrew Raibeck
             <storman AT US DOT IBM.C
             OM>                                                        To
             Sent by: "ADSM:           ADSM-L AT VM.MARIST DOT EDU
             Dist Stor                                                  cc
             Manager"
             <[email protected]                                     Subject
             .EDU>                     Re: How to find out all drives in
                                       NT2000 using command line? Thanks

             04/25/2005 09:16
             AM


             Please respond to
             "ADSM: Dist Stor
                 Manager"
             <[email protected]
                   .EDU>







Hi Frank,

There is no command that I can think of that does this; you'd have to write
a program or script to do it. Here are sample script and C++ program (they
both do the same thing). If these are useful, tailor as you wish.

Regards,

Andy


WMI SCRIPT

' ListDrives.vbs
' Invoke by running
'
'    cscript ListDrives.vbs
'
' from an OS command prompt.
strComputer = "."

set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" _
    & strComputer & "\root\cimv2")

set disks = objWMIService.ExecQuery ("select * from Win32_LogicalDisk")

for each objDisk in disks
   select case objDisk.DriveType
      case 0
         ' I would not normally expect to see this.
         Wscript.Echo objDisk.DeviceID & " Unknown"
      case 1
         Wscript.Echo objDisk.DeviceID & " Invalid root path"
      case 2
         Wscript.Echo objDisk.DeviceID & " Removable"
      case 3
         Wscript.Echo objDisk.DeviceID & " Fixed"
      case 4
         Wscript.Echo objDisk.DeviceID & " Remote"
      case 5
         Wscript.Echo objDisk.DeviceID & " CD-ROM"
      case 6
         Wscript.Echo objDisk.DeviceID & " RAM disk"
      case Else
         ' I would not normally expect to see this.
         Wscript.Echo objDisk.DeviceID & " ??????"
   end select
next




C++ PROGRAM

/*
 ListDrive.cpp

 Compiled with Visual Studio .Net 2003 from an OS prompt as follows:

   cl /GX /Zi /O1 ListDrives.cpp /link /debug
*/
#include <windows.h>
#include <cstdio>
#include <cmath>
#include <iostream>

using namespace std;

int main()
{
   char  driveLetter[] = "*:\\";
   DWORD drives        = GetLogicalDrives();
   DWORD bit           = 0;

   if (!drives)
   {
      cout << "ERROR: GetLogicalDrives() failed with rc "
           << GetLastError() << endl;
      return -1;
   }

   for (int i = 0, bit = 1; i != 26; i++, bit *= 2)
   {
      if (drives & bit)
      {
         cout << char('A' + i) << ": ";
         driveLetter[0] = 'A' + i;

         switch (GetDriveType(driveLetter))
         {
            case DRIVE_UNKNOWN:
               // I would not normally expect to see this.
               cout << "Unknown";
               break;
            case DRIVE_NO_ROOT_DIR:
               cout << "Invalid root path";
               break;
            case DRIVE_REMOVABLE:
               cout << "Removable";
               break;
            case DRIVE_FIXED:
               cout << "Fixed";
               break;
            case DRIVE_REMOTE:
               cout << "Remote";
               break;
            case DRIVE_CDROM:
               cout << "CD-ROM";
               break;
            case DRIVE_RAMDISK:
               cout << "RAM disk";
               break;
            default:
               // I would not normally expect to see this.
               cout << "??????";
               break;
         }   // switch (...)

         cout << endl;
      }   // if (drives & bit)
   }   // for (...)

   cout << endl;

   return 0;
}


Regards,

Andy

Andy Raibeck
IBM Software Group
Tivoli Storage Manager Client Development
Internal Notes e-mail: Andrew Raibeck/Tucson/IBM@IBMUS
Internet e-mail: storman AT us.ibm DOT com

The only dumb question is the one that goes unasked.
The command line is your friend.
"Good enough" is the enemy of excellence.

"ADSM: Dist Stor Manager" <ADSM-L AT VM.MARIST DOT EDU> wrote on 2005-04-22
14:05:23:

> Frank Tsao
> Frank.Tsao AT sce DOT com
> PAX 25803, 626-302-5803
> FAX 626-302-7131[attachment "ListDrives.cpp" deleted by Frank
Tsao/SCE/EIX]

Attachment ListDrives.vbs contains a potentially harmful file type
extension and was removed in accordance with IBM IT content security
practices.

<Prev in Thread] Current Thread [Next in Thread>