将共享映射到PowerShell中未分配的驱动器号 [英] Map the share to unassigned drive letter in powershell

查看:8
本文介绍了将共享映射到PowerShell中未分配的驱动器号的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用PowerShell映射我的网络驱动器,如下所示。

$net = new-object -ComObject WScript.Network
$net.MapNetworkDrive("r:", "$Folder","FALSE","DomainUserName", "Password")
但在这里,我以r:的形式发送驱动器号。如果r:驱动器已被使用,则它将失败。

是否可以将驱动器映射到未分配的驱动器号。(例如:如果R:已分配,但S:未分配,则应自动映射到S:驱动器)

推荐答案

首先,您需要获取下一个可用的驱动器号。以下是Archive of PowerShell.com中的一个示例:

function Get-NextFreeDrive {
  68..90 | ForEach-Object { "$([char]$_):" } | 
  Where-Object { 'h:', 'k:', 'z:' -notcontains $_  } | 
  Where-Object { 
    (new-object System.IO.DriveInfo $_).DriveType -eq 'noRootdirectory' 
  }
}

来自PowerShell.com:

从列举字母D:到Z:的ASCII代码开始。这个 然后,管道会将这些ASCII代码转换为驱动器号。接下来, 了解管道如何使用包含您所执行的驱动器的排除列表 不想用于映射(可选)。在本例中,驱动器号 H:、k:和z:从不使用。最后,管道使用.NET 对象以检查驱动器是否正在使用。

$net = new-object -ComObject WScript.Network
$net.MapNetworkDrive((Get-NextFreeDrive)[0], "$Folder","FALSE","DomainUserName", "Password")

这篇关于将共享映射到PowerShell中未分配的驱动器号的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆