所以我有这个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
答案 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"
存储凭证持久性。然后映射驱动器持续工作,没有密码提示。