Sam*_*abu 3 powershell powershell-2.0
我使用PowerShell映射我的网络驱动器,如下所示.
$net = new-object -ComObject WScript.Network
$net.MapNetworkDrive("r:", "$Folder","FALSE","Domain\UserName", "Password")
Run Code Online (Sandbox Code Playgroud)
但是我在这里发送驱动器号码r:
.如果r:
已经使用了驱动器,则会失败.
有没有办法将驱动器映射到未分配的驱动器号.(例如,如果R:
已分配,但S:
不是,则应自动映射到S:驱动器)
首先,您需要获取下一个可用的驱动器号.以下是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'
}
}
Run Code Online (Sandbox Code Playgroud)
来自PowerShell.com:
它首先枚举字母D:到Z:的ASCII代码.然后,管道将这些ASCII代码转换为驱动器号.接下来,查看管道如何使用排除列表以及不希望用于映射的驱动器(可选).在此示例中,从不使用驱动器号h:,k:和z :. 最后,管道使用.NET DriveInfo对象来检查驱动器是否正在使用中.
$net = new-object -ComObject WScript.Network
$net.MapNetworkDrive((Get-NextFreeDrive)[0], "$Folder","FALSE","Domain\UserName", "Password")
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3239 次 |
最近记录: |