Skip to main content

C# run powershell script as administrator


Recently I was fetching a problem that I need to run a PowerShell script that will change TFS user Display name and SID. I was trying to run that script from C# that was not working due to TFS security update and TLS certificate. Using this code block I resolve the Issue.


var newProcessInfo = new System.Diagnostics.ProcessStartInfo();
newProcessInfo.FileName = @"C:\Windows\SysWOW64\WindowsPowerShell\v1.0\powershell.exe";
newProcessInfo.Verb = "runas"; // Define Run as administrator
newProcessInfo.Arguments = script; //Define your powershell script
newProcessInfo.UseShellExecute = false;
newProcessInfo.RedirectStandardOutput = true; // This will enable to read Powershell run output
newProcessInfo.RedirectStandardError = true;
Process proces = System.Diagnostics.Process.Start(newProcessInfo);
proces.WaitForExit();
// I want to read the output string from powershell window
StringBuilder output = new StringBuilder();
output.Append("Started");
while (!proces.StandardOutput.EndOfStream)
{
output.Append(proces.StandardOutput.ReadLine());
}
 
string matchingString = toDoaminValue + "\\" + toAccount + "  True"; // My codition
bool isMatched = InspectPowerShellOutput(output.ToString(), matchingString);
if (!isMatched)
{
  // Do something if you are not getting your expected output
}


Comments

Popular posts from this blog

WPF datagrid cell textbox change event

Entity/Class: public class FeesDetails : INotifyPropertyChanged { public int Id { get; set; } public string FeesName { get; set;} public string FeesDetailsName { get; set; } public int? PaidAmount { get; set; } public event PropertyChangedEventHandler PropertyChanged; private void NotifyPropertyChanged(System.String info) { if (PropertyChanged != null) { PropertyChanged(this, new PropertyChangedEventArgs(info)); } } public int feesAmount { get; set; } public int FeesAmount { get { return this.feesAmount; } set { if (value != this.feesAmount) { this.feesAmount = value; NotifyPropertyChanged("FeesAmount"); } } } } XAML: <DataGrid AutoGenerateColumns="False" Height="21

ASP.NET MVC razor SAP Crystal report

Crete a new project: Add a aspx Master Page Create a new folder Reports and 2 sub folder crystal & crystalviewer Now add a web form page in crystalviewer  folder. Add the master page namespace in your web form page. MasterPageFile ="~/Views/Shared/ReportSite.Master" Replace your web form by this code < asp : Content ID ="Content1" ContentPlaceHolderID ="ContentPlaceHolder1" runat ="server">      </ asp : Content > Now go to design mode of your web form drag & drop the crystal report viewer in your web form. After that your page will be look look like this. Replace the code: < CR : CrystalReportViewer ID ="EmployeeList" runat ="server"   HasCrystalLogo ="False"     AutoDataBind ="True"   Height ="50px"   EnableParameterPrompt ="false" EnableDatabaseLogonPrompt