PowerShell にてネットワークなどのUNCパスを取り扱う時に、ネットワークドライブに割り付けをしてからローカルドライブとして取り扱う時があります。
Zなど固定で済ませたいところですが、汎用化を考えて空きのドライブレターを探す関数を作ります。
PowerShellらしく、パイプを使ってみました。
# A~Zで、後ろから空きのドライブレターを取得する Function Get-FreeDriveLetter { $use = Get-PSDrive | ? {$_.Name.Length -eq 1} | % {$_.Name} $drive = [char]'Z'..[char]'A' | % {[char]$_} | ? { $use -notcontains $_} | Select-Object -first 1 return $drive }
以下は、この関数を使ってネットワークドライブを割り当てる例です
$drive = Get-FreeDriveLette #ネットワークドライブ割り当て New-PSDrive -Name $drive -PSProvider FileSystem -Root \\server01\share #ネットワークドライブ切断 Remove-PSDrive -Name $drive