使用编码凭据映射PS 2.0中的网络驱动器

时间:2016-03-23 20:09:35

标签: powershell

我需要映射驱动器,并且我有一个编码的PW,我需要连接到DMZ驱动器。

我正在使用以下代码映射驱动器:

[Byte[]]$key = (1..16)
$pw = Get-Content .\LocalAdminCred.txt | ConvertTo-SecureString -key $key

# some other stuff

[string]$pwencoded = ConvertFrom-SecureString $pw -Key $key
$Map = New-Object -comobject Wscript.Network
$Map.MapNetworkDrive($_.letter,$_.path,$false,$_.username,$pwencoded)

你的眼睛首先捕获的是$pwencoded变量 - 我必须使用字符串作为PW,这就是我需要将Secure.String解码为普通字符串的原因,否则我会有一个类型不匹配。现在问题是.MapNetworkDrive需要密码以纯文本形式,如'password',而我的是密码而不是纯文本。

问题:是否可以使用加密密码或更好的安全字符串来映射我的网络驱动器?我真的不想使用纯文本。

首先,我想用New-PSDrive进行映射,但由于脚本必须适用于PS 2.0,我无法使用它,因为那里不存在-persist参数。

1 个答案:

答案 0 :(得分:1)

我认为这不是您正在寻找的答案,但Dave Wyattfew blog posts关于使用secure stringscredentials的答案。

  

...我还在ConvertFrom-SecureString命令中添加了一个-AsPlainText开关,以防你想要恢复纯文本。

我知道如何映射驱动器的唯一两种方法是使用纯文本凭据。唯一的另一种方法是将脚本作为具有网络位置权限的帐户运行;这样您就不必使用密码进行身份验证。