在 PowerShell 和映射驱动器中读取 CSV

Read CSV in PowerShell and Map Drives

我希望从 .CSV 中读取数据,然后使用数据映射驱动器。该文件如下所示:

Location, UNC1, UNC2      
USA, \Server1\Data, \Server1\Shared
EMEA, \Server2\Data, \Server2\Shared

棘手的部分是我想从 CSV 中读取数据,然后显示在列表框中(我猜我必须召唤 VBS?)但只在框中显示区域。然后当我选择区域时,它会将 2 个 UNC 映射到本地计算机。

我已经阅读了一些帖子并且需要 Import-CSV - 只是在寻找一个起点。

有什么建议吗?

通常我们会要求您尝试自己做一些事情,然后我们会在此过程中帮助您解决问题。下次您提出问题时,请尝试自己编写代码,然后在遇到困难时寻求帮助。

我只是为了好玩而快速地完成了这个,因为它非常简单,享受吧。

function Map-Drive(){
    if($ComboBox1.text -eq "USA"){
        New-PSDrive -Name K -PSProvider FileSystem -Root $csv.UNC1[0] -Persist -Scope Global
        New-PSDrive -Name L -PSProvider FileSystem -Root $csv.UNC2[0] -Persist -Scope Global
    }
    if($ComboBox1.text -eq "EMEA"){
        New-PSDrive -Name M -PSProvider FileSystem -Root $csv.UNC1[1] -Persist -Scope Global
        New-PSDrive -Name N -PSProvider FileSystem -Root $csv.UNC2[1] -Persist -Scope Global
    }
}

$csv = import-csv "\server\folder\test.csv" -Delimiter ","

Add-Type -AssemblyName System.Windows.Forms
[System.Windows.Forms.Application]::EnableVisualStyles()

$Form                            = New-Object system.Windows.Forms.Form
$Form.ClientSize                 = '319,63'
$Form.text                       = "Regional Drive Map"
$Form.TopMost                    = $false

$ComboBox1                       = New-Object system.Windows.Forms.ComboBox
$ComboBox1.text                  = "comboBox"
$ComboBox1.BackColor             = "#d7ebff"
$ComboBox1.width                 = 143
$ComboBox1.height                = 54
$ComboBox1.location              = New-Object System.Drawing.Point(20,18)
$ComboBox1.Font                  = 'OCR A,12,style=Bold'

$Button1                         = New-Object system.Windows.Forms.Button
$Button1.BackColor               = "#eaeaea"
$Button1.text                    = "Map Drive"
$Button1.width                   = 107
$Button1.height                  = 30
$Button1.location                = New-Object System.Drawing.Point(174,14)
$Button1.Font                    = 'OCR A,10'

$ComboBox1.DataSource = [system.Collections.ArrayList]$csv
$ComboBox1.DisplayMember = 'Location'

$Button1.Add_Click({Map-Drive})

$Form.controls.AddRange(@($ComboBox1,$Button1))
#Finally Show our GUI
$Form.ShowDialog()