Powershell,如果不存在,则映射网络驱动器

时间:2018-08-01 19:29:35

标签: powershell dictionary

我只是从Power Shell和脚本编写开始,而我仍处于起步阶段。我想问您的意见和建议。

对于Powershell,我想为我的用户提供一个脚本,他们可以根据需要使用该脚本手动连接其网络驱动器。 驱动器号始终是预设的:T,U,V,W,X。 在连接之前,我想检查驱动器是否已连接或正在使用。如有必要,将它们映射。 您将如何解决?

1 个答案:

答案 0 :(得分:0)

您可以将New-PSDrive-Persist选项一起使用。我们还使用Get-PSDrive和一些逻辑来确定它们是否正在使用中并映射到正确的位置。

$Name = "T"
$Path = "\\Server01\MyShare"

$MappedDrive = (Get-PSDrive -Name $Name -ErrorAction SilentlyContinue)

#Check if drive is already mapped
if($MappedDrive)
{
  #Drive is mapped. Check to see if it mapped to the correct path
  if($MappedDrive.DisplayRoot -ne $Path)
  {
    # Drive Mapped to the incorrect path. Remove and readd:
    Remove-PSDrive -Name $Name
    New-PSDrive -Name $Name -Root $Path -Persist -PSProvider "FileSystem"
  }
}
else
{
  #Drive is not mapped
  New-PSDrive -Name $Name -Root $Path -Persist -PSProvider "FileSystem"
}