Exemple #1
0
        public string GetFolderDatacenter(string folderid)
        {
            DataTable ret            = new DataTable();
            string    DatacenterName = string.Empty;

            try
            {
                using (PowerCli powerCli = new PowerCli())
                {
                    Commands.Clear();
                    Commands = LoginCommands();
                    Commands.Add($@"(Get-Datacenter).ExtensionData | Where {{$_.VmFolder -eq '{folderid}'}} | Select Name");
                    ret = powerCli.Run_Table(Commands);

                    if (ret == null || ret.Rows.Count == 0)
                    {
                        DatacenterName = "NoDataceter";
                    }
                    else
                    {
                        DatacenterName = ret.Rows[0]["Name"].ToString();
                    }
                }
            }
            catch (Exception ex)
            {
                throw;
            }
            return(DatacenterName);
        }
Exemple #2
0
        public DataTable GetClusterList()
        {
            DataTable ret = new DataTable();

            try
            {
                using (PowerCli powerCli = new PowerCli())
                {
                    Commands.Add($@"Get-Cluster | Select Parentfolder, Name, @{{N='ClusterPath';E={{'/' + (Get-Datacenter -Cluster $_.Name).Name + '/' + $_.Parentfolder + '/' + $_.Name}}}}");
                    ret = powerCli.Run_Table(Commands);
                }
            }
            catch
            {
                throw;
            }
            return(ret);
        }
Exemple #3
0
        public DataTable GetClusterHost(string ClusterName)
        {
            DataTable ret = new DataTable();

            try
            {
                using (PowerCli powerCli = new PowerCli())
                {
                    Commands.Add($@"Get-Cluster -Name {ClusterName} | Get-VMHost | Select Id, Name, State, Version, ParentId, Parent, NumCpu, CpuTotalMhz, CpuUsageMhz, MemoryTotalGB, MemoryUsageGB, MemoryTotalMB, MemoryUsageMB, StorageInfo, DatastoreIdList, @{{N='IPAddress';E={{($_.ExtensionData.Config.Network.Vnic | ? {{$_.Device -eq 'vmk0'}}).Spec.Ip.IpAddress}}}}");
                    ret = powerCli.Run_Table(Commands);
                }
            }
            catch
            {
                throw;
            }
            return(ret);
        }
Exemple #4
0
        public DataTable PoolVMList(string Poolname)
        {
            DataTable ret = new DataTable();

            try
            {
                using (PowerCli powerCli = new PowerCli())
                {
                    Commands.Add($@"(Get-HVMachine).base | Where {{$_.DesktopName -eq '{Poolname}'}}| Sort -Property Name");
                    ret = powerCli.Run_Table(Commands);
                }
            }
            catch
            {
                throw;
            }
            return(ret);
        }
Exemple #5
0
        public DataTable GetAllVMList()
        {
            DataTable ret = new DataTable();

            try
            {
                using (PowerCli powerCli = new PowerCli())
                {
                    Commands.Add($@"(Get-HVMachine).base | Sort -Property Name");
                    ret = powerCli.Run_Table(Commands);
                }
            }
            catch
            {
                throw;
            }
            return(ret);
        }
Exemple #6
0
        public DataTable GetAllPoolList()
        {
            DataTable ret = new DataTable();

            try
            {
                using (PowerCli powerCli = new PowerCli())
                {
                    Commands.Add($@"(Get-HVPoolSummary).DesktopSummaryData");
                    ret = powerCli.Run_Table(Commands);
                }
            }
            catch
            {
                throw;
            }
            return(ret);
        }
Exemple #7
0
        public DataTable GetSnapShotList(string ParentVMName)
        {
            DataTable ret = new DataTable();

            try
            {
                using (PowerCli powerCli = new PowerCli())
                {
                    Commands.Add($@"Get-Snapshot -VM {ParentVMName}");
                    ret = powerCli.Run_Table(Commands);
                }
            }
            catch
            {
                throw;
            }
            return(ret);
        }
Exemple #8
0
        public DataTable ParentVMList()
        {
            DataTable ret = new DataTable();

            try
            {
                using (PowerCli powerCli = new PowerCli())
                {
                    string replicafolder = "VMwareViewComposerReplicaFolder";
                    Commands.Add($@"Get-VM | Select-Object -Property Name, VMHost, @{{N = 'Cluster';E={{$_.VMHost.Parent}}}}, @{{N = 'Folder';E={{$_.Folder.Name}}}}, @{{N = 'SnapShot';E={{$_.ExtensionData.Snapshot}}}} | Where-Object {{($_.Folder -ne '{replicafolder}') -and ($_.Snapshot.Length -ne 0)}}");
                    ret = powerCli.Run_Table(Commands);
                }
            }
            catch
            {
                throw;
            }
            return(ret);
        }
Exemple #9
0
        public DataTable AvailableTemplateList(string lang)
        {
            DataTable ret = new DataTable();

            try
            {
                using (PowerCli powerCli = new PowerCli())
                {
                    string configOS = lang == "KO" ? "MicrosoftWindows10(64비트)" : "MicrosoftWindows10(64-bit)";
                    Commands.Add($@"Get-Template | Sort | Get-View -Property @('Name', 'Config.GuestFullName') | Select -Property Name, @{{N='ConfiguredOS';E={{$_.Config.GuestFullName -replace ' ', ''}}}} | Where-Object {{$_.ConfiguredOS -eq '{configOS}'}}");
                    ret = powerCli.Run_Table(Commands);
                }
            }
            catch
            {
                throw;
            }
            return(ret);
        }
Exemple #10
0
        public DataTable GetAllVMList()
        {
            DataTable ret = new DataTable();

            try
            {
                using (PowerCli powerCli = new PowerCli())
                {
                    Commands.Add($@"Get-VM");
                    ret = powerCli.Run_Table(Commands);
                }
            }
            catch
            {
                throw;
            }

            return(ret);
        }
Exemple #11
0
        public string GetResourcePoolPath(string clustername, string ResourcePoolId, string ResourcePoolName)
        {
            DataTable schdt              = new DataTable();
            DataTable chkdt              = new DataTable();
            string    rtnResourcepool    = "/" + ResourcePoolName;                      // Disuse
            string    chkResourcePoolId  = ResourcePoolId;                              // 14391
            int       chkresourcepoolCnt = 1;

            try
            {
                using (PowerCli powerCli = new PowerCli())
                {
                    while (chkresourcepoolCnt > 0)
                    {
                        Commands.Clear();
                        Commands = LoginCommands();

                        //Get-ResourcePool -Location {clustername} | Select ParentId, Parent, Id, Name
                        Commands.Add($@"Get-ResourcePool -Location {clustername} | Select ParentId, Parent, Id, Name | Where-Object {{$_.Id -eq '{chkResourcePoolId}'}}");
                        chkdt = powerCli.Run_Table(Commands);

                        //PowerCLI Call 1Depth Reduce - resourcepool call X
                        if (chkdt == null || chkdt.Rows.Count == 0 || chkdt.Rows[0]["Parent"].ToString() == "Resources")
                        //if (chkdt == null || chkdt.Rows.Count == 0)
                        {
                            break;
                        }
                        else
                        {
                            rtnResourcepool    = "/" + chkdt.Rows[0]["Parent"].ToString() + rtnResourcepool;
                            chkResourcePoolId  = chkdt.Rows[0]["ParentId"].ToString();
                            chkresourcepoolCnt = chkdt.Rows.Count;
                        }
                        continue;
                    }
                }
            }
            catch (Exception ex)
            {
                throw;
            }
            return(rtnResourcepool);
        }
Exemple #12
0
        public DataTable GetAllTemplateList()
        {
            DataTable ret = new DataTable();

            try
            {
                using (PowerCli powerCli = new PowerCli())
                {
                    // Commands.Add($@"Get-Template -Location DatacenterName");		// -Location "데이터센터명"
                    Commands.Add($@"Get-Template");
                    ret = powerCli.Run_Table(Commands);
                }
            }
            catch
            {
                throw;
            }

            return(ret);
        }
Exemple #13
0
        public DataTable chkLogin()
        {
            DataTable ret = new DataTable();

            try
            {
                using (PowerCli powerCli = new PowerCli())
                {
                    Commands.Clear();
                    Commands = CredCommands();
                    Commands.Add($@"$connectviewserver | Select Name, User, Domain");
                    ret = powerCli.Run_Table(Commands);
                }
            }
            catch
            {
                throw;
            }
            return(ret);
        }
Exemple #14
0
        public string GetFolderPath(string folderid, string foldername)
        {
            DataTable schdt        = new DataTable();
            DataTable chkdt        = new DataTable();
            string    rtnFolder    = "/" + foldername;
            string    chkFolderid  = folderid;
            int       chkFolderCnt = 1;

            try
            {
                using (PowerCli powerCli = new PowerCli())
                {
                    while (chkFolderCnt > 0)
                    {
                        Commands.Clear();
                        Commands = LoginCommands();
                        Commands.Add($@"Get-Folder -Location vm | Select-Object -Property ParentId, Parent, Name, Id | Where-Object {{$_.Id -eq '{chkFolderid}'}}");
                        chkdt = powerCli.Run_Table(Commands);

                        //PowerCLI Call 1Depth Reduce - vm folder call X
                        if (chkdt == null || chkdt.Rows.Count == 0 || chkdt.Rows[0]["Parent"].ToString() == "vm")
                        //if (chkdt == null || chkdt.Rows.Count == 0)
                        {
                            break;
                        }
                        else
                        {
                            rtnFolder    = "/" + chkdt.Rows[0]["Parent"].ToString() + rtnFolder;
                            chkFolderid  = chkdt.Rows[0]["ParentId"].ToString();
                            chkFolderCnt = chkdt.Rows.Count;
                        }
                        continue;
                    }
                }
            }
            catch (Exception ex)
            {
                throw;
            }
            return(rtnFolder);
        }
Exemple #15
0
        public string GetClusterPath(string ClusterName)
        {
            DataTable ret         = new DataTable();
            string    ClusterPath = string.Empty;

            try
            {
                using (PowerCli powerCli = new PowerCli())
                {
                    Commands.Add($@"Get-Cluster -Name {ClusterName} | Select @{{N='ClusterPath';E={{'/' + (Get-Datacenter -Cluster $_.Name).Name + '/' + $_.Parentfolder + '/' + $_.Name}}}}");
                    ret = powerCli.Run_Table(Commands);

                    ClusterPath = "Cluster Path : " + ret.Rows[0]["ClusterPath"].ToString();
                }
            }
            catch
            {
                throw;
            }
            return(ClusterPath);
        }
Exemple #16
0
        public DataTable GetResourcePoolList(string clusterPath)
        {
            DataTable ret = new DataTable();

            try
            {
                string[] cluster     = clusterPath.Split('/');
                string   clustername = cluster[cluster.Length - 1].ToString();

                using (PowerCli powerCli = new PowerCli())
                {
                    Commands.Add($@"Get-ResourcePool -Location {clustername} | Select ParentId, Parent, Id, Name, @{{N='ResourcePoolPath';E={{'{clusterPath}' + '/' + $_.Name}}}}");
                    ret = powerCli.Run_Table(Commands);

                    for (int i = 0; i < ret.Rows.Count; i++)
                    {
                        string ResourcePoolId         = ret.Rows[i]["Id"].ToString();
                        string ResourcePoolName       = ret.Rows[i]["Name"].ToString();
                        string ParentResourcePoolId   = ret.Rows[i]["ParentId"].ToString();
                        string ParentResourcePoolName = ret.Rows[i]["Parent"].ToString();

                        // 1Depth
                        if (ParentResourcePoolName == "Resources" || ParentResourcePoolName == clustername)
                        {
                            // @{{N='ResourcePoolPath';E={{'{clusterPath}' + '/' + $_.Name}}}}		// 기존처리
                            ret.Rows[i]["Name"] = clusterPath + '/' + ret.Rows[i]["Name"];
                        }
                        else
                        {
                            ret.Rows[i]["Name"] = clusterPath + GetResourcePoolPath(clustername, ResourcePoolId, ret.Rows[i]["Name"].ToString());
                        }
                    }
                }
            }
            catch
            {
                throw;
            }
            return(ret);
        }
Exemple #17
0
        public DataTable GetFolderList()
        {
            DataTable schdt          = new DataTable();
            string    DatacenterName = string.Empty;

            try
            {
                using (PowerCli powerCli = new PowerCli())
                {
                    Commands.Add($@"Get-Folder -Location vm | Select-Object -Property ParentId, Parent, Name, Id");
                    schdt = powerCli.Run_Table(Commands);
                    for (int i = 0; i < schdt.Rows.Count; i++)
                    {
                        string folderid         = schdt.Rows[i]["Id"].ToString();
                        string foldername       = schdt.Rows[i]["Name"].ToString();
                        string Parentfolderid   = schdt.Rows[i]["ParentId"].ToString();
                        string Parentfoldername = schdt.Rows[i]["Parent"].ToString();

                        // 1Depth
                        if (Parentfoldername == "vm")
                        {
                            // Parentfolder로 Datacenter Name 확인
                            DatacenterName        = GetFolderDatacenter(Parentfolderid);
                            schdt.Rows[i]["Name"] = "/" + DatacenterName + "/vm/" + schdt.Rows[i]["Name"];
                        }
                        else
                        {
                            schdt.Rows[i]["Name"] = "/" + DatacenterName + "/vm" + GetFolderPath(folderid, schdt.Rows[i]["Name"].ToString());
                        }
                    }
                }
            }
            catch
            {
                throw;
            }
            return(schdt);
        }
Exemple #18
0
        public DataTable AvailableVMList(string lang, string cluster)
        {
            DataTable ret = new DataTable();

            try
            {
                // 조건 : configOS > Win10, Snapshot(X) > Clone된,
                using (PowerCli powerCli = new PowerCli())
                {
                    // -eq : == / -ne : != / -lt : < / -le : <= / -gt : > / -ge : >=
                    string configOS = lang == "KO" ? "MicrosoftWindows10(64비트)" : "MicrosoftWindows10(64-bit)";
                    Commands.Add($@"Get-VM -Location {cluster} | Sort | Get-View -Property @('Name', 'Config.GuestFullName', 'Guest.GuestFullName', 'Snapshot.RootSnapshotList') | Select -Property Name, @{{N='ConfiguredOS';E={{$_.Config.GuestFullName -replace ' ', ''}}}},  @{{N='RunningOS';E={{$_.Guest.GuestFullName}}}}, @{{N='SnapShot';E={{$_.Snapshot.RootSnapshotList.Name}}}} | Where-Object {{($_.Snapshot.Length -eq 0) -and ($_.ConfiguredOS -eq '{configOS}')}}");

                    ret = powerCli.Run_Table(Commands);
                }
            }
            catch
            {
                throw;
            }

            return(ret);
        }
Exemple #19
0
        public List <DataTable> GetPool(List <string> PoolLists)
        {
            List <DataTable> ret      = new List <DataTable>();
            string           poolType = "AUTOMATED";

            try
            {
                // Pool Defalut Information
                using (PowerCli powerCli = new PowerCli())
                {
                    DataTable dt    = new DataTable();
                    string    Pools = string.Join(", ", PoolLists?.Where(x => !string.IsNullOrEmpty(x)).ToList());

                    Commands.Add($@"(Get-HVPoolSummary).DesktopSummaryData | where {{$_.Name -eq '{Pools}'}}");
                    dt = powerCli.Run_Table(Commands);

                    if (dt.Rows.Count > 0)
                    {
                        poolType = dt.Rows[0]["Type"].ToString();
                    }
                    dt.TableName = "GetHVPool";
                    ret.Add(dt);
                }

                // Pool 관련 Template, Snapshot 등 Path
                if (poolType == "AUTOMATED")
                {
                    using (PowerCli powerCli = new PowerCli())
                    {
                        DataTable dt    = new DataTable();
                        string    Pools = string.Join(", ", PoolLists?.Where(x => !string.IsNullOrEmpty(x)).ToList());

                        Commands.Add($@"(Get-HVPool -PoolName '{Pools}').AutomatedDesktopData.VirtualCenterNamesData");
                        dt           = powerCli.Run_Table(Commands);
                        dt.TableName = "GetHVPoolPath";
                        ret.Add(dt);
                    }

                    // Pool Naming Set
                    using (PowerCli powerCli = new PowerCli())
                    {
                        DataTable dt = new DataTable();

                        string Pools = string.Join(", ", PoolLists?.Where(x => !string.IsNullOrEmpty(x)).ToList());
                        Commands.Add($@"(Get-HVPool -PoolName '{Pools}').AutomatedDesktopData.VmNamingSettings.PatternNamingSettings");
                        dt           = powerCli.Run_Table(Commands);
                        dt.TableName = "GetHVPoolNameSet";
                        ret.Add(dt);
                    }

                    // Guest User Setting
                    //(Get-HVPool -PoolName FullCloneTest).AutomatedDesktopData.CustomizationSettings
                    using (PowerCli powerCli = new PowerCli())
                    {
                        DataTable dt = new DataTable();

                        string Pools = string.Join(", ", PoolLists?.Where(x => !string.IsNullOrEmpty(x)).ToList());
                        Commands.Add($@"(Get-HVPool -PoolName '{Pools}').AutomatedDesktopData.CustomizationSettings");
                        dt           = powerCli.Run_Table(Commands);
                        dt.TableName = "GetHVPoolGuestSet";
                        ret.Add(dt);
                    }
                }

                // Pool 사용자 Assignment
                using (PowerCli powerCli = new PowerCli())
                {
                    DataTable dt = new DataTable();

                    string Pools = string.Join(", ", PoolLists?.Where(x => !string.IsNullOrEmpty(x)).ToList());
                    if (poolType == "MANUAL")
                    {
                        Commands.Add($@"(Get-HVPool -PoolName '{Pools}').ManualDesktopData.UserAssignment");
                    }
                    else
                    {
                        Commands.Add($@"(Get-HVPool -PoolName '{Pools}').AutomatedDesktopData.UserAssignment");
                    }
                    dt           = powerCli.Run_Table(Commands);
                    dt.TableName = "GetHVPoolUserAssign";
                    ret.Add(dt);
                }
            }
            catch
            {
                throw;
            }
            return(ret);
        }