-1

リモート マシンで数行のコードを実行したいので、「Invoke-command」コマンドレットを使用して実行する必要があります。実行したいスクリプトはかなり長い (単なるコマンドではなく、いくつかのループ、条件など) ため、コードをインラインでコピーすることはできません。それで、誰かがそれを行うための構文を教えてもらえますか?

for example: I have the following code:
Function createDict(){
    $Dict = @{}
    $Variables = Get-Content .\Variables.ini.
    foreach ($str in $Variables){
            if ($str -eq ""){
            continue
        }
        if ($str.StartsWith("[") -or $str.StartsWith("#")){
            continue
        } else {
            $Pair = $str.Split('=')
            $Dict.Add($Pair[0], $Pair[1])
        }
        }
    return $Dict
}
Import-Module virtualmachinemanager
    stop-VM NHQA-W8-64b-Q13
start-VM NHQA-W8-64b-Q13

上記のコードを理解しようとする必要はありません。ここでは、リモート マシンでどのようなことを実行しようとしているのかを示したいだけです。事前にどうもありがとうございました!

4

1 に答える 1

2

いくつかのオプションがありますが、おそらくそれ以上です。

関数/コマンドレットをスクリプトとして使用できるようにし、リモート セッションでそれらをドットソースします。

. \\path\to\cmdlets.ps1

もう 1 つのオプションは、PowerShell のスクリプト ブロックがオブジェクトであるため、変数に割り当てて再利用できるというものです。次の簡単な例を考えてみましょう。

$files = { -not $_.PSIsContainer }
$folders = { $_.PSIsContainer }
dir | ? $files
dir | ? $folders

これらのアイデアがお役に立てば幸いです。申し訳ありませんが、これ以上直接的な回答はありません。おそらく、あなたが試したことと経験しているエラーの例をいくつか提供できれば、より直接的でより良い答えを提供するのに役立ちます.

于 2013-09-18T22:03:53.987 に答える