2016-12-12 18 views
0

実行するユーザー名とパスワードが必要なカスタムコマンドレットがいくつかあります。現時点では、これらのコマンドレットを実行するたびに、資格情報を入力する必要があります。使用パターンは、私が典型的に短い時間枠内でこれらのコマンドの様々な組み合わせを実行するようなものであり、おそらくカップル日ごとに1回です。これは、この短期間に数回パスワードを入力する必要があることを意味します。Powershellコマンドレット呼び出しでのパスワードのメモリ内キャッシュ

Powershellにメモリ内の資格情報を一定期間キャッシュする方法はありますか?私はこれがセキュリティ上のトレードオフだと認識していますが、特にパスワードがSecureStringとして保存されているため、私が作ろうとしているものです。私がコマンドレット呼び出しを介してデータを保存することができる永続的な "セッション"オブジェクトがある場合、それも機能しますが、そのような機能を特定できませんでした。

UPDATE

私は、.NETのコアをターゲットだし、PSCredentialタイプを使用することができなかった言及を忘れてしまいました。私は私の基本コマンドレットクラスでこれを持っている:

[Parameter(
    Mandatory = true, 
    HelpMessage = "Credentials for access.", 
    ValueFromPipelineByPropertyName = true)] 
public PSCredential Credentials 
{ 
    get; 
    set; 
} 

しかしPasswordプロパティは、コンパイラエラーを与える逆参照しよう:私のプロジェクトの

Reference to type 'SecureString' claims it is defined in 'mscorlib', but it could not be found Contented.PowerShell..NETStandard,Version=v1.6 

関連する依存関係は、以下のとおりです。

"dependencies": { 
    "Microsoft.PowerShell.5.ReferenceAssemblies": "1.0.0-*", 
    "System.Security.SecureString": "4.3.0" 
}, 

答えて

0
$cred = Get-Credentials 

そして、呼び出すコマンドに$credを渡します。または(PSセッションについて話している場合)この方法で、セッションを再利用して多くのコマンドを呼び出すことができます。

$session = New-PSSession 
Invoke-Command -Session $session -ScriptBlock {} 
+0

残念ながら、私は.NETコアをターゲットにしているため、残念ながら 'PSCredential'が機能しませんでした。問題の言及を忘れた、申し訳ありません。 –

+0

よく、あなたのコードや何かを共有する、その問題が今何か完全に不明確 – 4c74356b41

+0

更新された質問を参照してください。 –

関連する問題