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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }