无法从 GUI 的 unc 路径调用 powershell GUI 脚本

cant call powershell GUI script from unc path from a GUI

我有一个 powershell GUI 可以启动第二个 ps1 文件(也是一个 GUI),它工作正常并且将 argu 毫无问题地传递给第二个文件,当它在 C: 驱动器上时 我正在尝试将它与 \share\service desk\sdtools.ps1 的 UNC 路径一起使用 但是打不开

以下作品

Function login {

$sdnum = $numInputBox.text

Start-Process "powershell.exe" -windowstyle hidden -ArgumentList "-File C:\servicedesk\sdtool.ps1 -a $sdnum"

#Close login-form so the first script will finish.
$form.Close()

}

下面从不启动第二个文件

Function login {

$sdnum = $numInputBox.text

Start-Process "powershell.exe" -windowstyle hidden -ArgumentList "-File \share\service desk\sdtool.ps1 -a $sdnum"

#Close login-form so the first script will finish.
$form.Close()

}

我想这就是我封装文件名的方式,但我尝试了很多方法,但没有一个幸运的是它可以将文件作为文本文档打开,所以我设法让它调用文件但不运行在 powershell 中(我也尝试过使用 powershell 的完整路径并且它不起作用)

as \share\service desk\sdtool.ps1 与 g:\service desk\sdtool.ps1 相同,我也尝试过但没有成功。

路径中有一个space,需要用引号括起来:

Start-Process "powershell.exe" -NoNewWindow -ArgumentList "-File `"\share\service desk\sdtool.ps1`" -a $sdnum"

下面是我正在使用的完整 ps1 文件

Add-Type -AssemblyName System.Windows.Forms
$form = New-Object Windows.Forms.Form
$form.Size = New-Object Drawing.Size @(230,75)
$form.StartPosition = "CenterScreen"
$Form.Text = "Please Login"
$Label = New-Object System.Windows.Forms.Label
$Label.Location = New-Object System.Drawing.Size(5,5) 
$Label.Size = New-Object System.Drawing.Size(55,20) 
$Label.Text = "Staff no:"
$Form.Controls.Add($Label) 
$numInputBox = New-Object System.Windows.Forms.TextBox
$numInputBox.Location = New-Object System.Drawing.Size(60,5) 
$numInputBox.Size = New-Object System.Drawing.Size(50,26) 
$numInputBox.text = ""
$numInputBox.add_Keydown({if ($_.KeyCode -eq "Enter") 
{login}})
$form.Controls.Add($numInputBox)

Function login {

$sdnum = $numInputBox.text

#Start-Process "powershell.exe" -WindowStyle Hidden -ArgumentList "-File ‘”\share\Service              Desk\sdtool.ps1`" -a $sdnum"
Start-Process "powershell.exe" -ArgumentList "-File `"\share\Service Desk\sdtool.ps1`" -a         $sdnum"
$Form.Close()

}

$loginbutton = New-Object System.Windows.Forms.Button
$loginbutton.Size = New-Object System.Drawing.Size(75,21)
$loginbutton.Location = New-Object System.Drawing.Size(115,4)
$loginbutton.add_click({login})
$loginbutton.Text = "Login"
$form.Controls.Add($loginbutton)
$drc = $form.ShowDialog()