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.
Creates a new internal Ethernet port. It's almost the same as CreateInternalEthernetPort expect for the new internal Ethernet port's MAC address is created dynamically instead of being passed as a parameter.
Syntax
uint32 CreateInternalEthernetPortDynamicMac(
[in] string Name,
[in] string FriendlyName,
[out] Msvm_InternalEthernetPort REF CreatedInternalEthernetPort
);
Parameters
-
Name [in]
-
Type: string
The name of the port. This name must be unique.
-
FriendlyName [in]
-
Type: string
A user-readable name for the port.
-
CreatedInternalEthernetPort [out]
-
Type: Msvm_InternalEthernetPort
Upon successful completion of this method, this parameter contains the created switch port. See Msvm_InternalEthernetPort.
Return value
Type: uint32
The method returns 0 if it succeeded synchronously. Any other return value indicates an error.
-
Completed with No Error (0)
-
Method Parameters Checked - Job Started (4096)
-
Failed (32768)
-
Access Denied (32769)
-
Not Supported (32770)
-
Status is unknown (32771)
-
Timeout (32772)
-
Invalid parameter (32773)
-
System is in used (32774)
-
Invalid state for this operation (32775)
-
Incorrect data type (32776)
-
System is not available (32777)
-
Out of memory (32778)
Remarks
Access to the Msvm_VirtualSwitchManagementService class might be restricted by UAC Filtering. For more information, see User Account Control and WMI.
Examples
The following C# sample creates an internal Ethernet port with a dynamic MAC address. The referenced utilities can be found in Common Utilities for the Virtualization Samples.
using System;
using System.Management;
namespace HyperVSamples
{
class CreateInternalEthernetPortDynamicMacClass
{
static ManagementObject CreateInternalEthernetPortDynamicMac(string friendlyName, string name)
{
ManagementScope scope = new ManagementScope(@"root\virtualization", null);
ManagementObject switchService = Utility.GetServiceObject(scope, "Msvm_VirtualSwitchManagementService");
ManagementObject createdInternalEthernetPort = null;
ManagementBaseObject inParams = switchService.GetMethodParameters("CreateInternalEthernetPortDynamicMac");
inParams["FriendlyName"] = friendlyName;
inParams["Name"] = name;
ManagementBaseObject outParams = switchService.InvokeMethod("CreateInternalEthernetPortDynamicMac", inParams, null);
if ((UInt32)outParams["ReturnValue"] == ReturnCode.Completed)
{
createdInternalEthernetPort = new ManagementObject(outParams["CreateInternalEthernetPortDynamicMac"].ToString());
Console.WriteLine("{0} was created successfully", inParams["Name"]);
}
else
{
Console.WriteLine("Failed to create {0} switch.", inParams["Name"]);
}
return createdInternalEthernetPort;
}
static void Main(string[] args)
{
if (args != null && args.Length != 2)
{
Console.WriteLine("Usage: CreateInternalEthernetPortDynamicMac FriendlyName Name");
Console.WriteLine("Example: CreateInternalEthernetPort \"{0}\" {1}",
"First internal Ethernet Port",
"FirstInternalEthernetPort");
return;
}
CreateInternalEthernetPortDynamicMac(args[0], args[1]);
}
}
}
The following VBScript sample creates an internal Ethernet port with a dynamic MAC address.
dim objWMIService
dim switchService
dim fileSystem
const wmiSuccessful = 0
Main()
'-----------------------------------------------------------------
' Main
'-----------------------------------------------------------------
Sub Main()
set fileSystem = Wscript.CreateObject("Scripting.FileSystemObject")
strComputer = "."
set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\virtualization")
GetVirtualSwitchManagementServiceInstance
set createdInternalEthernetPort = CreateInternalEthernetPortDynamicMac
if Not (createdInternalEthernetPort Is Nothing) then
WriteLog "Done"
WScript.Quit(0)
else
WriteLog Format1("Err.Number: {0}", Err.Number)
WriteLog Format1("Err.Description:{0}",Err.Description)
WScript.Quit(1)
end if
End Sub
'-----------------------------------------------------------------
' Retrieve GetVirtualSwitchManagementServiceInstance from WMI
'-----------------------------------------------------------------
Sub GetVirtualSwitchManagementServiceInstance()
query = "select * from Msvm_VirtualSwitchManagementService"
set managementServiceCol= objWMIService.ExecQuery(query)
For Each instance in managementServiceCol
set switchService = instance
Next
End Sub
'-----------------------------------------------------------------
' Create a virtual switch by calling CreateSwitch WMI method
'-----------------------------------------------------------------
Function CreateInternalEthernetPortDynamicMac()
set CreateInternalEthernetPortDynamicMac = Nothing
set objInParam = switchService.Methods_("CreateInternalEthernetPortDynamicMac").InParameters.SpawnInstance_()
objInParam.FriendlyName = "First Internal Ethernet Dynamic Mac Port"
objInParam.Name = "FirstInternalDynamicMacPort"
set objOutParams = switchService.ExecMethod_("CreateInternalEthernetPortDynamicMac", objInParam)
if objOutParams.ReturnValue = wmiSuccessful then
set CreateInternalEthernetPortDynamicMac = objWMIService.Get(objOutParams.CreatedInternalEthernetPort)
else
WriteLog Format1("CreateInternalEthernetPort failed with error code {0}", objOutParams.ReturnValue)
end if
End Function
'-----------------------------------------------------------------
' Create the console log files.
'-----------------------------------------------------------------
Sub WriteLog(line)
dim fileStream
set fileStream = fileSystem.OpenTextFile(".\CreateSwitchPort.log", 8, true)
WScript.Echo line
fileStream.WriteLine line
fileStream.Close
End Sub
'------------------------------------------------------------------------------
' 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 |
| MOF |
|