Hi, Can some one advise on the below script. I cant get this to work in a SCCM Task sequence (Does nothing just sits at a blank screen) and if i run it directly from PS ISE it loads but if i change it to show a msg box after ok is clicked i get nothing (Blank Responce) What i was hoping for was to when click ok, it takes the text inputed from the Textbox (example: X1W10) and the Type of Build from the selected Options (if Standard selected then S- if Admin selected A-) and then change the Hostname in Winpe Part of TS (example S-X1W10 or A-X1W10) and at the same time create a TS Variable for the build type so if Admin Selected create a Variable (Exable: AdminBuild or StandardBuild if Standard selected.) Sorry im new to powershell.
Scrip:
Add-Type -AssemblyName PresentationFramework
Add-Type -AssemblyName System.Windows.Forms
[void][reflection.assembly]::Load('System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089')
[void][reflection.assembly]::Load('System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a')
[System.Windows.Forms.Application]::EnableVisualStyles()
# ---- Form Information ---- #
function Load-Build {
$Build.Controls.Add($TextBox1)
$Build.Controls.Add($RadioButton1) #Standard
$Build.Controls.Add($RadioButton2) #Admin
$Build.Controls.Add($Button1)
$Build.Controls.Add($Groupbox1)
$Build.Add_Shown({$Build.Activate()})
[void] $Build.ShowDialog()
}
$InitialFormWindowState = New-Object 'System.Windows.Forms.FormWindowState'
$Build = New-Object system.Windows.Forms.Form
$Build.StartPosition = "CenterScreen"
$Build.SizeGripStyle = "Hide"
$Build.ControlBox = $false
$Build.Size = New-Object System.Drawing.Size(180,200)
$Build.MinimumSize = New-Object System.Drawing.Size(180,200)
$Build.MaximumSize = New-Object System.Drawing.Size(180,200)
$Build.text = "Build"
$Build.TopMost = $true
$TextBox1 = New-Object system.Windows.Forms.TextBox
$TextBox1.multiline = $false
$TextBox1.width = 135
$TextBox1.height = 20
$TextBox1.location = New-Object System.Drawing.Point(6,15)
$TextBox1.Font = New-Object System.Drawing.Font('Microsoft Sans Serif',10)
$TextBox1.Text = ""
$RadioButton1 = New-Object system.Windows.Forms.RadioButton
$RadioButton1.text = "Standard Build"
$RadioButton1.AutoSize = $true
$RadioButton1.width = 104
$RadioButton1.height = 20
$RadioButton1.location = New-Object System.Drawing.Point(8,46)
$RadioButton1.Font = New-Object System.Drawing.Font('Microsoft Sans Serif',10)
$RadioButton2 = New-Object system.Windows.Forms.RadioButton
$RadioButton2.text = "Admin Build"
$RadioButton2.AutoSize = $true
$RadioButton2.width = 104
$RadioButton2.height = 20
$RadioButton2.location = New-Object System.Drawing.Point(8,72)
$RadioButton2.Font = New-Object System.Drawing.Font('Microsoft Sans Serif',10)
$Button1 = New-Object system.Windows.Forms.Button
$Button1.text = "OK"
$Button1.width = 130
$Button1.height = 30
$Button1.location = New-Object System.Drawing.Point(7,100)
$Button1.Font = New-Object System.Drawing.Font('Microsoft Sans Serif',10)
$Groupbox1 = New-Object system.Windows.Forms.Groupbox
$Groupbox1.height = 140
$Groupbox1.width = 150
$Groupbox1.text = "Enter Computer Name"
$Groupbox1.location = New-Object System.Drawing.Point(5,10)
$Groupbox1.controls.AddRange(@($TextBox1,$RadioButton1,$RadioButton2,$Button1))
$Build.controls.AddRange(@($Groupbox1))
# ---- Main Code ---- #
# Determine last Part of the Computer Name
$ComputerName = "$($TextBox1.text)"
$ComputerName = $ComputerName.ToUpper()
# Determine first part of Build Selected
$Build_Type = ""
if ($radiobutton1.Checked -eq $true) { $Build_Type = "$($Build_Type)S-"; } # S = Standard
elseif ($radiobutton2.Checked -eq $true) { $Build_Type = "$($Build_Type)A-"; } # A = Admin
# Determine the Fill Computer Name
$OSDFullName = "$($Build_Type)$($ComputerName)"
# ---- Close Form Down Code ---- #
$Button1.Add_Click({
# Load TS Environment
$TSEnv = New-Object -COMObject Microsoft.SMS.TSEnvironment
# Set Computer Name in TS
$TSEnv.Value("OSDComputerName") = "$OSDFullName"
# Set Build Type in TS
$TSEnv.Value($TSBuild) = $Build_Type
# Close Build
$Build.Close()
})
# ---- Show Form ---- #
$Build.ShowDialog()