C#调用PowerShell脚本

今天通过一个小例子,学习了C#如何调用PowerShell脚本文件的Function以及传参。

       private bool CallPowershell(string outputFile)
        {
            string ddcHost = "test";
            RunspaceConfiguration runspaceConfiguration = RunspaceConfiguration.Create();
            Runspace runspace = RunspaceFactory.CreateRunspace(runspaceConfiguration);
            runspace.Open();

            bool result = false;
            try
            {
                PowerShell ps = PowerShell.Create();
                ps.Runspace = runspace;
                ps.AddScript("param($paramList)");
                ps.AddArgument(m_paramList);
                ps.AddScript(string.Format("Import-Module -Name {0}", "testPath"));
                ps.AddScript(string.Format("Get-MachineList {0} {1} $paramList", ddcHost, outputFile));

                ps.Invoke();
                if (File.Exists(outputFile))
                {
                    result = true;
                }
            }
            catch (System.Exception ex)
            {
                Trace.WriteLine("[Error] Failed to execute command, {0}", ex.Message);
            }
            runspace.Close();
            runspace.Dispose();

            return result;
        }
时间: 2024-10-26 10:09:27

C#调用PowerShell脚本的相关文章

如何让powershell脚本可以在计划任务中自动执行

今天在测试PS脚本的时候,,突然想到,让脚本每天定时自动执行,因为以前有做过Bat的经验,就想,这个还不简单,直接在windows的计划任务中创建任务不就可以了吗?于是就动手测试了,结果发现悲剧了,PS1后缀的脚本无法直接在计划任务中执行好吧,只能找度娘出马了,于是找了这种方法,自己记录一下1:我这边在我的电脑上写了一个简单的获取服务的脚本,之后保存为services.ps1这样的名称        get-service  | where{$_.status -eq "running"

PowerShell脚本授权最佳实践

[TechTarget中国原创] Windows PowerShell已成为微软在Windows Server上提供的首选管理界面.因为深度整合到Windows Server操作系统,PowerShell表面看上去可以不受任何限制做任何事情.然而,实际上能做得并没有那么多. Windows Server最好用的功能之一就是可以运行脚本.PowerShell脚本允许代码重复使用,并支持运行复杂的命令序列,这是其他方式无法实现的. PowerShell脚本的编写者必须关注的一个大问题就是授权.Pow

今天在写powershell脚本中犯的两个错误

可能是因为牙痛没睡好,今天老是犯错,还是脚本写错,特别难调. 第一个错误: powershell脚本里面,函数与函数互相调用的传参.其实就像调用普通的cmdlet一样的写法,应该这么写: Add-ScopeObject -adminAddr $adminAddr -name $newScope.Name -objectList $objectList 看我写成啥: Add-ScopeObject($adminAddr, $newScope.Name, $objectList) 结果怎么都执行不对

WindowsAzure Powershell脚本定时启动关机Azure VM

说到windowsazure对于当下不是一个新鲜话题了,但是对于功能来说还是有点期待的,毕竟在云服务的世界里windowsazure还是一个菜鸟了.同样我们都知道,对于windowsazure上的服务操作我们有很多方式可以操作,比如:portal页面,powershell with azure及azure pack等,其他的都是图形界面操作,操作相对简单,今天咱们就说说通过windows azure powershell命令来管理windows azure上的部分服务,powershell操作命

PowerShell脚本保存密码

当使用批处理或VBS脚本访问远程计算机的时候,我们可以直接将其用户名和密码写入到脚本中,但是在PowerShell中,则不允许直接将密码写入其中,这虽然在很大程度上提高了脚本的安全性,但有时候却也给我们带来了一些麻烦. 如果我们要获取计算机(192.168.12.6)的系统信息,则需要使用Get-Credential命令来提供凭据(用户名+密码),可以先将凭据保存到一个变量中,如 $a = get-credential 回车后则弹出窗口要求输入用户名和密码,输入完成后,则会保存在变量$a中,然后

技术分享:如何在PowerShell脚本中嵌入EXE文件

我在尝试解决一个问题,即在客户端攻击中只使用纯 PowerShell 脚本作为攻击负荷.使用 PowerShell 运行恶意代码具有很多优点,包括: 1.无需在目标上安装其他任何东西. 2.强大的引擎(例如可以直接调用 .NET 代码). 3.可以使用 base64 编码命令来混淆恶意命令,使恶意命令变的不容易被发现.这同样也是一种可以避免使用特殊字符的方法,尤其是在一个涉及多个步骤需要分离不同攻击负荷的高级攻击中. 4.可以使用Invoke-Expression将字符串解释为 Powershe

在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试

原文:在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 在 WPF 开发时,有 Snoop 的帮助,UI 的调试将变得非常轻松.使用 Snoop,能轻松地查看 WPF 中控件的可视化树以及每一个 Visual 节点的各种属性,或者查看数据上下文,或者监听查看事件的引发. 不过,更强大的是支持使用 PowerShell 脚本.这使得它即便 UI 没有给你提供一些入口,你也能通过各种方式查看或者修改 UI. 本文内容 Snoop PowerShell 入口 自带的 Powe

unity中三种调用其他脚本函数的方法

第一种,被调用脚本函数为static类型,调用时直接用  脚本名.函数名().很不实用-- 第二种,GameObject.Find("脚本所在物体名").SendMessage("函数名");  此种方法可以调用public和private类型函数 第三种,GameObject.Find("脚本所在物体名").GetComponent<脚本名>().函数名();此种方法只可以调用public类型函数 unity中三种调用其他脚本函数的

Java代码调用Shell脚本并传入参数实现DB2数据库表导出到文件

本文通过Java代码调用Shell脚本并传入参数实现DB2数据库表导出到文件,代码如下: import java.io.File; import java.io.IOException; import java.io.InputStreamReader; import java.io.LineNumberReader; import java.util.HashMap; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import