2016-05-06 4 views
0

私はPowerShellでかなり新しく、非常にシンプルなように思っていますが、何かする方法が見つからないインターネット。正直なところ私はこの用語になじみがないので、それがもっとあるかもしれないと思う。とにかくここに行く:(PowerShell)ユーザー入力をcmd引数に差し込みます

私がしようとしているのは、使用するサービスをターゲットにするためにユーザー入力を使用するSet-Serviceを取得することです。私は、これは

スタート-サービス-Name $サービス

のような単純なものだろうと思った。しかし、それは常にnullとして戻ってきます。

と私は

$サービスを使用しています= $サービスを定義するには、「サービス名」

-ホストを読んで、また、私はそれのように思えた文字列としてサービス$を使用しようとしました問題を引き起こしていたが、それは常に空の文字列として戻ってきた。

私はこれが正しいデータ型を使用していないと確信していますが、わかりません。誰かがこの簡単な問題で私を助けることができたら、私はそれを大いに賛美します。非常にシンプルでなければならないようなものは、私に大きなトラブルを引き起こしています。

おかげで、

編集:また、私は私がしようとしていますフルラインを追加する必要がある

Invoke-Commandコマンド-ComputerName $サーバー-Credential $ UserCreds -ScriptBlock {起動し、サービス-Name $サービス}

答えて

1

問題は、リモートスクリプトがローカル変数にアクセスできないことです。だからこそ、最も単純なシナリオで何かをテストして、それが機能するかどうかを常に確認する必要があります。ここでは、あなたが仮定しているように、問題はRead-Hostまたは変数にはありません。

リモートで実行中のスクリプトにローカル変数を使用できるようにするには、あなたがこれまでに必要です、これは魅力のように働いた https://technet.microsoft.com/en-us/library/hh849719.aspx

+0

非常にありがとう:

Invoke-Command -ComputerName $Server -Credential $UserCreds -ScriptBlock { param($Services) Start-Service -Name $Services } -ArgumentList $Services 

は、詳細はこちらをご覧多く。私はもっ​​と "経験豊富な"同僚のスクリプトを使用していましたが、私は私の追加に焦点を当てていましたが、追加を確認するつもりはありませんでした。 – BloodLines

関連する問題