問題タブ [invoke-command]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
powershell - powershell スクリプト内から powershell スクリプトを実行する
私はperlスクリプトperl1.plを持っています。perl スクリプト内で、powershell スクリプト script1.ps1 を呼び出します。script.ps1 では、ローカル変数をパラメーターとして使用して、script2.ps1 のような他のスクリプトを呼び出します。powershell スクリプト script3.ps1 を用意しました。script2.ps1 と並行して、script1.ps1 から script3.ps1 を実行したいと考えています。sample_script2.ps1 が実行されるのと同じ引数 (引数としてローカル変数) を渡す必要があります。最初に script3 を呼び出し、次に script2 を呼び出す必要があります。
次のようにpowershel.exeを試しました
C:..\powershell.exe -FilePath script3.ps1 $a,$b,$c
バイパス、実行ポリシーを含めました。$a $b $c はローカル変数です。しかし、何が起こるかは、コマンドラインが開き (スクリプトが呼び出される方法であるため)、script1.ps1 の実行を開始し、上記のコマンドで停止します。上記のコマンド ラインで「exit」と入力すると、script2 が起動します。
script3.ps1 と script2.ps1 を同じように並列実行するにはどうすればよいですか。
java - リモート サーバーの PowerShell から Java のバージョンを取得する
リモート マシンで資格情報を使用して呼び出しコマンドを使用して、そのマシンの Java バージョンを含む文字列を返すコードを実行するスクリプトをPowerShellで作成しようとしています。Java がインストールされていません。サーバーにJDKフォルダーとしてドロップされ、アプリケーションがその場所を指している場合もあります。残念ながら、レジストリを使用して Java のバージョンを見つけることはできません。私が思いついた唯一のアイデアは、呼び出しコマンド内から次の行に沿って何かを呼び出すことです。
または、さらに複雑な場合は、正規表現を使用してバージョンを見つけます。
ただし、一部のサーバーでは、その Java バージョンのコマンドを実行するのに十分なヒープ領域がないという問題が発生し続けています (そのリモート サーバーの呼び出しコマンドを使用)。
私の調査によると、リモート PowerShell セッション用に設定された MaxMemoryPerShellMB に関係しています。150 に設定されているサーバーもあれば、1024 に設定されているサーバーもあります。したがって、PowerShell リモート セッションから正常java -version
に実行できる場合と、メモリが少なすぎるために実行できない場合があります。ログインして手動でリモートマシンに設定した場合:
それは働き始めます。しかし、毎回各サーバーに行って手動で設定することはできません。Invoke コマンドを使用して MaxMemoryPerShellMB を設定しようとすると、同じアカウントを使用してサーバー上の MaxMemoryPerShellMB を変更できますが、ログインして直接変更すると、アクセス権がないと表示されます。
解決策が不足しているように感じ、ここで助けを見つけたいと思っていました。これに関するトピックがあった場合は申し訳ありませんが、3 つしか見つかりませんでしたが、どれも私の質問に答えてくれませんでした。以下、興味のある方は参考にしてください。私が見つけることができるものは本当に何もありません:P
function - 呼び出しコマンドPowershellを使用して関数内で関数を呼び出す
呼び出しコマンドの関数内で関数を呼び出したいと思っています。私はこれを適切に行っていないようです。「get-group_users」が認識されないというエラーが表示されます。すべてが 1 つの ps1 スクリプトに含まれています。
切り捨てられたスクリプト:
だから、私はget-groups_users
関数を除外しています。誰かがそれがすべてを説明するのに役立つと思うなら、私はそれを投稿できます. それは長いものです。また、私は$xmlwriter
定義を省略しています。
get-groups_users
COMP1で実行すると機能しますが、サブコンプPSSession
のinvoke-commandで入力して使用すると、認識されません。
私は何を忘れていますか?
powershell - pssession 関数が機能しない
多くの PowerShell スクリプトが実行するユーザー コンテキストを変更する必要がある特定のユース ケースがあります。確実に動作するコードがありますが、各スクリプトで繰り返すのではなく、関数に入れようとしています。
個別に、この関数の行は機能しますが、関数として実行すると、スクリプトでエラーは発生しませんが、結果は得られません。
誰かがこれで私が欠けているものを見つけることができれば、私はそれを大いに感謝します.
powershell - 呼び出しコマンドと msiexec
Invoke-Command
コマンドレット を使用してリモート マシン上のアプリケーションを削除しようとしていますが、機能しません。
これが私のスクリプトです:
このコンテキストで、信頼できる有効な代替手段はありますか?
json - Invoke-Command から返された余分なデータ
PowerShell を使用して、リモート サーバーのリストからデータを収集し、それを JSON オブジェクトに変換しています。すべて正常に動作していますが、除外できないような非常に奇妙な出力が得られます。
結果をパイプして、Invoke-Command
プロパティを除外しようとしました。また、返されたハッシュ ファイルからアイテムを手動で削除しようとしましたが、削除できないようです。
私は何が欠けていますか?
編集:
ここで何が問題なのかを理解するために、単純化されていますが、まだ壊れているスクリプトがあります。
どの出力:
windows - 配列引数などを渡す方法は?
エラー:
Invoke-Command : 引数 'True' を受け入れる位置パラメーターが見つかりません。
高低を検索しましたが、引数リスト内の何かと一緒に配列を渡す方法が見つかりません。試してみました: (,$files,$copyxml)
、(,$files),$copyxml
、および(,$files) $copyxml
これを行う方法はありますか?