Powershell持久映射驱动器不会保存下次登录的凭据

时间:2016-08-10 22:49:04

标签: powershell batch-file vbscript

所以我有这个PowerShell(或vbs或批处理)脚本我试图写。它需要做的就是持久地使用备用凭证的网络驱动器映射。出于某种原因,证书似乎并不存在。它最初映射正常,然后登录时驱动器将有一个红色的X,当试图打开它时,我会收到提示输入密码。

当以管理员身份运行powershell时,重新登录时,驱动器甚至不再显示。我因为范围问题而猜测,但我认为全球旗帜应该照顾到它?

我也尝试过使用" net use"方法和" Wscript.Network"来自powershell的方法...相同的结果。

我是Windows脚本的新手,所以它可能是非常愚蠢的东西。这是我正在使用的脚本的基本要素。我将它直接粘贴到PowerShell窗口中。我哪里误入歧途?

$user = "USERNAME"
$pass = "PASSWORD"

$cur_share = "\\192.168.1.100\websites"

$drive = "X"

$PWord = ConvertTo-SecureString -String $pass -AsPlainText -Force
$Credential = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $user, $PWord

New-PSDrive -Name $drive -PSProvider "FileSystem" -Root $cur_share -Scope "Global" -Persist -Credential $Credential

2 个答案:

答案 0 :(得分:1)

您看到此行为是因为您正在使用备用凭据。如果我使用您自己的凭据使用您的代码,驱动器即使在重新启动时仍然存在,但如果我使用备用凭据则不会。这显然是按照设计的。

cmdlet帮助中的相关详细信息:

  

映射的网络驱动器特定于用户帐户。映射网络   您在使用“运行”启动的会话中创建的驱动器   作为管理员选项或使用其他用户的凭据   在没有显式启动的会话中不可见   凭证,或使用当前用户的凭据。

参考:

https://technet.microsoft.com/en-us/library/hh849829.aspx?f=255&MSPPError=-2147217396

答案 1 :(得分:0)

谢谢乔恩。正如你发布的那样,我发现了一个可行的解决方案。关键是在使用网络路径之前将凭证存储在管理中。

$result = cmdkey /add: "192.168.1.100" /user: "USERNAME" /pass: "PASSWORD"

存储凭证持久性。然后映射驱动器持续工作,没有密码提示。