映射的网络驱动器在重启时重置

映射的网络驱动器在重启时重置

我遇到一个问题,即我的映射网络驱动器在重新启动后变得不可用,尝试了各种解决方案使其持久存在[/persistent:yes通过 PowerShell 等重新映射时]:

  • net use Z: "\\10.0.1.145\xyz"驱动器连接正常,但重启后无法继续

我编写了一个脚本来自动完成这个任务:

  • If ( !(Test-Path -Path "\\10.0.1.145\") ) {
       net use Z: "\\10.0.1.145\xyz" /persistent:yes
    }
    
    • 奇怪的是:
      Test-Path -Path "\\\10.0.1.145\\"= false
      Test-Path -Path "\\\10.0.1.145\xyz"=true

  • net use Z: "\\10.0.1.145\xyz" /persistent:yes获得与这两个命令相同的结果Test-Path,唯一的区别是Z:可以通过 CMD 访问Z:一直可以通过 Explorer 访问)

如果前者不起作用,我该如何Z:持续映射或可靠地自动化?10.0.1.145

答案1

当 Windows 10 登录时,存在一个时间问题,导致它在网络可用之前尝试映射网络驱动器,因此所有网络映射都被禁用。

修理:

  • 跑步开始 > 编辑组策略(或者gpedit.msc
  • 导航 计算机配置 > 管理模板 > 系统 > 登录
  • 将“在计算机启动和登录时始终等待网络”设置为“已启用”
  • 单击“应用/确定”。

答案2

我遇到了类似的问题,并且可以通过将凭据添加到凭据管理器中的通用凭据来解决:

cmdkey /generic:10.0.1.145 /user:yourUser /pass:yourPass

答案3

这为我解决了这个问题1 ..

  1. 创建C:\Scripts\NetworkDriveMap.ps1脚本(Scripts如果不存在则创建文件夹),
  2. 创建C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup\NetworkDriveMap.cmd脚本,
  3. 完毕。

.cmd脚本将在 Windows 启动时执行,它将设置权限并调用.ps1脚本,该脚本将尝试重新连接共享网络(%Temp%\StartupLogs.txt重启后检查文件)。

以下是脚本

网络驱动器地图.ps1

$i=3

while($True){

    $error.clear()

    $MappedDrives = Get-SmbMapping |where -property Status -Value Unavailable -EQ | select LocalPath,RemotePath

    foreach( $MappedDrive in $MappedDrives)

    {
        try {

            New-SmbMapping -LocalPath $MappedDrive.LocalPath -RemotePath $MappedDrive.RemotePath -Persistent $True

        } catch {

            Write-Host "There was an error mapping $MappedDrive.RemotePath to $MappedDrive.LocalPath"
        }
    }

    $i = $i - 1

    if($error.Count -eq 0 -Or $i -eq 0) {break}

    Start-Sleep -Seconds 30
}

网络驱动器映射

PowerShell -Command "Set-ExecutionPolicy RemoteSigned -Scope CurrentUser" >> "%TEMP%\StartupLog.txt" 2>&1
PowerShell -File "%SystemDrive%\Scripts\NetworkDriveMap.ps1" >> "%TEMP%\StartupLog.txt" 2>&1

1本文来源自本文,略作修改(修复路径、引用)。

相关内容