Quantcast
Channel: Windows PowerShell Forum
Viewing all articles
Browse latest Browse all 2314

Ansicht aktualisieren

$
0
0

Guten Morgen,

im Anhang habe ich ein kleines Script welches mir meine tägliche Arbeit erleichtert. Eine Kleinigkeit fehlt mir allerdings noch. Vielleicht hat jemand eine Idee.

Am Anfang frage ich einen Computernamen ab und baue danach ein Menü auf. Jetzt suche ich nach einem Weg den am Anfang eigegebenen Computername zu wechseln. Wenn es ein "goto" oder so geben würde, dann würden ich wieder an den Anfang springen. Wie erreiche ich eine Art refresh auf mein Menü?

$Quelle = "\\srv007\d$\Tools\Powershell_Scriptsammlung"
$Files = gci -name -Path $Quelle *.ps1 -Exclude Menue*.*| foreach {$_ -replace ".ps1", ""}
$NI_Logfiles = "\c$\Programme\Gemeinsame Dateien\enteo\NiLogs"

# -------- Funktionen Anfang --------

# Ping-Host
function Ping-Host {param(	[string]$HostName,
							[int32]$Requests = 1)
	
	for ($i = 1; $i -le $Requests; $i++) {
		$Result = Get-WmiObject -Class Win32_PingStatus -ComputerName . -Filter "Address='$HostName'"
		Start-Sleep -Seconds 1
		if ($Result.StatusCode -ne 0) {return $FALSE}
	}
	return $TRUE
}

# Computernamen abfragen
function Ask_ClientName {
    
    [void] [System.Reflection.Assembly]::LoadWithPartialName("System.Drawing") 
    [void] [System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms") 

    $objForm = New-Object System.Windows.Forms.Form 
    $objForm.Text = "LBBW DSM Support"
    $objForm.Size = New-Object System.Drawing.Size(300,200) 
    $objForm.StartPosition = "CenterScreen"

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

    $OKButton = New-Object System.Windows.Forms.Button
    $OKButton.Location = New-Object System.Drawing.Size(75,120)
    $OKButton.Size = New-Object System.Drawing.Size(75,23)
    $OKButton.Text = "Senden" 
    $OKButton.Add_Click({$x=$objTextBox.Text;$objForm.Close()})
    $objForm.Controls.Add($OKButton)

    $CancelButton = New-Object System.Windows.Forms.Button
    $CancelButton.Location = New-Object System.Drawing.Size(150,120)
    $CancelButton.Size = New-Object System.Drawing.Size(75,23)
    $CancelButton.Text = "Abbrechen"
    $CancelButton.Add_Click({$objForm.Close()})
    $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(280,20) 
    $objLabel.Text = "Bitte den Computernamen eingeben:"
    $objForm.Controls.Add($objLabel)
    $objForm.Add_Shown({$objForm.Activate(); $objTextBox.focus()})

    $objTextBox = New-Object System.Windows.Forms.TextBox 
    $objTextBox.Location = New-Object System.Drawing.Size(10,40) 
    $objTextBox.Size = New-Object System.Drawing.Size(260,20) 
    $objForm.Controls.Add($objTextBox) 

    $objForm.Topmost = $True

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

    $global:computername = $x   
   
   }

Function Create-MenuRadioButtons {

	param (
		# Parameter der die Form darstellt in der die RadioButtons erzeugt werden
		# Die Form wird als Parameter übergeben!
		[Parameter(Mandatory=$True)]
		[ValidateNotNull()]
		[System.Windows.Forms.Form]$Form
	)
 
   foreach ($d in $Files)
   {
         $k = $k += 1
         $RadioButton = New-Object System.Windows.Forms.RadioButton
         $RadioButton.DataBindings.DefaultDataSourceUpdateMode = 0
         $System_Drawing_Point = New-Object System.Drawing.Point
         $System_Drawing_Point.X = 30
         $System_Drawing_Point.Y = 33 * $k
         $RadioButton.Location = $System_Drawing_Point
         $RadioButton.Name = "radioButton" + $k
         $System_Drawing_Size = New-Object System.Drawing.Size
         $System_Drawing_Size.Height = 50
         $System_Drawing_Size.Width = 200
         $RadioButton.Size = $System_Drawing_Size
         $RadioButton.TabIndex = 3
         $RadioButton.TabStop = $true
         $RadioButton.Text = -join ($k,". ",$d)
         $RadioButton.UseVisualStyleBackColor = $True
         $Form.Controls.Add($RadioButton)
   }
}

# -------- Funktionen Ende --------
        
Ask_ClientName

#region Import the Assemblies
[reflection.assembly]::loadwithpartialname("System.Windows.Forms") | Out-Null
[reflection.assembly]::loadwithpartialname("System.Drawing") | Out-Null
#endregion

##############################################################

#region Generated Form Objects
$form1 = New-Object System.Windows.Forms.Form
$button3 = New-Object System.Windows.Forms.Button
$button2 = New-Object System.Windows.Forms.Button
$button1 = New-Object System.Windows.Forms.Button
$button4 = New-Object System.Windows.Forms.Button
$button5 = New-Object System.Windows.Forms.Button
$button6 = New-Object System.Windows.Forms.Button

#endregion Generated Form Objects

$button1_OnClick= 
    {
    	# jedes Control in der Form durchlaufen
		ForEach($Control in $form1.Controls){
			# wenn das Control ein RadioButton ist
			If($Control -is [System.Windows.Forms.RadioButton]) {
				# wenn der RadioButton Markiert ist
				If($Control.Checked -eq $True) {
				# Text des Radiobuttons auslesen (und verarbeiten)
					Write-Host ($Quelle + '\' + $Control.Text.Substring($Control.Text.IndexOf('.') + 1 ).Trim() + (".ps1"))
                    Start-Process "powershell.exe " ($Quelle + '\' + $Control.Text.Substring($Control.Text.IndexOf('.') + 1 ).Trim() + (".ps1 ") + $computername)
				}
			}	
		}
    }

$button2_OnClick= 
    {
    &notepad
    }

$button3_OnClick= 
    {
    $form1.close()
    }

$button4_OnClick= 
    {
    Ask_ClientName
    }

$button5_OnClick= 
    {
    Start-Process "powershell.exe " ($Quelle + '\' + "Client_ping.ps1 " + $computername)
    }

$button6_OnClick= 
    {
    &explorer "\\$Computername$NI_Logfiles"
    }
#----------------------------------------------
#region Generated Form Code
$System_Drawing_Size = New-Object System.Drawing.Size
$System_Drawing_Size.Height = 500
$System_Drawing_Size.Width = 500
$form1.ClientSize = $System_Drawing_Size
$form1.DataBindings.DefaultDataSourceUpdateMode = 0
$form1.Name = "form1"
$form1.Text = "Client Support Tool"
$form1.StartPosition = 1
$form1.FormBorderStyle = 1

$System_Drawing_Point = New-Object System.Drawing.Point
$System_Drawing_Point.X = 280
$System_Drawing_Point.Y = 450
$button3.Location = $System_Drawing_Point
$button3.DataBindings.DefaultDataSourceUpdateMode = 0
$button3.Name = "button3"
$System_Drawing_Size = New-Object System.Drawing.Size
$System_Drawing_Size.Height = 35
$System_Drawing_Size.Width = 140
$button3.Size = $System_Drawing_Size
$button3.TabIndex = 2
$button3.Text = "Beenden"
$button3.UseVisualStyleBackColor = $True
$button3.add_Click($button3_OnClick)
$form1.Controls.Add($button3)

$System_Drawing_Point = New-Object System.Drawing.Point
$System_Drawing_Point.X = 280
$System_Drawing_Point.Y = 110
$button2.Location = $System_Drawing_Point
$button2.DataBindings.DefaultDataSourceUpdateMode = 0
$button2.Name = "button2"
$System_Drawing_Size = New-Object System.Drawing.Size
$System_Drawing_Size.Height = 35
$System_Drawing_Size.Width = 140
$button2.Size = $System_Drawing_Size
$button2.TabIndex = 1
$button2.Text = "Notepad"
$button2.UseVisualStyleBackColor = $True
$button2.add_Click($button2_OnClick)
$form1.Controls.Add($button2)

$System_Drawing_Point = New-Object System.Drawing.Point
$System_Drawing_Point.X = 280
$System_Drawing_Point.Y = 60
$button1.Location = $System_Drawing_Point
$button1.DataBindings.DefaultDataSourceUpdateMode = 0
$button1.Name = "button1"
$System_Drawing_Size = New-Object System.Drawing.Size
$System_Drawing_Size.Height =35
$System_Drawing_Size.Width = 140
$button1.Size = $System_Drawing_Size
$button1.TabIndex = 0
$button1.Text = "Run Script"
$button1.UseVisualStyleBackColor = $True
$button1.add_Click($button1_OnClick)
$form1.Controls.Add($button1)

$System_Drawing_Point = New-Object System.Drawing.Point
$System_Drawing_Point.X = 180
$System_Drawing_Point.Y = 10
$button4.Location = $System_Drawing_Point
$button4.DataBindings.DefaultDataSourceUpdateMode = 0
$button4.Name = "button4"
$System_Drawing_Size = New-Object System.Drawing.Size
$System_Drawing_Size.Height =35
$System_Drawing_Size.Width = 140
$button4.Size = $System_Drawing_Size
$button4.TabIndex = 0
$button4.Text = $Computername
$button4.UseVisualStyleBackColor = $True
$button4.add_Click($button4_OnClick)
$form1.Controls.Add($button4)

$System_Drawing_Point = New-Object System.Drawing.Point
$System_Drawing_Point.X = 280
$System_Drawing_Point.Y = 210
$button5.Location = $System_Drawing_Point
$button5.DataBindings.DefaultDataSourceUpdateMode = 0
$button5.Name = "button5"
$System_Drawing_Size = New-Object System.Drawing.Size
$System_Drawing_Size.Height =35
$System_Drawing_Size.Width = 140
$button5.Size = $System_Drawing_Size
$button5.TabIndex = 0
$button5.Text = "ping Client"
$button5.UseVisualStyleBackColor = $True
$button5.add_Click($button5_OnClick)
$form1.Controls.Add($button5)

# NI LogFiles einsehen
$System_Drawing_Point = New-Object System.Drawing.Point
$System_Drawing_Point.X = 280
$System_Drawing_Point.Y = 350
$button6.Location = $System_Drawing_Point
$button6.DataBindings.DefaultDataSourceUpdateMode = 0
$button6.Name = "button6"
$System_Drawing_Size = New-Object System.Drawing.Size
$System_Drawing_Size.Height = 35
$System_Drawing_Size.Width = 140
$button6.Size = $System_Drawing_Size
$button6.TabIndex = 1
$button6.Text = "NI Logfiles"
$button6.UseVisualStyleBackColor = $True
$button6.add_Click($button6_OnClick)
$form1.Controls.Add($button6)

# Funktion Aufrufen Radiobuttons erzeugen in der Form
Create-MenuRadioButtons $form1

#endregion Generated Form Code

#Show the Form
$form1.ShowDialog()| Out-Null


IT Berater


Viewing all articles
Browse latest Browse all 2314


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>