We can call poweshell command-let from C#
```sh
Install Powershell SDK package then Add reference of System.Management.Automation
#Install-Package Microsoft.PowerShell.SDK#
#dotnet add package Microsoft.PowerShell.SDK
```
Following is the code to invoke powershell command-let
```sh
#usings -
using System.Management.Automation;
using System.Management.Automation.Runspaces;
using (PowerShell ps = PowerShell.Create()){
ps.AddCommand("Get-Process");
ps.AddParameter("Name", "excel");
foreach (PSObject result in ps.Invoke()){
Console.WriteLine(result);
}
}
```
We can call powershell script file from C#
```sh
Following is the code to invoke powershell script
#usings
using System.Management.Automation;
using System.Management.Automation.Runspaces;
var ps1File = @"C:\Users\\install-scheme.ps1";
var startInfo = new ProcessStartInfo(){
FileName = "powershell.exe",
Arguments = $"-NoProfile -ExecutionPolicy ByPass -File \"{ps1File}\"",
UseShellExecute = false
};
Process.Start(startInfo);
```
We can invoke powershell command-let \cli from C# using CliWrap
```sh
#Install Package
dotnet add package CliWrap -Version 3.6.4 # Install-Package CliWrap -Version 3.6.4
# using
using CliWrap;
using CliWrap.Buffered;
using System;
using System.Threading;
using System.Threading.Tasks;
var result= await cli.Wrap("powershell")
.WithArguments(new[]{"Get-Process"," -Name",\"devenv"})
.ExecuteBufferedASync();
Console.WriteLine(result.StandardOutput);
Console.WriteLine(result.StandardError);
```
```
Azure Cloud Solution Architect, Full-Stack Development in .Net Eco system, Senior Manager at Capgemini
Saturday, August 5, 2023
How to call PowerShell command -let or PowerShell script from C#
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment