2017-04-13 3 views
-1

このコマンドを使用してCMDからPowerShellを起動しようとしています。PowerShellセッションでpowershell.exeコマンドの結果にアクセスする方法?

powershell.exe -NoProfile -NoExit -command "& {$someVar = 'test'}" 

は、どのように私はPowerShellで変数SOMEVARにアクセスします。 MSDNによれば、「スクリプトの結果は、生きているオブジェクトではなく、逆シリアル化されたXMLオブジェクトとして親のシェルに返されます。 。

+2

hereは、 "私はCMDからPowerShellを起動しようとしています" スコープ) - なぜですか? –

+0

残りのコードは何をしていますか?それ以上の文脈を持たない1行のコードは、あまり役に立ちません。 –

+0

Hello Bill、James:ID管理システムへのREST呼び出しを行い、いくつかの値を取得するアプリケーションがあります(例:ユーザー名、アプリケーションを実行するユーザーの適格性に基づく一部のアプリケーションのパスワード)。私たちは、ユーザー、特に管理者のような誰かが、既に利用可能なすべての変数を使用してPowerShellセッションを開始するボタンをクリックできるようにオプションを用意しようとしています。 – Rakesh

答えて

0

& {$someVar = 'test'}"は、スクリプトブロックの実行が終了したときに削除されるローカルスコープ内でスクリプトブロックを実行します。あなたは$global -scope(セッション全体)

CMD> powershell.exe -NoProfile -NoExit -command "& {$global:someVar = 'test'}" 

PS> $someVar 
test 

またはこの場合には現在のスコープ(セッションですべてを実行しスクリプトブロックを、excecuteするドット調達. <script/scriptblock>を使用して変数を作成する必要があり

CMD> powershell.exe -NoProfile -NoExit -command ". {$someVar = 'test'}" 

PS> $someVar 
test 

変数の詳細を読むには

+0

ありがとうFrode F私はPowerShellの新機能ですので、これらのコマンドがローカルスコープで実行されていることに気づいていませんでした。私はスコープを今読んで行くつもりです。再度、感謝します。 – Rakesh

関連する問題