You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改PowerShell脚本让AWS Workspaces登录弹窗强制交互?

AWS Workspaces登录弹窗强制交互改造方案

针对弹窗可移动、可调整大小,且用户能绕过弹窗操作电脑的问题,对原脚本做以下修改,实现必须点击「确认」或「注销」才能继续操作:

修改后的完整脚本

[void] [System.Reflection.Assembly]::LoadWithPartialName("System.Drawing");
[void] [System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms");

$objForm = New-Object System.Windows.Forms.Form;

# 移除窗口控制按钮,设置固定边框禁止调整大小
$objForm.ControlBox = $False
$objForm.FormBorderStyle = [System.Windows.Forms.FormBorderStyle]::FixedSingle

# 重写窗口消息处理,禁止拖动窗口移动
$objForm.add_WndProc({
    param($sender, $e)
    if ($e.Msg -eq 0x0084) { # 拦截WM_NCHITTEST消息
        $e.Result = [System.Windows.Forms.HitTestValues]::Client
    }
})

$objForm.Text = "安全与法律通知";
$objForm.Size = New-Object System.Drawing.Size(640,480);
$objForm.StartPosition = "CenterScreen";
$objForm.Topmost = $True;
$objForm.ShowInTaskbar = $False # 不在任务栏显示,避免用户切换

$objForm.KeyPreview = $True;
$objForm.Add_KeyDown({if ($_.KeyCode -eq "Enter")
    {$objForm.Close()}})
$objForm.Add_KeyDown({if ($_.KeyCode -eq "Escape")
    {$objForm.Close(); logoff}})

$OKButton = New-Object System.Windows.Forms.Button;
$OKButton.Location = New-Object System.Drawing.Size(250,400);
$OKButton.Size = New-Object System.Drawing.Size(75,23);
$OKButton.Text = "确认";
$OKButton.Add_Click({$objForm.Close()});
$objForm.Controls.Add($OKButton);

$CancelButton = New-Object System.Windows.Forms.Button;
$CancelButton.Location = New-Object System.Drawing.Size(325,400);
$CancelButton.Size = New-Object System.Drawing.Size(75,23);
$CancelButton.Text = "注销";
$CancelButton.Add_Click({$objForm.Close(); logoff});
$objForm.Controls.Add($CancelButton);

$objLabel = New-Object System.Windows.Forms.Label;
$objLabel.Location = New-Object System.Drawing.Size(10,20);
$objLabel.Size = New-Object System.Drawing.Size(600,400);
$objLabel.Text = "您正在访问仅限官方使用的受限系统。

点击「确认」即表示您同意遵守所有组织安全政策。

禁止授权外人员访问本系统。"
$objForm.Controls.Add($objLabel);

$objForm.Add_Shown({$objForm.Activate()});
[void] $objForm.ShowDialog();

关键修改说明

  • 锁定窗口状态:通过FormBorderStyle = FixedSingle固定窗口大小,同时重写窗口消息拦截拖动操作,彻底禁止窗口移动和调整。
  • 强制独占交互:保留ShowDialog()模态特性,配合Topmost = $True和ShowInTaskbar = $False,确保弹窗始终处于最上层,用户无法切换到其他窗口或任务栏操作。
  • 汉化适配:将所有界面文本改为中文,符合国内使用场景。

内容的提问来源于stack exchange,提问作者Alex

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 05:27:32