Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Mounts a virtual disk image file in loopback mode.
Syntax
uint32 Mount(
[in] string Path,
[out] CIM_ConcreteJob REF Job
);
Parameters
-
Path [in]
-
Type: string
A fully qualified path that specifies the location of the virtual disk image file.
-
Job [out]
-
Type: CIM_ConcreteJob
A reference to the job, represented by a CIM_ConcreteJob object (can be null if the task is completed).
Return value
Type: uint32
This method can return one of the following values.
| Return code/value | Description |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
[!Note] |
Remarks
Access to the Msvm_ImageManagementService class might be restricted by UAC Filtering. For more information, see User Account Control and WMI.
Examples
The following C# example mounts a virtual disk image file. The referenced utilities can be found in Common Utilities for the Virtualization Samples.
using System;
using System.Management;
namespace HyperVSamples
{
class MountVHD
{
static void Mount(string path)
{
ManagementScope scope = new ManagementScope(@"root\virtualization", null);
ManagementObject imageService = Utility.GetServiceObject(scope, "Msvm_ImageManagementService");
ManagementBaseObject inParams = imageService.GetMethodParameters("Mount");
inParams["Path"] = path;
ManagementBaseObject outParams = imageService.InvokeMethod("Mount", inParams, null);
if ((UInt32)outParams["ReturnValue"] == ReturnCode.Started)
{
if (Utility.JobCompleted(outParams, scope))
{
Console.WriteLine("{0} was mounted successfully.", inParams["Path"]);
}
else
{
Console.WriteLine("Unable to mount {0}", inParams["Path"]);
}
}
inParams.Dispose();
outParams.Dispose();
imageService.Dispose();
}
static void Main(string[] args)
{
if (args != null && args.Length != 1)
{
Console.WriteLine("Usage: MountVHD vhdPath");
return;
}
Mount(args[0]);
}
}
}
The following VBScript example mounts a virtual disk image file.
option explicit
dim objWMIService
dim managementService
dim fileSystem
const JobStarting = 3
const JobRunning = 4
const JobCompleted = 7
const wmiStarted = 4096
dim vhdPath
Main()
'-----------------------------------------------------------------
' Main
'-----------------------------------------------------------------
Sub Main()
dim computer, objArgs
set fileSystem = Wscript.CreateObject("Scripting.FileSystemObject")
computer = "."
set objWMIService = GetObject("winmgmts:\\" & computer & "\root\virtualization")
set managementService = objWMIService.ExecQuery("Select * from Msvm_ImageManagementService").ItemIndex(0)
set objArgs = WScript.Arguments
if WScript.Arguments.Count = 1 then
vhdPath = objArgs.Unnamed.Item(0)
else
WScript.Echo "usage: cscript MountVHD.vbs VHDFilePath"
WScript.Quit(1)
end if
if ExecuteMountVHD then
WriteLog "Done"
WScript.Quit(0)
else
WriteLog "Mount failed"
WScript.Quit(1)
end if
End Sub
'-----------------------------------------------------------------
' Execute Mount
'-----------------------------------------------------------------
Function ExecuteMountVHD()
WriteLog Format1("Sub ExecuteMountVHD({0})", vhdPath)
dim objInParam, objOutParams
ExecuteMountVHD = false
set objInParam = managementService.Methods_("Mount").InParameters.SpawnInstance_()
objInParam.Path = vhdPath
set objOutParams = managementService.ExecMethod_("Mount", objInParam)
if (WMIMethodStarted(objOutParams)) then
if (WMIJobCompleted(objOutParams)) then
WriteLog Format1("VHD {0} was mounted successfully!", vhdPath)
ExecuteMountVHD = true
end if
end if
End Function
'-----------------------------------------------------------------
' Handle wmi return values
'-----------------------------------------------------------------
Function WMIMethodStarted(outParam)
WriteLog "Function WMIMethodStarted"
dim wmiStatus
WMIMethodStarted = false
if Not IsNull(outParam) then
wmiStatus = outParam.ReturnValue
if wmiStatus = wmiStarted then
WMIMethodStarted = true
else
WriteLog Format2("Mount operation for VHD {0} failed to create ConcreteJob with error {1}", vhdPath, wmiStatus)
end if
end if
End Function
'-----------------------------------------------------------------
' Handle wmi Job object
'-----------------------------------------------------------------
Function WMIJobCompleted(outParam)
WriteLog "Function WMIJobCompleted"
dim WMIJob, jobState
set WMIJob = objWMIService.Get(outParam.Job)
WMIJobCompleted = true
jobState = WMIJob.JobState
while jobState = JobRunning or jobState = JobStarting
WriteLog Format1("In progress... {0}% completed.",WMIJob.PercentComplete)
WScript.Sleep(1000)
set WMIJob = objWMIService.Get(outParam.Job)
jobState = WMIJob.JobState
wend
if (jobState <> JobCompleted) then
WriteLog Format1("ErrorCode:{0}", WMIJob.ErrorCode)
WriteLog Format1("ErrorDescription:{0}", WMIJob.ErrorDescription)
WMIJobCompleted = false
end if
End Function
'-----------------------------------------------------------------
' Create the console log files.
'-----------------------------------------------------------------
Sub WriteLog(line)
dim fileStream
set fileStream = fileSystem.OpenTextFile(".\MountVHD.log", 8, true)
WScript.Echo line
fileStream.WriteLine line
fileStream.Close
End Sub
'------------------------------------------------------------------------------
' The string formatting functions to avoid string concatenation.
'------------------------------------------------------------------------------
Function Format2(myString, arg0, arg1)
Format2 = Format1(myString, arg0)
Format2 = Replace(Format2, "{1}", arg1)
End Function
'------------------------------------------------------------------------------
' The string formatting functions to avoid string concatenation.
'------------------------------------------------------------------------------
Function Format1(myString, arg0)
Format1 = Replace(myString, "{0}", arg0)
End Function
Requirements
| Minimum supported client |
None supported |
| Minimum supported server |
Windows Server 2008 |
| End of client support |
None supported |
| End of server support |
Windows Server 2012 |
| Namespace |
Root\Virtualization |
| Header |
|
| MOF |
|