Compartir a través de


Tareas WMI: Archivos y Carpetas

Las tareas WMI para archivos y carpetas cambian las propiedades de archivos o carpetas a través de WMI, incluyendo la creación de un recurso compartido o el cambio de nombre de un archivo. Si desea copiar un archivo o leer y escribir un archivo, la forma más sencilla es utilizar el Script Host de Windows FileSystemObject más que WMI. Para otros ejemplos, véase los archivos y carpetas sección del TechNet ScriptCenter.

CIM_DataFile es una de algunas clases CIM en WMI que se ha implementado. Evite enumerar o consultar todas las instancias de CIM_DataFile en un ordenador porque es probable que el volumen de datos afecte al rendimiento o haga que el ordenador deje de responder.

Los ejemplos de script mostrados en este tema obtienen datos sólo del ordenador local. Para obtener más información sobre cómo utilizar el script para obtener datos de ordenadores remotos, consulte Conexión a WMI en un ordenador remoto.

El siguiente procedimiento describe cómo ejecutar un script.

Para ejecutar un script

  1. Copie el código y guárdelo en un archivo con extensión .vbs, por ejemplo filename.vbs. Asegúrese de que su editor de texto no añade la extensión .txt al archivo.
  2. Abra una ventana de símbolo del sistema y vaya al directorio donde guardó el archivo.
  3. Escriba cscript filename.vbs en el símbolo del sistema.
  4. Si no puede acceder a un registro de eventos, compruebe si está ejecutando desde un símbolo del sistema elevado. Algunos Registros de Eventos, como el Registro de Eventos de Seguridad, pueden estar protegidos por Controles de Acceso de Usuario (UAC).

Nota:

Por defecto, cscript muestra la salida de un script en la ventana de símbolo del sistema. Debido a que los scripts WMI pueden producir grandes cantidades de salida, es posible que desee redirigir la salida a un archivo. Escriba cscript filename.vbs > outfile.txt en el símbolo del sistema para redirigir la salida del comando filename.vbs script a outfile.txt.

La siguiente tabla enumera ejemplos de scripts que pueden utilizarse para obtener diversos tipos de datos del ordenador local.

Cómo... Clases o métodos WMI
...¿renombrar un archivo sin recibir un mensaje de error? Use el CIM_DataFile clase. Asegúrese de pasar el nombre completo de la ruta cuando llame a la función Renombrar método, por ejemplo, "C:\Scripts\Test.txt" instead of "Text.txt". Para PowerShell, utilizando CIM_DataFile puede ser ineficaz. Para ello, basta con utilizar el cmdlet Renombrar-elemento.
VB
strComputer = "."
Set objWMIService = GetObject("winmgmts:" & "!\\" & strComputer & "\root\cimv2")
Set colFiles = objWMIService.ExecQuery ("Select * from CIM_DataFile where Name = " & "'c:\\scripts\\toggle_service.vbs'")
For Each objFile in colFiles
    errResult = objFile.Rename("c:\scripts\toggle_service.old")
Next
PowerShell
rename-item c:\scripts\toggle_service.vbs toggle_service.old
...¿determinar si los usuarios tienen archivos .MP3 almacenados en su ordenador?

Use el CIM_DataFile y seleccione los archivos de la siguiente manera WQL DONDE cláusula: Donde Extensión = "MP3".

VB
strComputer = "."
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colFiles = objWMIService.ExecQuery("Select * from CIM_DataFile where Extension = 'mp3'")
For Each objFile in colFiles
    Wscript.Echo "File Name: " & objFile.Name & "." & objFile.Extension
    Wscript.Echo "Path: " & objFile.Path
Next
PowerShell
Get-WmiObject -Class CIM_DataFile -namespace "root\cimv2" -Filter "Extension = 'mp3'" | `
   format-list Name, Extension, Path
...¿crear carpetas compartidas en un ordenador?

Use el Win32_Share clase y el Cree método.

VB
Const FILE_SHARE = 0
Const MAXIMUM_CONNECTIONS = 25
strComputer = "."
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set objNewShare = objWMIService.Get("Win32_Share")
errReturn = objNewShare.Create("C:\Finance", "FinanceShare", FILE_SHARE, MAXIMUM_CONNECTIONS, "Public share for the Finance group.")

PowerShell
$FILE_SHARE = 0 $MAXIMUM_CONNECTIONS = 25 

$NewDir = new-item C:\Finance -type directory $Shares= [WMICLASS]"Win32_Share" [void]$Shares.Create("C:\Finance","FinanceShare", $FILE_SHARE, $MAXIMUM_CONNECTIONS, "Public share for the Finance group.")

...¿copiar una carpeta?

Use el Win32_Directory clase y el Copie método. Para PowerShell, puede utilizar simplemente el cmdlet Copy-Item.

VB
strComputer = "." 
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") 
 
Set colFolders = objWMIService.ExecQuery("Select * from Win32_Directory where Name = 'c:\\Scripts'") 
 
For Each objFolder in colFolders 
    errResults  = objFolder.Copy("D:\Archive") 
Next 
PowerShell
Copy-Item C:\Scripts -Destination D:\Archive -Recurse
...¿mover una carpeta?

Use el Win32_Directory clase y el Renombre método. Para PowerShell, puede utilizar simplemente el cmdlet Move-Item.

VB
strComputer = "." 
Set objWMIService = GetObject("winmgmts:" _ 
    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") 
 
Set colFolders = objWMIService.ExecQuery _ 
    ("Select * from Win32_Directory where name = 'c:\\Scripts'") 
 
For Each objFolder in colFolders 
    errResults = objFolder.Rename("C:\Admins\Documents\Archive\VBScript") 
Next
PowerShell
move-item -path C:\Scripts -destination C:\Admins\Documents\Archive\PowerShell

Tareas para scripts WMI y aplicaciones

WMI C++ Ejemplos de aplicación

TechNet ScriptCenter

`