🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
PowerShell

Windows PowerShellはコマンドラインインターフェースであり、システム管理を含むWindowsタスク自動化のためのスクリプト言語です。

バッチファイル

バッチファイル(Batch File)は、Windowsのコマンドラインインタープリターによって複数のコマンドを実行させる事が出来るスクリプトファイルです。

Q&A

解決済

2回答

2603閲覧

powershellコマンドのバッチスクリプト組み込みについて

退会済みユーザー

退会済みユーザー

総合スコア0

PowerShell

Windows PowerShellはコマンドラインインターフェースであり、システム管理を含むWindowsタスク自動化のためのスクリプト言語です。

バッチファイル

バッチファイル(Batch File)は、Windowsのコマンドラインインタープリターによって複数のコマンドを実行させる事が出来るスクリプトファイルです。

0グッド

0クリップ

投稿2019/10/27 10:19

ps1ファイルでパスワードの暗号化/復号処理を行っています。
今回要件により復号処理をバッチスクリプト内「powershell -command」で組み込みたいのですが、上手く処理されません。
下記、コマンドの組み込み方法をご教示下さい。
※ps1ファイルでは稼働実績があります。

■暗号化(ango.ps1)処理=このまま使用予定
$FilePath = "D:\ango.sec"
$Credential = Get-Credential
$Credential.Password | ConvertFrom-SecureString | Set-Content $FilePath

■復号(hukugo.ps1)処理=元ネタ(実績あり)
$FilePath = "D:\ango.sec"
$Username = "Administrator"
$encryptedCred = Get-Content $FilePath | ConvertTo-SecureString
$cred = New-Object System.management.Automation.PsCredential($Username, $encryptedCred)
$ret = & echo $cred.GetNetworkCredential().Password | Out-File D:\hukugo_Pass.txt

■復号(hukugo_new.bat)処理=バッチスクリプトに組み込みたい
@echo on
echo "復号処理"
powershell -Command "Set-ExecutionPolicy RemoteSigned -Scope CurrentUser -Force"
powershell -Command "Set-Variable -name FilePath -value 'D:\ango.sec' -option constant"
powershell -Command "Set-Variable -name Username -value Administrator -option constant"
powershell -Command "$encryptedCred = Get-Content $FilePath | ConvertTo-SecureString"
powershell -Command "$cred = New-Object System.management.Automation.PsCredential($Username, $encryptedCred)"
powershell -Command "$ret = & echo $cred.GetNetworkCredential().Password | Out-File 'D:\hukugo_Pass.txt'"

以上
お願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

Zuishinさんの回答の意図しているところが理解できていないなら解決は困難だと思いますが、もし他にやるとしたら

  1. 頑張ってコマンドを連結してワンライナーで全部処理する
  2. batファイルから%temp%とかに一時ファイルとしてps1ファイルを文字列出力で書き出して実行する

の二択の気がするけど、「ファイル作っちゃダメ」の理由がわからないなら2もダメな可能性も十分あるから実質解決策は1だけでは。

投稿2019/10/27 12:08

gentaro

総合スコア8947

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2019/10/27 12:52

ご回答ありがとうございました! 解決しました! 本当に助かりました。 ありがとうございました!!
Zuishin

2019/10/27 13:00

回答を読んですらないという。
guest

0

powershell を何度も呼び出していますが、呼び出すたびに初期化されているので前の実行が無駄になっています。必要な処理を新たな ps1 にまとめ、一度で済ませてください。

投稿2019/10/27 10:26

Zuishin

総合スコア28669

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2019/10/27 11:01

ご回答ありがとうございます。 ps1ファイルにまとめて、バッチからはpowershell -fileで実行するという事でしょうか? 今回の要件としては、外部ファイル(ps1ファイル)が使えないため、バッチスクリプト内にpowershellのコマンドラインを組み込みたいものです。 ご教示頂いて恐縮ですが、ご回答内容は要件を満たすことができません。
Zuishin

2019/10/27 11:04

なぜ使えないんでしょうか?
退会済みユーザー

退会済みユーザー

2019/10/27 11:06

顧客要件になります。
Zuishin

2019/10/27 11:09

顧客から理由をなぜ聞かないんでしょう? 理由によっては別の方法も使えなくなります。
退会済みユーザー

退会済みユーザー

2019/10/27 11:20

顧客き詳細を伺った上でバッチスクリプト内でのpowershellコマンドの実装を伺いました。 ご教示頂きありがとうございました。 他の方からのご意見をお待ちします。
Zuishin

2019/10/27 11:22

で、その詳細を書かずに質問して他の方が答えられると思っているんでしょうか?
Zuishin

2019/10/27 11:37

ああ、答えなくて結構です。面倒だからアカウントは一つにしてほしいですね。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問