使用 C# 将变量分配给电源外壳

本文关键字:电源 外壳 分配 变量 使用 | 更新日期: 2024-11-06 11:50:21

我想要调用一个powershell脚本并通过一个参数。我都想最终传递多个参数

        RunspaceConfiguration runspaceConfiguration = RunspaceConfiguration.Create();
        Runspace runspace = RunspaceFactory.CreateRunspace(runspaceConfiguration);
        runspace.Open();
        RunspaceInvoke scriptInvoker = new RunspaceInvoke(runspace);
        Pipeline pipeline = runspace.CreatePipeline();
        String scriptfile = "..''..''Resources''new group.ps1";
        Command myCommand = new Command(scriptfile, false);
        CommandParameter testParam = new CommandParameter("test3");
        myCommand.Parameters.Add(testParam);

        pipeline.Commands.Add(myCommand);
        Collection<PSObject> psObjects;
        psObjects = pipeline.Invoke();
        runspace.Close();

问题似乎是...好吧,什么也没发生。这是如何正确分配变量吗?提供测试电源外壳脚本

# creates group
net localgroup $username /Add
# makes folder
#mkdir $path

使用 C# 将变量分配给电源外壳

这行代码:

CommandParameter testParam = new CommandParameter("test3");

创建值为 null 的名为 test3 的参数。 我怀疑您想创建一个命名参数,例如:

CommandParameter testParam = new CommandParameter("username", "test3");

并且您的脚本需要配置为接受参数,例如:

--- Contents of 'new group.ps1 ---
param([string]$Username)
...

需要设置 PowerShell 脚本以接受参数:

尝试将以下内容添加到该脚本的顶部并重新测试:

param([string]$username)

或者,您可以将以下行添加到脚本的顶部:

$username = $args[0]

祝你好运。