特定のユーザーとしてスクリプトを実行しているが、自分のユーザーアカウントとしてスクリプトを実行していないときにエラーが発生します。これはWindows 2012R2上です。 Powershellモジュールがインストールされ、しばらく使用されていましたが、別のアカウントを使用すると実行されません。私はそれを実行することができたので、スクリプト内の欠落したファイルや誤ったコマンドを除外することができます。残りのスクリプトはこれに依存しています。私はまた、オートメーションを介してコマンドを実行するサービスアカウントを使用してconvertto-securestringオプションを実行しましたが、まだ動作していません。ConvertTo-SecureStringキーが指定された状態で使用できません
これは、私はこれは私がしてこのスクリプトを何度も実行しているユーザーB
line 4 $pwdTxt = Get-Content "E:\temp\ExportedPassword.txt"
line 5 $securePwd = $pwdTxt | ConvertTo-SecureString
ConvertTo-SecureString : Key not valid for use in specified state.
At E:\temp\get_user_cliffsv4.ps1:5 char:24
+ $securePwd = $pwdTxt | ConvertTo-SecureString
+ ~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidArgument: (:) [ConvertTo-SecureString],
CryptographicException
+ FullyQualifiedErrorId :
ImportSecureString_InvalidArgument_CryptographicError,Microsoft.PowerShell.
Commands.ConvertToSecureStringCommand
として実行しようとした後、エラーメッセージでパスワードを
$password = "password"
$secureStringPwd = $password | ConvertTo-SecureString -AsPlainText -Force
$secureStringText = $secureStringPwd | ConvertFrom-SecureString
Set-Content "E:\temp\ExportedPassword.txt" $secureStringText`
を変換するために走った安全なパスワードスクリプトです私はこのエラーのために私の個人アカウントとしてコマンドを実行しなければならなかったので、私はテストを完了することができたので、私はそのオプションを呼び出しました。私の質問は、私が使用しているアカウントが特定の権利を逃しているかどうかです。そのアカウントでPowershell拡張機能をインストールする必要がありますか、PSで、またはサービスアカウントでこのスクリプトを実行できるようにするサーバーで何かを設定/変更できますか?前もって感謝します!
自分で見つけたとおりです。 SecureStrings、Credentialsなどは、デフォルトでユーザー固有のキーを使用して暗号化されているため、異なるユーザーアカウント間で共有(または:漏洩)することはできません。 –
はい、これはシステムアカウントで動作しますので、ユーザー実行サービスよりも優れています。このようにしてサービスを実行する各ホストにキーを作成するプロセスがあります。 –