Sdílet prostřednictvím


Úlohy služby WMI: Soubory a složky

Úlohy rozhraní WMI pro soubory a složky mění vlastnosti souborů nebo složek prostřednictvím rozhraní WMI, včetně vytvoření sdílené složky nebo přejmenování souboru. Pokud chcete zkopírovat soubor nebo číst a zapisovat soubor, nejjednodušší způsob je použít Windows Script Host FileSystemObject místo rozhraní WMI. Další příklady najdete v části Soubory a složkyTechNet ScriptCenter .

CIM_DataFile je jednou z několika tříd CIM ve službě WMI, která je implementovaná. Vyhněte se vytváření výčtů nebo dotazování pro všechny instance CIM_DataFile v počítači, protože objem dat pravděpodobně ovlivní výkon nebo způsobí, že počítač přestane reagovat.

Příklady skriptů uvedené v tomto tématu získávají data pouze z místního počítače. Další informace o tom, jak pomocí skriptu získat data ze vzdálených počítačů, naleznete v tématu Připojení k rozhraní WMI na vzdáleném počítači.

Následující postup popisuje, jak spustit skript.

Spuštění skriptu

  1. Zkopírujte kód a uložte ho do souboru s příponou .vbs, například název_souboru.vbs. Ujistěte se, že textový editor nepřidá do souboru .txt příponu.
  2. Otevřete okno příkazového řádku a přejděte do adresáře, do kterého jste soubor uložili.
  3. Na příkazovém řádku zadejte cscript filename.vbs.
  4. Pokud nemáte přístup k protokolu událostí, zkontrolujte, jestli používáte příkazový řádek se zvýšenými oprávněními. Některé protokoly událostí, jako je protokol událostí zabezpečení, můžou být chráněné řízením uživatelských přístupů (UAC).

Poznámka

Ve výchozím nastavení cscript zobrazí výstup skriptu v okně příkazového řádku. Vzhledem k tomu, že skripty rozhraní WMI můžou vytvářet velké objemy výstupu, můžete chtít výstup přesměrovat na soubor. Na příkazovém řádku zadejte cscript filename.vbs > outfile.txt a přesměrujte výstup skriptu název_souboru.vbs do outfile.txt.

Následující tabulka uvádí příklady skriptů, které lze použít k získání různých typů dat z místního počítače.

Jak můžu... Třídy nebo metody služby WMI
... přejmenovat soubor bez zobrazení chybové zprávy? Použijte třídu CIM_DataFile. Při volání metody Rename nezapomeňte předat celý název cesty, například "C:\Scripts\Test.txt" místo "Text.txt". U PowerShellu může být použití CIM_DataFile neefektivní. Proto můžete jednoduše použít Rename-Item rutinu.
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
... zjistěte, jestli mají uživatelé .MP3 soubory uložené na svém počítači?

Použijte třídu CIM_DataFile a vyberte soubory pomocí následujícího WQLklauzule WHERE: Where Extension = "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
... chcete vytvořit sdílené složky v počítači?

Použijte třídu Win32_Share a metodu Create.

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.")

... chcete zkopírovat složku?

Použijte třídu Win32_Directory a metodu Copy. Pro PowerShell můžete jednoduše použít rutinu 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
... přesunout složku?

Použijte třídu Win32_Directory a metodu Rename. Pro PowerShell můžete jednoduše použít rutinu 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

úlohy rozhraní WMI pro skripty a aplikace

příklady aplikací jazyka WMI C++

TechNet ScriptCenter

`