首页 > 解决方案 > Shell NameSpace 更改每个映射网络驱动器的标签

问题描述

我正在研究将网络共享映射为驱动器的 GUI 脚本。到目前为止,我是成功的,但是现在,每次我映射另一个驱动器时,它的名称都会应用于每个先前创建的驱动器。请帮忙。我希望每个驱动器都有一个单独的名称

$button_click_2 = { $letter = -join($textBox.Text,":")
                    Invoke-Expression "C:\Windows\System32\net.exe use $letter \\192.168.0.10\GRY /persistent:yes"            
                    $shell = New-Object -ComObject Shell.Application
                    $shell.NameSpace("$letter").Self.Name = $textBox2.Text
                    }

$textBox2 = New-Object System.Windows.Forms.TextBox
$textBox2.Location = New-Object System.Drawing.Point(10,70) ### Location of the text box
$textBox2.Size = New-Object System.Drawing.Size(240, 20) ### Size of the text box
$textBox2.Multiline = $true ### Allows multiple lines of data


$textBox = New-Object System.Windows.Forms.TextBox
$textBox.Location = New-Object System.Drawing.Point(10,40)
$textBox.Size = New-Object System.Drawing.Size(240,20)
$form.Controls.Add($textBox)

$form = New-Object System.Windows.Forms.Form
$form.Text = 'Test Przycisku Skrot' ### Text to be displayed in the title
$form.Size = New-Object System.Drawing.Size(500,500) ### Size of the window
$form.StartPosition = 'Manual'
$form.Location      = '10,10'
$form.Topmost = $true  ### Optional - Opens on top of other windows


$test_button = New-Object System.Windows.Forms.Button
$test_button.Location = New-Object System.Drawing.Size(200,420)
$test_button.Size = New-Object System.Drawing.Size (170,23)
$test_button.Text = "Mapowanie Dysku Sieciowego"
$test_button.Add_Click($button_click_2)

$form.Controls.AddRange(@($test_button,$textBox,$textBox2))



$form.ShowDialog()

标签: powershelluser-interfacenetworkinglabeldrive

解决方案


答案是,即使您将共享文件夹映射到多个驱动器号下,仍然是 MountingPoints2 中保存标签的单个注册表项。


推荐阅读