2

私は、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();

問題は...まあ何も起こらないようです。これは変数を正しく割り当てる方法ですか? テストpowershellスクリプトを与える

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

2 に答える 2

4

このコード行:

CommandParameter testParam = new CommandParameter("test3");

test3値が null であるという名前のパラメーターを作成します。名前付きパラメーターを作成したいと思われます。たとえば、次のようになります。

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

そして、パラメーターを受け入れるようにスクリプトを構成する必要があります。

--- Contents of 'new group.ps1 ---
param([string]$Username)
...
于 2012-08-07T16:07:09.740 に答える
1

パラメーターを受け入れるように PowerShell スクリプトをセットアップする必要があります。

そのスクリプトの先頭に次を追加して、再テストしてみてください。

param([string]$username)

または、次の行をスクリプトの先頭に追加することもできます。

$username = $args[0]

幸運を。

于 2012-08-07T16:00:05.943 に答える