在powershell中映射驱动器的脚本

时间:2021-01-08 14:21:22

标签: powershell

我需要能够在计算机登录期间通过 Powershell 脚本映射几个驱动器。到目前为止我拥有的脚本(感谢在这个论坛上的帮助)如下

while ($true)
{
    try
    {
        $Credential = $host.ui.PromptForCredential("Need credentials", "Please enter your user name and password.", "", "NetBiosUserName")

        # Prevent cancel that maps PSDrive anyway
        if ($Credential)
        {
            New-PSDrive -Name "T" -PSProvider  FileSystem -Root \\servername\share -Persist -Credential $Credential -ErrorAction Stop
        }
        else
        {
            throw [System.ComponentModel.Win32Exception]::new(0x80004005)   # Invalid login and/or password
        }
        "OK"

        # PSSDrive created, exiting the infinite loop
        break
    }
    catch
    {
        Write-Warning "Wrong Username and/or password, please retry..."
    }
}
"Continue"

问题是,当我在上面的驱动器下添加另一个要映射的驱动器时,就像这样

New-PSDrive -Name "P" -PSProvider  FileSystem -Root \\servername\share -Persist -Credential $Credential -ErrorAction Stop
New-PSDrive -Name "T" -PSProvider  FileSystem -Root \\servername\share -Persist -Credential $Credential -ErrorAction Stop

脚本只是循环显示“错误的用户名/密码......”消息

如果我注释掉任一驱动器映射行,它就可以正常工作

任何帮助将不胜感激 谢谢

1 个答案:

答案 0 :(得分:0)

仅尝试此操作以查看错误

    Remove-PSDrive -Name T
    $Credential=$null
    $Credential = $host.ui.PromptForCredential("Need credentials", "Please enter your user name and password.", "", "NetBiosUserName")
    New-PSDrive -Name "T" -PSProvider  FileSystem -Root \\server\share -Persist -Credential $Credential -ErrorAction Stop
相关问题