使用 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
这行代码:
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]
祝你好运。