首页 > 解决方案 > Powershell GUI - 复制按钮

问题描述

我有一个 Powershell GUI 脚本,我需要做的最后一件事是添加一个按钮来将用户凭据复制到剪贴板。

下面,是相关代码。

$ResultsCopy                     = New-Object system.Windows.Forms.Button
$ResultsCopy.text                = "Copy"
$ResultsCopy.width               = 185
$ResultsCopy.height              = 29
$ResultsCopy.location            = New-Object System.Drawing.Point(160,349)
$ResultsCopy.Font                = 'Georgia,10'
$ResultsCopy.Add_Click({ ResultsCopy })

Function ResultsCopy
{"
 Display Name: $DisplayName
 Username: $SAMAccountName
 Email: $Mail 
 Password: $passwordvalue" | clip}

然后它复制到剪贴板

 Display Name:
 Username:
 Email:
 Password:

由于某种原因,实际上没有抓取任何数据。

它应该如下所示

 Display Name: James Timms
 Username: James.Timms
 Email: James.Timms@Mail.com
 Password: SuperSecurePassword69

希望有人有想法

被要求澄清参数/变量,所以下面我会这样做

$DisplayName = $UCFirstNameParam + " " + $UCsurNameParam
$Mail = $UCFirstNameParam + "." + $UCsurNameParam + "@" + "annodata.co.uk"
$MailAlias = $UCFirstNameParam + "." + $UCsurNameParam + "@" + $DNSRoot2

$SInitial = $UCsurNameParam[0]
$Initial = $UCFirstNameParam[0]
$SAMAccountName = $UCFirstNameParam + "." + $UCsurNameParam
$SAMAccountLower = $SAMAccountName.ToLower()
$UserPrincipalName = $UCFirstNameParam + "." + $UCsurNameParam

$defaultname = $SAMAccountName
$email = $UCFirstNameParam + "." + $UCsurNameParam
$i = 1

$NewUserParams = @{
path                  = "OU=Bracknell,OU=Sites,DC=annodata,DC=co,DC=uk"
SamAccountName        = $SAMAccountName
Name                  = $SAMAccountName
DisplayName           = $DisplayName
GivenName             = $UCFirstNameParam
Surname               = $UCSurnameParam
EmailAddress          = $Mail
UserPrincipalName     = "$SAMAccountName@annodata.co.uk"
Description           = $UCRoleParam
ChangePasswordAtLogon = $true
PasswordNeverExpires  = $false
AccountPassword       = $password
Enabled               = $true

$UCFirstNameParamLong                 = New-Object System.Windows.Forms.Label
$UCFirstNameParamLong.Text            = $UCFirstName.Text
$UCFirstNameParamLong.Location        = New-Object System.Drawing.Point(180,100)
$UCFirstNameParamLong.AutoSize        = $true
$UCFirstNameParamLong.Font            = 'Georgia,10'

$UCSurnameParamLong                 = New-Object System.Windows.Forms.Label
$UCSurnameParamLong.Text            = $UCSurname.Text
$UCSurnameParamLong.Location        = New-Object System.Drawing.Point(180,150)
$UCSurnameParamLong.AutoSize        = $true
$UCSurnameParamLong.Font            = 'Georgia,10'

$UCRoleParamLong                 = New-Object System.Windows.Forms.Label
$UCRoleParamLong.Text            = $UCRole.Text
$UCRoleParamLong.Location        = New-Object System.Drawing.Point(180,200)
$UCRoleParamLong.AutoSize        = $true
$UCRoleParamLong.Font            = 'Georgia,10'

$UCLocationParamLong                 = New-Object System.Windows.Forms.Label
$UCLocationParamLong.Text            = $UCSiteSelection.Text
$UCLocationParamLong.Location        = New-Object System.Drawing.Point(180,250)
$UCLocationParamLong.AutoSize        = $true
$UCLocationParamLong.Font            = 'Georgia,10'

$UCFirstNameParam = $UCFirstNameParamLong.Text
$UCSurnameParam = $UCSurnameParamLong.Text
$UCRoleParam = $UCRoleParamLong.Text
$UCLocationParam = $UCLocationParamLong.Text

标签: powershell

解决方案


包括

$UCFirstNameParam = $UCFirstNameParamLong.Text
$UCSurnameParam = $UCSurnameParamLong.Text
$UCRoleParam = $UCRoleParamLong.Text
$UCLocationParam = $UCLocationParamLong.Text

在您的点击事件/功能中:

Function ResultsCopy
{
    $UCFirstNameParam = $UCFirstNameParamLong.Text
    $UCSurnameParam = $UCSurnameParamLong.Text
    $UCRoleParam = $UCRoleParamLong.Text
    $UCLocationParam = $UCLocationParamLong.Text
     "
     Display Name: $DisplayName
     Username: $SAMAccountName
     Email: $Mail 
     Password: $passwordvalue
     " | clip
}

推荐阅读