[解決済み】powershellで再利用するために資格情報を保存すると、ConvertTo-SecureString : Key not valid for use in specified stateというエラーが発生する。
質問
この投稿で説明されているようなことを行って、認証情報を保護されたファイルに保存し、自動化プロセスでそれを使用して Invoke-command を介してリモート PS スクリプトを実行できるようにしていました。 http://blogs.technet.com/b/robcost/archive/2008/05/01/powershell-tip-storing-and-using-password-credentials.aspx
パスワードは暗号化されたファイルから読み込まれ、Invoke-commandに渡され、すべてがうまくいきます。
今日、スクリプトの準備ができたので、自動化プロセスで使用されるWindowsアカウントで実行しようとしたところ、スクリプトがファイルから保護されたパスワードを読み込もうとしているときに、以下のエラーが発生しました。
ConvertTo-SecureString : Key not valid for use in specified state.
At \\remoted\script.ps1:210 char:87
+ $password = get-content $PathToFolderWithCredentials\pass.txt | convertto-sec
urestring <<<<
+ CategoryInfo : InvalidArgument: (:) [ConvertTo-SecureString], C
ryptographicException
+ FullyQualifiedErrorId : ImportSecureString_InvalidArgument_Cryptographic
Error,Microsoft.PowerShell.Commands.ConvertToSecureStringCommand
仕事仲間に彼のアカウントで実行するように頼んだら、同じエラーが出た。
これは、私が認証情報を保存するために使用しているコードです。
$PathToFolderWithCredentials = "\\path\removed"
write-host "Enter login as domain\login:"
read-host | out-file $PathToFolderWithCredentials\login.txt
write-host "Enter password:"
read-host -assecurestring | convertfrom-securestring | out-file $PathToFolderWithCredentials\pass.txt
write-host "*** Credentials have been saved to $pathtofolder ***"
これは、Invoke-commandで使用するためにそれらを読み取る自動化プロセスで実行するスクリプトのコードです。
$login= get-content $PathToFolderWithCredentials\login.txt
$password = get-content $PathToFolderWithCredentials\pass.txt | convertto-securestring
$credentials = new-object -typename System.Management.Automation.PSCredential -argumentlist $login,$password
Error happens on line $password = get-content $PathToFolderWithCredentialspass.txt | convertto-securestring
何か思い当たることはありますか?
解決方法は?
ConvertFrom-SecureString
を取る。
Key
( と
SecureKey
) パラメータを使用します。鍵を指定して暗号化された標準文字列を保存し、その鍵を再び
ConvertTo-SecureString
を使用すると、ユーザーアカウントに関係なく、安全な文字列を取得できます。
http://technet.microsoft.com/en-us/library/dd315356.aspx
あるプロジェクトで、非対称暗号化を実装しました。人々は公開鍵を使ってパスワードを暗号化し、自動化プロセスはパスワードを復号するための秘密鍵を持つというものです。 自動デプロイのための本番環境設定でのパスワードの扱い
関連
-
[解決済み] Powershellスクリプトから7-Zipを実行する
-
[解決済み] [System.Web.Security.Membership]::GeneratePassword() - Type Not found
-
[解決済み] Powershellでパラメータを切り替える
-
[解決済み] Powershell New-ScheduledTaskTrigger -RepetitionIntervalを使った反復タスクの実行
-
[解決済み] PowerShellでコンソールに書き込むには?
-
[解決済み] PowerShellでファイルをダウンロードする
-
[解決済み] Powershell Get-ChildItem -Filter は、同じ値でWhere句とは異なる動作をします。
-
[解決済み] Join-Pathを使って、2つ以上の文字列をファイルパスに結合するにはどうすればよいですか?
-
[解決済み] powershellでToStringを使用して日付をフォーマットする
-
[解決済み] Powershell プロセスの開始、タイムアウトによる待機、Kill、終了コードの取得
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】PowerShellの関数で変数をインクリメントする
-
[解決済み] ConvertTo-Csv 引用符なしの出力
-
[解決済み] Add-ADGroupMember が ID を持つオブジェクトを見つけられません。
-
[解決済み] powershellでマウスクリックを送信するにはどうすればよいですか?
-
[解決済み] PowerShellと-contains演算子
-
[解決済み] Powershell ISE 内の別の PS1 スクリプトから PowerShell スクリプト PS1 を呼び出す
-
[解決済み] PowerShellでLDAPクエリ
-
[解決済み] グローバル変数名が関数に渡された変数である関数からPowerShellのグローバル変数を設定する
-
[解決済み] powershellでToStringを使用して日付をフォーマットする
-
[解決済み] Install-Module : 'Install-Module' という用語は、コマンドレット名として認識されません。