将共享映射到PowerShell中未分配的驱动器号 [英] Map the share to unassigned drive letter in powershell
本文介绍了将共享映射到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屋!
查看全文