【发布时间】:2021-06-07 15:54:47
【问题描述】:
我正在编写一个将网络共享映射为驱动器的 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()
【问题讨论】:
-
[1] 看起来您正在将多个驱动器映射分配给同一个目标......当您手动执行此操作时会发生什么?它是否将相同的名称应用于指向同一共享的所有映射驱动器? ///// 害羞你使用
net.exe和shell.application而不是New-PSDrive?-Name是字母,-Description是驱动器标签。 -
@Lee_Dailey -
NET USE将保留 PowerShell 外部的映射;New-PSDrive分配在 PowerShell 会话完成后立即消失。 -
Re [1] 这是真的。为了测试脚本,我“共享”了一个文件夹。我还没有开始介绍第三个文本框,其中将输入一个新的变量“路径”。关于 [另一部分] 我希望驱动器能够持续存在。如果我使用该参数名称,则必须以纯字母(即 V 或 K)而不是变量的形式给出,因此 net.exe 接受变量。我已经编写了可以做到这一点的批处理脚本。但我决定我想让它看起来不错。而不是 DOS 提示窗口。
-
下面你可以分别看到PS脚本和批处理脚本的结果[url=ibb.co/p2PkMLS][img]https://i.ibb.co/9nvd1r7/1.jpg[/img][/url][url=ibb.co/z2FC8sj][img]https://i.ibb.co/vdhfs1g/2.jpg[/img][/url]
-
@JeffZeitlin - 您阅读过该 cmdlet 的帮助吗?如果您使用明确记录的参数,则可以使它们粘住。 [咧嘴]
标签: powershell user-interface networking label drive