首页 > 系统相关 >使用Net在Linux环境下调用PowerShell

使用Net在Linux环境下调用PowerShell

时间:2024-11-26 20:44:08浏览次数:3  
标签:Console string process Process WriteLine Linux Net PowerShell

  前言

  最近,在使用PowerShell做一些事情,然后需要放到AKS运行。

  正文

  一开始,使用的System.Management.Automation调用PowerShell,后来,发现有些功能在AKS下面执行不了,后面才想到使用Process的方式,如下:

public void ExecutePowerShell(string script)
{
    try
    {
        ProcessStartInfo startInfo = new ProcessStartInfo
        {
            FileName = "pwsh",
            Arguments = $"-Command {script}",
            RedirectStandardOutput = true,
            RedirectStandardError = true,
            UseShellExecute = false,
            CreateNoWindow = true
        };

        System.Diagnostics.Process process = new System.Diagnostics.Process
        {
            StartInfo = startInfo
        };


        process.Start();

        string output = process.StandardOutput.ReadToEnd();
        string error = process.StandardError.ReadToEnd();

        process.WaitForExit();

        Console.WriteLine("Output:");
        Console.WriteLine(output);

        if (!string.IsNullOrEmpty(error))
        {
            Console.WriteLine("Error:");
            Console.WriteLine(error);
        }

        int exitCode = process.ExitCode;
        Console.WriteLine($"Exit Code: {exitCode}");
    }
    catch (Exception ex)
    {
        Console.WriteLine(ex.Message.ToString());
        Console.WriteLine(ex.StackTrace.ToString());
    }
}

  这里就是新建一个Process,使用pwsh调用PowerShell,只需要传入对应的脚本就行了。

  如果命令非常多,可以试试StringBuilder来新建PowerShell脚本。

标签:Console,string,process,Process,WriteLine,Linux,Net,PowerShell
From: https://www.cnblogs.com/jianyus/p/18567414

相关文章

  • PasteEx:一款.NET开源的Windows快捷粘贴神器
    前言PasteEx是一款.NET开源的用于增强Windows粘贴功能的小工具,它解决了将剪贴板内容保存为文件的繁琐步骤。无需打开记事本等应用,它可直接将文字、图片等内容粘贴到桌面上,极大提升了效率。功能特点自定义文本扩展规则:用户可以设置特定的文本扩展规则,以满足不同文件格式的需......
  • linux——动静态库
    Linux——文件系统清尾、动静态库-CSDN博客文章目录目录文章目录前言一、静态库使用静态库使用方法:二、动态库1.创建动态库 打包:伪目标.PHONY​编辑2.使用3、解决动态库的加载问题三、共享库动态库是怎么做到对所有进程进行共享的?前言在上一篇博客中,......
  • 2024 最新 Kali Linux 定制化魔改,完整版添加常见60渗透工具
    系统版本:kalilinux2024.1固件类型:BIOS用户:zss密码:ss系统压缩大小:18.8GB,解出来:36.00GB左右,请提前预留好足够的空间下载链接https://pan.quark.cn/s/e5ca0a5847a4这个版本添加工具武器库比如我们pip命令后面忘了是什么了,我们就可以输入pip然后在......
  • Steering Control Based on Frenet-Serret Error Model
    Thekinematicmodelofthevehicleistypicallydescribedbythebicyclemodelasfollows:{......
  • Linux基础之浏览和创建文件
    如果您喜欢我的文章,还可以关注微信公众号,蜗牛全栈一、cat和less命令:显示文件内容在/var/log目录中主要记录程序数据和log日志文件,/var这个目录通常包含程序的数据。log文件通常会记录电脑中发生了什么事情 二、cat命令:一次性显示文件的所有内容cat是concatenate的缩写,表......
  • 掌握SHELL脚本基础,轻松驾驭Linux自动化利器
    文章目录解释器编写规则变量环境变量永久变量已经预设定好的变量脚本标量条件测试文件测试字符串测试命令执行测试控制语句if判断语句case判断语句for循环语句while循环语句until循环语句函数shell脚本之间相互调用与重定向相互调用函数调用参数传递重定向输出重定......
  • AGI 视界周刊11月第3周:马斯克与OpenAI分歧始末曝光、星舰第六次试验成功实现太空重启
    AGI视界周刊由AGI掘金知识库共建者战场小包维护,每周一更新,包含热点聚焦、应用破局、学术前沿、智见交锋、跨界AI、企业动态和争议AI七大板块,后续板块划分和内容撰写在周刊迭代过程中持续优化,欢迎大家提出。欢迎大家来到《AGI视界周刊10月第3周》(11/18~11/24)。......
  • Linux搭建nginx+keepalived 高可用(主备+双主模式)
    keepalived简介反向代理及负载均衡参考:nginx反向代理与负载均衡当你了解会搭建nginx负载均衡后,需要考虑nginx这台服务器的安全性啦,如果只有一台,这台nginx一出问题,web就会无法访问的情况,所以为了应对这种情况,就需要两台nginx做主备服务器。nginx+keepalived如下图所示 在nginx......
  • Linux 上 MySQL 8.0 的备份与恢复实战指南
            在数据库运维过程中,备份与恢复是保障数据安全的重要手段。MySQL8.0在Linux环境中提供了多种备份和恢复方案,包括逻辑备份和物理备份。本文将介绍这些备份方式的操作步骤与逻辑实现,帮助您高效管理数据库。一、备份与恢复的作用和意义数据安全:防止因误操作......
  • linux之进程管理
    进程管理1进程基本概述运行起来的程序,就叫进程当程序运行之后,cpu会调度一块内存空间给程序使用, 以及进程运行的身份和权限进程在运行过程中,服务器会以各种状态来表示当前进程的指标信息线程是进程内的调度单位,进程可以包含一个或多个线程1.1进程和程序程序是静态的,是......