【发布时间】:2026-02-09 11:15:02
【问题描述】:
我正在尝试使用 powershell 创建一个 GUI 页面。该脚本适用于 powershell 版本 4.0 。但是尝试在 poweshell 3.0 版中执行它时会引发异常
$return = button "Enter Parameters" "Enter Domain" "Enter User" "Enter Server"
function button ($title,$domain, $user, $Server) {
[void][System.Reflection.Assembly]::LoadWithPartialName( "System.Windows.Forms")
[void][System.Reflection.Assembly]::LoadWithPartialName( "Microsoft.VisualBasic")
$form = New-Object "System.Windows.Forms.Form";
$form.Width = 500;
$form.Height = 150;
$form.Text = $title;
$form.StartPosition = [System.Windows.Forms.FormStartPosition]::CenterScreen;
$textLabel1 = New-Object "System.Windows.Forms.Label";
$textLabel1.Left = 25;
$textLabel1.Top = 15;
例外:
At C:\Users\rights.ps1:16 char:35
+ [void][System.Reflection.Assembly]LoadWithPartialName( System.Windows.Forms)
+ ~~~~~~~~~~~~~~~~~~~
Unexpected token 'LoadWithPartialName' in expression or statement.
At C:\Users\rights.ps1:17 char:35
+ [void][System.Reflection.Assembly]LoadWithPartialName( Microsoft.VisualBasic)
+ ~~~~~~~~~~~~~~~~~~~
Unexpected token 'LoadWithPartialName' in expression or statement.
At C:\Users\rights.ps1:23 char:67
+ $form.StartPosition = [System.Windows.Forms.FormStartPosition]CenterScreen;
+ ~~~~~~~~~~~~
谁能帮我解决这个问题。
【问题讨论】:
-
看起来可能是编码问题 - 如果您将代码复制粘贴到记事本中并将其保存为编码为“ANSI”或“Unicode”的新脚本会发生什么?
-
我还找到了this answer 和this blog。归结为您可以尝试
Add-Type而不是LoadWithPartialName。那为什么你在 PS 4.0 中没有问题我真的不能说.. -
@MathiasR.Jessen...谢谢..用不同的编码保存它对我有用..
标签: powershell