2011-01-11 5 views
5

私はpowershellでネットワーク共有に接続しようとしています。ネットワーク共有は別のドメインにあるため、資格情報を提供する必要があります。 New-PSDriveは資格情報をサポートしていませんので、ネット使用を使用するつもりでしたが、私は自分のユーザー名/パスワードをプレーンテキストでスクリプトに入力することに心配しています。 ConvertTo-SecureStringにパスワードの安全な文字列を作成し、ConvertFrom-SecureStringを使用し、その結果をファイルに保存しました。その後、私はこのようなファイルからそれを引っ張り、ネット利用試してみました:Powershell:平文以外のユーザー名/パスワードが格納された別のドメインのネットワークフォルダに接続するには

$password = Get-Content <locationOfStoredPasswordFile> | ConvertTo-SecureString 
net use q: "\\server\share" $password /user:domain\username 

しかし、セキュリティで保護された文字列を認識しませんネット利用を。

資格情報を保存する方法はありますか?ネット使用は誰でも使用できますか?ありがとう!

答えて

7

ここでは、文字列の暗号化/復号化に使用する2つの関数を示します。彼らはpowershell.comの投稿から適応されましたが、私はリンクを手元に持っていません。そのアイデアは、パスワードファイルがProtect-Stringの出力を格納し、通常の文字列に変換してファイルを読み込み、UnProtect-Stringを呼び出すということです。UnProtect stringから返された値は$ password変数になります。

####################### 
function Protect-String 
{ 
    param([string]$InputString) 
    $secure = ConvertTo-SecureString $InputString -asPlainText -force 
    $export = $secure | ConvertFrom-SecureString 
    write-output $export 

} #Protect-String 

####################### 
function UnProtect-String 
{ 
    param([string]$InputString) 

    $secure = ConvertTo-SecureString $InputString 
    $helper = New-Object system.Management.Automation.PSCredential("SQLPSX", $secure) 
    $plain = $helper.GetNetworkCredential().Password 
    write-output $plain 

} #UnProtect-String 
+1

華麗に動作します。どうもありがとうございました! – Jeshii