2017-10-24 2 views
0

ハイテクみんなcmdのコマンドを実行し、変数にその一部を割り当てるしようとすると(下記参照)PowerShellでは、私はこの文は私がPSで実行しているしている

sc.exe \\localhost config serviceName obj= lab\user password= password type= own 

しかしそのscコマンドを正常に動作します

$user  = "lab\user" 
$password = "password" 


$sc = "\\localhost config serviceName obj= {0} password= {1} type= own" -f $user, $password 


sc.exe $sc 

は、いつものように助けに感謝CMD

(動作しない)によって認識されていません!

+0

コマンドを前と同じように入力し、Enterキーを押します。なぜあなたは変数が必要ですか? –

+0

私はユーザーとパスワードの代わりに値を渡す必要があります –

+0

なぜ私はそこに変数を使用する必要があるより明確化を追加 –

答えて

1

PowerShellはコマンドを実行できるシェルであることを覚えておいてください。コマンドを行の先頭に置き、その後に引数を入力します。引数のいずれかが変数から来た場合は、そこに配置してください。これは、あなたがする必要があるすべてである:

$user  = "lab\user" 
$password = "password" 

sc.exe \\localhost config aie-agent-service obj= $user password= $password type= own 

私はそれはプログラムやスクリプトのいずれかの種類にパスワードを埋め込むことは悪い考えであることは言うまでもない願っています。

+0

Thanks Bill。うんpwdは安全な文字列で渡されます。私はあなたのアドバイスを取ってスクリプトを簡略化します –

-1

参照している.exeがグローバルパスまたは作業中のディレクトリに存在しない可能性があります。したがって、名前のスペルだけで呼び出すことはできません。 .exeを参照するには、実行可能ファイルを「ドットソース」するか、パスにファイルを追加するか、パスに既に存在するフォルダにファイルを保存する必要があります。 「マイコンピュータ - >プロパティ - >詳細 - >環境変数 - >パス」をクリックし、.exeにパスを追加することで、パスを変更できます。

+0

ありがとうが、私は持っている観測。 sc.exeコマンドが文法上の問題に苦情を出しています....エスケープする問題があるかどうか疑問に思っています –

関連する問題