Powershell 函数在调用时不映射驱动器



我正在创建一个New-PSDrive并通过共享驱动器进行映射。代码在函数之外按原样运行良好,但是每当它包装在函数中时,我都会看到它尝试映射驱动器。当我运行Get-PSDrive时,指定的共享驱动器未列出。

在函数之外运行脚本时,情况完全相反,我绝对可以看到运行Get-PSDrive后驱动器映射到共享文件夹,并且它也在文件夹资源管理器中的"计算机"下列出/显示。

function MapDrive {
# creates an array of available Drive Letters 
$driveArray = @("A","B","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z")
# check every letter in the array if its available then create a New-PSDrive
foreach ($letter in $driveArray) {
    If (!(Test-Path "$letter`:")) {
        New-PSDrive -Name $letter -Root "\my_server_ipshared_folder" -Persist -PSProvider Filesystem -Credential (Get-Credential)
        break
    }
    Else {
        Write-Host "No available Drives."
        break
    }
}
}
MapDrive
Get-PSDrive

使用来自 获取免费驱动器号:

$letter = Get-ChildItem function:[f-z]: -n | Where { !(Test-Path $_) } | select -First 1
New-PSDrive -Name ($letter)[0] -Root "\my_server_ipshared_folder" -Persist -PSProvider Filesystem -Credential (Get-Credential)

最新更新