Click here to Skip to main content
15,891,409 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
How to run PowerCli tool through C#.net, I have no idea how to do it. I want to run Powercli and i want to run some commands in it and it all has to done under single button click.

here is my code:

C#
using System;
            using System.Collections.Generic;
            using System.ComponentModel;
            using System.Data;
            using System.Drawing;
            using System.Linq;
            using System.Text;
            using System.Threading.Tasks;
            using System.Windows.Forms;
            using System.IO;
                       
            namespace OVF_ImportExport
            {
                public partial class Form1 : Form
                {
                    string sPath = "";
                    string sName = "";
                    
            public Form1()
                    {
                        InitializeComponent();
                    }
        
                private void Form1_Load(object sender, EventArgs e)
                {
                    
                }
        
                private void dataGridView1_CellMouseClick(object sender, DataGridViewCellMouseEventArgs e)
                {
                    //richTextBox1.Text = "";
                    foreach (DataGridViewRow row in dataGridView1.SelectedRows)
                    {
                        sName = row.Cells[0].Value.ToString();
                        sPath = row.Cells[1].Value.ToString();
        
                        //richTextBox1.Text = richTextBox1.Text + sName + Environment.NewLine;
        
                    }
                }
        
                private void BtnBrowse_Click(object sender, EventArgs e)
                {
                    fbd.ShowDialog();
                    TxtBrowsepath.Text = fbd.SelectedPath;
                }
        
                private void BtnCreate_Click(object sender, EventArgs e)
                {
                    richTextBox1.Text = "";
                    StreamWriter file = new StreamWriter("Export.bat");
                    file.WriteLine("c: ");
                    file.WriteLine("cd \\");
                    file.WriteLine("cd Program Files ");
                    file.WriteLine("cd VMware");
                    file.WriteLine("cd VMware OVF Tool");
        
                    foreach (DataGridViewRow row in dataGridView1.SelectedRows)
                    {
                        sName = row.Cells[0].Value.ToString();
                        sPath = row.Cells[1].Value.ToString();
        
                        //richTextBox1.Text = richTextBox1.Text + Environment.NewLine + sName;
                        file.WriteLine("start ovftool.exe --powerOffSource vi://" + TxtUsername.Text + ":" + TxtPassword.Text + "@"
                           + TxtIP.Text + sPath + " " + "\"" + TxtBrowsepath.Text + "\\" + sName + "\\"
                           + sName + ".ovf" + "\"" + Environment.NewLine);
        
                        //Console.WriteLine("sName: " + sName + "sPath: " + sPath);
        
                    }
                    file.WriteLine("pause");
                    file.Close();
                }
        
                       
                private void button1_Click(object sender, EventArgs e)
                {
                    string delimiter = ",";
                    string tablename = "export";
                    string filename = ("c:\\izaz\\test.csv");
        
        
                    DataSet dataset = new DataSet();
                    StreamReader sr = new StreamReader(filename);
        
                    dataset.Tables.Add(tablename);
                    dataset.Tables[tablename].Columns.Add("Name");
                    dataset.Tables[tablename].Columns.Add("Path");
                    string allData = sr.ReadToEnd();
                    string[] rows = allData.Split("\r".ToCharArray());
                    foreach (string r in rows)
                    {
                        string[] items = r.Split(delimiter.ToCharArray());
                        dataset.Tables[tablename].Rows.Add(items);
                    }
                    this.dataGridView1.DataSource = dataset.Tables[0].DefaultView;
        
                }
        
            }
        
        }
Posted
Comments
[no name] 1-Jul-15 10:07am    
System.Diagnostics.Process.Start
virusstorm 1-Jul-15 10:08am    
What are you trying to accomplish using PowerCLI? VMware does have services and other APIs that you can use with C#.
Shaik Izaz 28-Jul-15 9:49am    
I want to retrieve the VM's name and path and then convert them in a CSV file.
PIEBALDconsult 1-Jul-15 10:18am    
I use the API.

1 solution

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900