Пример #1
0
        CreateVirtualHardDisk(
            string ServerName,
            string VirtualHardDiskPath,
            string ParentPath,
            VirtualHardDiskType Type,
            VirtualHardDiskFormat Format,
            Int64 FileSize,
            Int32 BlockSize,
            Int32 LogicalSectorSize,
            Int32 PhysicalSectorSize)
        {
            ManagementScope scope =
                new ManagementScope("\\\\" + ServerName + "\\root\\virtualization\\v2");

            VirtualHardDiskSettingData settingData =
                new VirtualHardDiskSettingData(
                    Type,
                    Format,
                    VirtualHardDiskPath,
                    ParentPath,
                    FileSize,
                    BlockSize,
                    LogicalSectorSize,
                    PhysicalSectorSize);

            using (ManagementObject imageManagementService =
                       StorageUtilities.GetImageManagementService(scope))
            {
                using (ManagementBaseObject inParams =
                           imageManagementService.GetMethodParameters("CreateVirtualHardDisk"))
                {
                    inParams["VirtualDiskSettingData"] =
                        settingData.GetVirtualHardDiskSettingDataEmbeddedInstance(
                            ServerName,
                            imageManagementService.Path.Path);

                    using (ManagementBaseObject outParams = imageManagementService.InvokeMethod(
                               "CreateVirtualHardDisk", inParams, null))
                    {
                        WmiUtilities.ValidateOutput(outParams, scope);
                    }
                }
            }
        }
        CreateVirtualHardDisk(
            string ServerName,
            string VirtualHardDiskPath,
            string ParentPath,
            VirtualHardDiskType Type,
            VirtualHardDiskFormat Format,
            Int64 FileSize,
            Int32 BlockSize,
            Int32 LogicalSectorSize,
            Int32 PhysicalSectorSize)
        {
            ManagementScope scope =
                new ManagementScope("\\\\" + ServerName + "\\root\\virtualization\\v2");

            VirtualHardDiskSettingData settingData =
                new VirtualHardDiskSettingData(
                    Type,
                    Format,
                    VirtualHardDiskPath,
                    ParentPath,
                    FileSize,
                    BlockSize,
                    LogicalSectorSize,
                    PhysicalSectorSize);

            using (ManagementObject imageManagementService =
                StorageUtilities.GetImageManagementService(scope))
            {
                using (ManagementBaseObject inParams =
                    imageManagementService.GetMethodParameters("CreateVirtualHardDisk"))
                {
                    inParams["VirtualDiskSettingData"] =
                        settingData.GetVirtualHardDiskSettingDataEmbeddedInstance(
                            ServerName,
                            imageManagementService.Path.Path);

                    using (ManagementBaseObject outParams = imageManagementService.InvokeMethod(
                        "CreateVirtualHardDisk", inParams, null))
                    {
                        WmiUtilities.ValidateOutput(outParams, scope);
                    }
                }
            }
        }
        ConvertVirtualHardDisk(
            string ServerName,
            string SourcePath,
            string DestinationPath,
            VirtualHardDiskFormat Format)
        {
            ManagementScope scope =
                new ManagementScope("\\\\" + ServerName + "\\root\\virtualization\\v2");

            VirtualHardDiskSettingData settingData =
                new VirtualHardDiskSettingData(
                    VirtualHardDiskType.FixedSize,
                    Format,
                    DestinationPath,
                    null,
                    0,
                    0,
                    0,
                    0);

            using (ManagementObject imageManagementService =
                StorageUtilities.GetImageManagementService(scope))
            {
                using (ManagementBaseObject inParams =
                    imageManagementService.GetMethodParameters("ConvertVirtualHardDisk"))
                {
                    inParams["SourcePath"] = SourcePath;

                    inParams["VirtualDiskSettingData"] =
                        settingData.GetVirtualHardDiskSettingDataEmbeddedInstance(
                            ServerName,
                            imageManagementService.Path.Path);

                    using (ManagementBaseObject outParams = imageManagementService.InvokeMethod(
                        "ConvertVirtualHardDisk", inParams, null))
                    {
                        WmiUtilities.ValidateOutput(outParams, scope);
                    }
                }
            }
        }
Пример #4
0
        ConvertVirtualHardDisk(
            string ServerName,
            string SourcePath,
            string DestinationPath,
            VirtualHardDiskFormat Format)
        {
            ManagementScope scope =
                new ManagementScope("\\\\" + ServerName + "\\root\\virtualization\\v2");

            VirtualHardDiskSettingData settingData =
                new VirtualHardDiskSettingData(
                    VirtualHardDiskType.FixedSize,
                    Format,
                    DestinationPath,
                    null,
                    0,
                    0,
                    0,
                    0);

            using (ManagementObject imageManagementService =
                       StorageUtilities.GetImageManagementService(scope))
            {
                using (ManagementBaseObject inParams =
                           imageManagementService.GetMethodParameters("ConvertVirtualHardDisk"))
                {
                    inParams["SourcePath"] = SourcePath;

                    inParams["VirtualDiskSettingData"] =
                        settingData.GetVirtualHardDiskSettingDataEmbeddedInstance(
                            ServerName,
                            imageManagementService.Path.Path);

                    using (ManagementBaseObject outParams = imageManagementService.InvokeMethod(
                               "ConvertVirtualHardDisk", inParams, null))
                    {
                        WmiUtilities.ValidateOutput(outParams, scope);
                    }
                }
            }
        }
Пример #5
0
        GetVirtualHardDisk(
            string ServerName,
            string VirtualHardDiskPath)
        {
            VirtualHardDiskSettingData virtualHardDiskSettingData;
            VirtualHardDiskState       virtualHardDiskState;

            ManagementScope scope =
                new ManagementScope("\\\\" + ServerName + "\\root\\virtualization\\v2");

            using (ManagementObject imageManagementService =
                       StorageUtilities.GetImageManagementService(scope))
            {
                //
                // Get VirtualHardDiskSettingData.
                //

                using (ManagementBaseObject inParams =
                           imageManagementService.GetMethodParameters("GetVirtualHardDiskSettingData"))
                {
                    inParams["Path"] = VirtualHardDiskPath;

                    using (ManagementBaseObject outParams = imageManagementService.InvokeMethod(
                               "GetVirtualHardDiskSettingData", inParams, null))
                    {
                        WmiUtilities.ValidateOutput(outParams, scope);

                        virtualHardDiskSettingData
                            = VirtualHardDiskSettingData.Parse(
                                  outParams["SettingData"].ToString());
                    }
                }

                //
                // Get VirtualHardDiskState.
                //

                using (ManagementBaseObject inParams =
                           imageManagementService.GetMethodParameters("GetVirtualHardDiskState"))
                {
                    inParams["Path"] = VirtualHardDiskPath;

                    using (ManagementBaseObject outParams = imageManagementService.InvokeMethod(
                               "GetVirtualHardDiskState", inParams, null))
                    {
                        WmiUtilities.ValidateOutput(outParams, scope);

                        virtualHardDiskState
                            = VirtualHardDiskState.Parse(
                                  outParams["State"].ToString());
                    }
                }

                //
                // Display results.
                //

                Console.Write("Path:\t\t\t{0}", virtualHardDiskSettingData.Path);

                if (virtualHardDiskSettingData.DiskFormat == VirtualHardDiskFormat.Vhd)
                {
                    Console.Write(" (vhd)");
                }
                else if (virtualHardDiskSettingData.DiskFormat == VirtualHardDiskFormat.Vhdx)
                {
                    Console.Write(" (vhdx)");
                }

                if (virtualHardDiskSettingData.DiskType == VirtualHardDiskType.FixedSize)
                {
                    Console.WriteLine(" (Fixed Disk)");
                    Console.WriteLine("FragmentationPercentage:{0}", virtualHardDiskState.FragmentationPercentage);
                }
                else if (virtualHardDiskSettingData.DiskType == VirtualHardDiskType.DynamicallyExpanding)
                {
                    Console.WriteLine(" (Dynamically Expanding Disk)");
                    Console.WriteLine("MaxInternalSize:\t{0}", virtualHardDiskSettingData.MaxInternalSize);
                    Console.WriteLine("BlockSize:\t\t{0}", virtualHardDiskSettingData.BlockSize);
                    Console.WriteLine("Alignment:\t\t{0}", virtualHardDiskState.Alignment);
                    Console.WriteLine("FragmentationPercentage:{0}", virtualHardDiskState.FragmentationPercentage);
                }
                else if (virtualHardDiskSettingData.DiskType == VirtualHardDiskType.Differencing)
                {
                    Console.WriteLine(" (Differencing Disk)");
                    Console.WriteLine("Parent:\t\t\t{0}", virtualHardDiskSettingData.ParentPath);
                    Console.WriteLine("MaxInternalSize:\t{0}", virtualHardDiskSettingData.MaxInternalSize);
                    Console.WriteLine("BlockSize:\t\t{0}", virtualHardDiskSettingData.BlockSize);
                    Console.WriteLine("Alignment:\t\t{0}", virtualHardDiskState.Alignment);
                }

                Console.WriteLine("FileSize:\t\t{0}", virtualHardDiskState.FileSize);
                Console.WriteLine("LogicalSectorSize:\t{0}", virtualHardDiskSettingData.LogicalSectorSize);
                Console.WriteLine("PhysicalSectorSize:\t{0}", virtualHardDiskSettingData.PhysicalSectorSize);

                if (virtualHardDiskState.MinInternalSize != null)
                {
                    Console.WriteLine("MinInternalSize:\t{0}", virtualHardDiskState.MinInternalSize);
                }
            }
        }