通过VBScript检测Windows驱动器

通过VBScript检测Windows驱动器,vbscript,drives,Vbscript,Drives,我有一个VBScript,它可以检测本地硬盘驱动器的字母,并将它们存储在某些地方。现在我想从中删除Windows驱动器。我的意思是,它首先查找所有本地硬盘,然后检测windows驱动器并将其从本地硬盘列表中删除,然后将其存储在目标变量中。怎么做 以下是VBScript: strComputer = "." Set objWMIService = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate}!\\" &

我有一个VBScript,它可以检测本地硬盘驱动器的字母,并将它们存储在某些地方。现在我想从中删除Windows驱动器。我的意思是,它首先查找所有本地硬盘,然后检测windows驱动器并将其从本地硬盘列表中删除,然后将其存储在目标变量中。怎么做

以下是VBScript:

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

Set colDisks = objWMIService.ExecQuery _
    ("Select * from Win32_LogicalDisk")

drives = ""
For Each objDisk in colDisks
  if objDisk.DriveType = 3 then
    if drives > "" then
      drives = drives & ";"
    end if
    drives = drives & objDisk.DeviceID & "\"
  end if
Next
谢谢,

我更愿意

  • 使用FSO而不是WMI
  • 将驱动器放在可用的集合中,而不是字符串中
  • 不将系统驱动器放入集合而不是删除 以后再说吧
  • 因此:

    增加:

    我怀疑你自己做不到,但无论如何:

      Dim sSysDrive : sSysDrive = CreateObject( "Scripting.FileSystemObject" ) _
          .GetDriveName(  _
              CreateObject( "WScript.Shell" ).Environment( "PROCESS" )( "SYSTEMROOT" ) )
      Dim strComputer : strComputer = "."
      Dim objWMIService : Set objWMIService = GetObject( "winmgmts:" _
          & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2" )
    
      Dim colDisks
      Set colDisks = objWMIService.ExecQuery("Select * from Win32_LogicalDisk")
    
      Dim drives : drives = ""
      Dim objDisk
      For Each objDisk in colDisks
          If     objDisk.DriveType = 3 _
             And objDisk.DeviceID <> sSysDrive Then
             If drives > "" Then
                drives = drives & ";"
             End If
             drives = drives & objDisk.DeviceID & "\"
          End if
      Next
      WScript.Echo drives
    
    Dim sSysDrive:sSysDrive=CreateObject(“Scripting.FileSystemObject”)_
    .GetDriveName(_
    CreateObject(“WScript.Shell”).Environment(“进程”)(“系统根”))
    Dim strComputer:strComputer=“”
    Dim objWMIService:设置objWMIService=GetObject(“winmgmts:”_
    &“{impersonationLevel=impersonate}!\\”&strComputer&“\root\cimv2”)
    暗色磁盘
    Set colDisks=objWMIService.ExecQuery(“从Win32_LogicalDisk中选择*)
    调暗驱动器:驱动器=“”
    Dim对象磁盘
    对于colDisks中的每个objDisk
    如果objDisk.DriveType=3_
    然后是objDisk.DeviceID sSysDrive
    如果驱动器>则
    驱动器=驱动器&“;”
    如果结束
    驱动器=驱动器&objDisk.DeviceID&“\”
    如果结束
    下一个
    Echo驱动器
    
    sSysDir C:\WINDOWS
    sSysDrive C:
    sSDLetter C
    A 1 Removable
    C 2 Fixed
    E 3 Network
    M 3 Network
    X 2 Fixed
    ------------------
    X 2 Fixed
    
      Dim sSysDrive : sSysDrive = CreateObject( "Scripting.FileSystemObject" ) _
          .GetDriveName(  _
              CreateObject( "WScript.Shell" ).Environment( "PROCESS" )( "SYSTEMROOT" ) )
      Dim strComputer : strComputer = "."
      Dim objWMIService : Set objWMIService = GetObject( "winmgmts:" _
          & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2" )
    
      Dim colDisks
      Set colDisks = objWMIService.ExecQuery("Select * from Win32_LogicalDisk")
    
      Dim drives : drives = ""
      Dim objDisk
      For Each objDisk in colDisks
          If     objDisk.DriveType = 3 _
             And objDisk.DeviceID <> sSysDrive Then
             If drives > "" Then
                drives = drives & ";"
             End If
             drives = drives & objDisk.DeviceID & "\"
          End if
      Next
      WScript.Echo drives