Jump to content

baerlch

Members
  • Gesamte Inhalte

    4
  • Registriert seit

  • Letzter Besuch

Alle erstellten Inhalte von baerlch

  1. Hallo, Nach ersten Gehversuchen mit Powershell und Sapien hab ich mir eine kleine Toolbox gebastelt um täglichen Aufgaben zu erledigen. Jeder Suchbegriff wird in der $ComBox1 gespeichert. Ich Suche einen Weg, um die items in der Combox abzuspeichern und beim nächsten Start wieder laden zu können. Nebenbei wäre es schön, dabei die doppelten Einträge zu entfernen. Happy Halloween allen! Vielleicht kann jemand was damit anfangen: import-module activedirectory#Generated Form Function function GenerateForm { ######################################################################## # Code Generated By: SAPIEN Technologies PrimalForms (Community Edition) v1.0.10.0 # Generated On: 29.10.2013 10:54 # Generated By: peter #########################################################################region Import the Assemblies [reflection.assembly]::loadwithpartialname("System.Drawing") | Out-Null [reflection.assembly]::loadwithpartialname("System.Windows.Forms") | Out-Null# Load Visual Basic assembly [void][system.Reflection.Assembly]::LoadWithPartialName('Microsoft.VisualBasic')#endregion#region Generated Form Objects $form1 = New-Object System.Windows.Forms.Form $comboBox1 = New-Object System.Windows.Forms.ComboBox $button12 = New-Object System.Windows.Forms.Button $button11 = New-Object System.Windows.Forms.Button $button10 = New-Object System.Windows.Forms.Button $button9 = New-Object System.Windows.Forms.Button $button8 = New-Object System.Windows.Forms.Button $button7 = New-Object System.Windows.Forms.Button $richTextBox1 = New-Object System.Windows.Forms.RichTextBox $button6 = New-Object System.Windows.Forms.Button $button5 = New-Object System.Windows.Forms.Button $button4 = New-Object System.Windows.Forms.Button $button3 = New-Object System.Windows.Forms.Button $button2 = New-Object System.Windows.Forms.Button $button1 = New-Object System.Windows.Forms.Button #$textBox1 = New-Object System.Windows.Forms.TextBox # momentan unbenutzt $InitialFormWindowState = New-Object System.Windows.Forms.FormWindowState#endregion Generated Form Objects#---------------------------------------------- #Generated Event Script Blocks #---------------------------------------------- #Provide Custom Code for events specified in PrimalForms. $prozessData6= { #TODO: Place custom script here}$prozessData5= { #TODO: Place custom script here}$prozessData1= { #TODO: Place custom script here}$prozessData10= { #TODO: Place custom script here}$prozessData11= { #TODO: Place custom script here}$prozessData7= { #TODO: Place custom script here}$OnLoadForm_StateCorrection= {#Correct the initial state of the form to prevent the .Net maximized form issue $form1.WindowState = $InitialFormWindowState }#---------------------------------------------- #region Generated Form Code $System_Drawing_Size = New-Object System.Drawing.Size $System_Drawing_Size.Height = 717 $System_Drawing_Size.Width = 742 $form1.ClientSize = $System_Drawing_Size $form1.DataBindings.DefaultDataSourceUpdateMode = 0 $form1.Name = "form1" $form1.Text = "IT-Service"#richTextBox1 $richTextBox1.Anchor = 15 $richTextBox1.DataBindings.DefaultDataSourceUpdateMode = 0 $System_Drawing_Point = New-Object System.Drawing.Point $System_Drawing_Point.X = 31 $System_Drawing_Point.Y = 109 $richTextBox1.Location = $System_Drawing_Point $richTextBox1.Name = "richTextBox1" #$richTextBox1.font = "Courier New" $richTextBox1.Font = New-Object System.Drawing.Font("Courier New",9.5,1,3,0) $System_Drawing_Size = New-Object System.Drawing.Size $System_Drawing_Size.Height = 608 $System_Drawing_Size.Width = 688 $richTextBox1.Size = $System_Drawing_Size $richTextBox1.TabIndex = 7 $richTextBox1.Text = ""$form1.Controls.Add($richTextBox1)#comboBox1 $comboBox1.DataBindings.DefaultDataSourceUpdateMode = 0 $comboBox1.FormattingEnabled = $True $System_Drawing_Point = New-Object System.Drawing.Point $System_Drawing_Point.X = 31 $System_Drawing_Point.Y = 12 $comboBox1.Location = $System_Drawing_Point $comboBox1.Name = "comboBox1" $System_Drawing_Size = New-Object System.Drawing.Size $System_Drawing_Size.Height = 25 $System_Drawing_Size.Width = 135 $comboBox1.Size = $System_Drawing_Size $comboBox1.TabIndex = 14 #$comboBox1.add_SelectedValueChanged($prozessData13) $comboBox1.add_SelectedValueChanged({$FNprozessData13})$form1.Controls.Add($comboBox1)#Button12 $button12.DataBindings.DefaultDataSourceUpdateMode = 0$System_Drawing_Point = New-Object System.Drawing.Point $System_Drawing_Point.X = 612 $System_Drawing_Point.Y = 83 $button12.Location = $System_Drawing_Point $button12.Name = "button12" $System_Drawing_Size = New-Object System.Drawing.Size $System_Drawing_Size.Height = 25 $System_Drawing_Size.width = 110 $button12.Size = $System_Drawing_Size $button12.TabIndex = 13 $button12.Text = "button12" $button12.UseVisualStyleBackColor = $True $button12.add_Click($prozessData12)$form1.Controls.Add($button12) #Button11 $button11.DataBindings.DefaultDataSourceUpdateMode = 0$System_Drawing_Point = New-Object System.Drawing.Point $System_Drawing_Point.X = 496 $System_Drawing_Point.Y = 83 $button11.Location = $System_Drawing_Point $button11.Name = "button11" $System_Drawing_Size = New-Object System.Drawing.Size $System_Drawing_Size.Height = 25 $System_Drawing_Size.width = 110 $button11.Size = $System_Drawing_Size $button11.TabIndex = 12 $button11.Text = "button11" $button11.UseVisualStyleBackColor = $True $button11.add_Click($prozessData11)$form1.Controls.Add($button11) #Button10 $button10.DataBindings.DefaultDataSourceUpdateMode = 0$System_Drawing_Point = New-Object System.Drawing.Point $System_Drawing_Point.X = 380 $System_Drawing_Point.Y = 83 $button10.Location = $System_Drawing_Point $button10.Name = "button10" $System_Drawing_Size = New-Object System.Drawing.Size $System_Drawing_Size.Height = 25 $System_Drawing_Size.width = 110 $button10.Size = $System_Drawing_Size $button10.TabIndex = 11 $button10.Text = "button10" $button10.UseVisualStyleBackColor = $True $button10.add_Click($prozessData10)$form1.Controls.Add($button10) #Button9 $button9.DataBindings.DefaultDataSourceUpdateMode = 0$System_Drawing_Point = New-Object System.Drawing.Point $System_Drawing_Point.X = 263 $System_Drawing_Point.Y = 83 $button9.Location = $System_Drawing_Point $button9.Name = "button9" $System_Drawing_Size = New-Object System.Drawing.Size $System_Drawing_Size.Height = 25 $System_Drawing_Size.width = 110 $button9.Size = $System_Drawing_Size $button9.TabIndex = 10 $button9.Text = "button9" $button9.UseVisualStyleBackColor = $True $button9.add_Click($prozessData9)$form1.Controls.Add($button9) #Button8 $button8.DataBindings.DefaultDataSourceUpdateMode = 0$System_Drawing_Point = New-Object System.Drawing.Point $System_Drawing_Point.X = 148 $System_Drawing_Point.Y = 83 $button8.Location = $System_Drawing_Point $button8.Name = "button8" $System_Drawing_Size = New-Object System.Drawing.Size $System_Drawing_Size.Height = 25 $System_Drawing_Size.width = 110 $button8.Size = $System_Drawing_Size $button8.TabIndex = 9 $button8.Text = "button8" $button8.UseVisualStyleBackColor = $True $button8.add_Click($prozessData8)$form1.Controls.Add($button8) #Button7 $button7.DataBindings.DefaultDataSourceUpdateMode = 0$System_Drawing_Point = New-Object System.Drawing.Point $System_Drawing_Point.X = 31 $System_Drawing_Point.Y = 83 $button7.Location = $System_Drawing_Point $button7.Name = "button7" $System_Drawing_Size = New-Object System.Drawing.Size $System_Drawing_Size.Height = 25 $System_Drawing_Size.width = 110 $button7.Size = $System_Drawing_Size $button7.TabIndex = 8 $button7.Text = "Grp. übertragen" $button7.UseVisualStyleBackColor = $True $button7.add_Click($prozessData7) $button7.add_Click({FNprocessData7})$form1.Controls.Add($button7) #Button6 $button6.DataBindings.DefaultDataSourceUpdateMode = 0$System_Drawing_Point = New-Object System.Drawing.Point $System_Drawing_Point.X = 611 #561 $System_Drawing_Point.Y = 52 $button6.Location = $System_Drawing_Point $button6.Name = "button6" $System_Drawing_Size = New-Object System.Drawing.Size $System_Drawing_Size.Height = 25 $System_Drawing_Size.width = 110 $button6.Size = $System_Drawing_Size $button6.TabIndex = 6 $button6.Text = "Computer" $button6.UseVisualStyleBackColor = $True #$button6.add_Click($prozessData6) $button6.add_Click({FNprocessData6})$form1.Controls.Add($button6) #Button5 $button5.DataBindings.DefaultDataSourceUpdateMode = 0$System_Drawing_Point = New-Object System.Drawing.Point $System_Drawing_Point.X = 495 #455 $System_Drawing_Point.Y = 52 $button5.Location = $System_Drawing_Point $button5.Name = "button5" $System_Drawing_Size = New-Object System.Drawing.Size $System_Drawing_Size.Height = 25 $System_Drawing_Size.width = 110 $button5.Size = $System_Drawing_Size $button5.TabIndex = 5 $button5.Text = "G. Mitglieder" $button5.UseVisualStyleBackColor = $True #$button5.add_Click($prozessData5) $button5.add_Click({FNprocessData5})$form1.Controls.Add($button5) #Button4 $button4.DataBindings.DefaultDataSourceUpdateMode = 0$System_Drawing_Point = New-Object System.Drawing.Point $System_Drawing_Point.X = 379 #349 $System_Drawing_Point.Y = 52 $button4.Location = $System_Drawing_Point $button4.Name = "button4" $System_Drawing_Size = New-Object System.Drawing.Size $System_Drawing_Size.Height = 25 $System_Drawing_Size.width = 110 $button4.Size = $System_Drawing_Size $button4.TabIndex = 4 $button4.Text = "Gruppen" $button4.UseVisualStyleBackColor = $True #$button4.add_Click($prozessData4) $button4.add_Click({FNprocessData4})$form1.Controls.Add($button4) #Button3 $button3.DataBindings.DefaultDataSourceUpdateMode = 0$System_Drawing_Point = New-Object System.Drawing.Point $System_Drawing_Point.X = 263 #243 $System_Drawing_Point.Y = 52 $button3.Location = $System_Drawing_Point $button3.Name = "button3" $System_Drawing_Size = New-Object System.Drawing.Size $System_Drawing_Size.Height = 25 $System_Drawing_Size.width = 110 $button3.Size = $System_Drawing_Size $button3.TabIndex = 3 $button3.Text = "User MemberOf" $button3.UseVisualStyleBackColor = $True #$button3.add_Click($prozessData3) $button3.add_Click({FNprocessData3})$form1.Controls.Add($button3) #Button2 $button2.DataBindings.DefaultDataSourceUpdateMode = 0$System_Drawing_Point = New-Object System.Drawing.Point $System_Drawing_Point.X = 147 #137 $System_Drawing_Point.Y = 52 $button2.Location = $System_Drawing_Point $button2.Name = "button2" $System_Drawing_Size = New-Object System.Drawing.Size $System_Drawing_Size.Height = 25 $System_Drawing_Size.width = 110 $button2.Size = $System_Drawing_Size $button2.TabIndex = 2 $button2.Text = "User" $button2.UseVisualStyleBackColor = $True #$button2.add_Click($prozessData2) $button2.add_Click({FNprocessData2})$form1.Controls.Add($button2) #Button1 $button1.DataBindings.DefaultDataSourceUpdateMode = 0$System_Drawing_Point = New-Object System.Drawing.Point $System_Drawing_Point.X = 31 $System_Drawing_Point.Y = 52 $button1.Location = $System_Drawing_Point $button1.Name = "button1" $System_Drawing_Size = New-Object System.Drawing.Size $System_Drawing_Size.Height = 25 $System_Drawing_Size.Width = 110 $button1.Size = $System_Drawing_Size $button1.TabIndex = 1 $button1.Text = "Suche" $button1.UseVisualStyleBackColor = $True #$button1.add_Click($prozessData1) $button1.add_Click({FNprocessData1})$form1.Controls.Add($button1)#$textBox1.DataBindings.DefaultDataSourceUpdateMode = 0 #$System_Drawing_Point = New-Object System.Drawing.Point #$System_Drawing_Point.X = 31 #$System_Drawing_Point.Y = 12 #$textBox1.Location = $System_Drawing_Point #$textBox1.Name = "textBox1" #$System_Drawing_Size = New-Object System.Drawing.Size #$System_Drawing_Size.Height = 25 #$System_Drawing_Size.Width = 150 #$textBox1.Size = $System_Drawing_Size #$textBox1.TabIndex = 0 #$textBox1.Text = "knobldie"$form1.Controls.Add($textBox1)#endregion Generated Form Code#Save the initial state of the form $InitialFormWindowState = $form1.WindowState #Init the OnLoad event to correct the initial state of the form $form1.add_Load($OnLoadForm_StateCorrection) #Show the Form $form1.ShowDialog()| Out-Null} #End Function#Button 1 function FNprocessData1 { # Read the contents of the textBox1 and perfom desired command with it # $net = net user ($textBox1.text) $gname = $combobox1.text $g1name = "*"+$gname+"*" $ComboBox1.Items.Add($gname) $comboBox1.sorted = $true; get-aduser -Filter "name -like '$g1name'" -properties *| sort name | ft -auto Name,SamAccountname,telephonenumber > c:\temp\result1.txt $net = get-content c:\temp\result1.txt $richTextBox1.Clear() # Parse each line of the result, add a linebreak and append it to the RichTextBox foreach ($line in $net) { $richTextBox1.Appendtext($line+[char]13+[char]10) } }#Button 2 function FNprocessData2 { # Read the contents of the textBox1 and perfom desired command with it # $net = net user ($textBox1.text) $gname = $combobox1.text $ComboBox1.Items.Add($gname) get-aduser $gname -properties * | select Name,Department,SamAccountname,ScriptPath,ProfilePath,lastlogondate,city,telephonenumber,created,Modified,ChangePasswordAtLogon,PasswordExpired,PasswordLastSet,PasswordNeverExpires,PasswordNotRequired,CannotChangePassword,LastBadPasswordAttempt,logoncount,publicDelegates,publicDelegatesBL,mDBStorageQuota,mDBOverQuotaLimit > c:\temp\result1.txt $net = get-content c:\temp\result1.txt $richTextBox1.Clear() # Parse each line of the result, add a linebreak and append it to the RichTextBox foreach ($line in $net) { $richTextBox1.Appendtext($line+[char]13+[char]10) } } #Button 3 User ist Mitglied von? function FNprocessData3 { # Read the contents of the textBox1 and perfom desired command with it $gname = $combobox1.text $ComboBox1.Items.Add($gname) Get-ADUser $gname -properties * | select-object -ExpandProperty memberof | Get-ADGroup | sort name | select name > c:\temp\result1.txt $file = "c:\temp\result1.txt" (Get-Content $file | Select-Object -Skip 3) | Set-Content $file $net = get-content c:\temp\result1.txt $richTextBox1.Clear() #cls # Parse each line of the result, add a linebreak and append it to the RichTextBox foreach ($line in $net) { $line=$line.trim() #Drecks Leerzeichen entfernen für schöneres copy und paste $richTextBox1.Appendtext($line+[char]13+[char]10) $line >> c:\temp\result2.txt # for later use } } #Button 4 function FNprocessData4 { # Read the contents of the textBox1 and perfom desired command with it # $net = net user ($textBox1.text) $gname = $ComboBox1.text $ComboBox1.Items.Add($gname) $g1name = "*"+$gname+"*" get-adgroup -Filter "name -like '$g1name'" | foreach { $_.Samaccountname } > c:\temp\result1.txt $net = get-content c:\temp\result1.txt $richTextBox1.Clear() # Parse each line of the result, add a linebreak and append it to the RichTextBox foreach ($line in $net) { $richTextBox1.Appendtext($line+[char]13+[char]10) } } #Button 5 function FNprocessData5 { # Read the contents of the textBox1 and perfom desired command with it # $net = net user ($textBox1.text) $gname = $ComboBox1.text $ComboBox1.Items.Add($gname) $g1name = "*"+$gname+"*" get-adgroup -Filter "name -like '$g1name'" | foreach { $_.Samaccountname } > c:\temp\result1.txt $groups = gc c:\temp\result1.txt $report = @() Foreach ($group in $groups) { Get-ADGroupMember -Identity $group | % { $report += New-Object PSObject -Property @{ Group = $group Name1 = $_.samaccountname Name2 = $_.name } } } $report | ft -Autosize > c:\temp\result1.txt $net = get-content c:\temp\result1.txt $richTextBox1.Clear() # Parse each line of the result, add a linebreak and append it to the RichTextBox foreach ($line in $net) { $richTextBox1.Appendtext($line+[char]13+[char]10) } } #Button 6 function FNprocessData6 { # Read the contents of the textBox1 and perfom desired command with it # $net = net user ($textBox1.text) $richTextBox1.Clear() $gname = $ComboBox1.text $ComboBox1.Items.Add($gname) ping -n 3 $gname | out-string -Stream | foreach-object { $richTextBox1.lines = $richTextBox1.lines + $_ $richTextBox1.Select($richTextBox1.Text.Length, 0) $richTextBox1.ScrollToCaret() $form1.Update()} get-adcomputer $gname -properties * > c:\temp\result1.txt $net = get-content c:\temp\result1.txt # Parse each line of the result, add a linebreak and append it to the RichTextBox foreach ($line in $net) { $richTextBox1.Appendtext($line+[char]13+[char]10) } } #Button 7 function FNprocessData7 { # Read the contents of the textBox1 and perfom desired command with it # $net = net user ($textBox1.text) #$richTextBox1.Clear() #$sourceacc = $textBox1.text #$ComboBox1.Items.Add($sourceacc) # Checks if both accounts are provided as an argument, otherwise prompts for input #if (-not $sourceacc) { $sourceacc = [Microsoft.VisualBasic.Interaction]::InputBox("Quelluser eingeben ... ", "Quelle", "") } #if (-not $destacc) { $destacc = [Microsoft.VisualBasic.Interaction]::InputBox("Zieluser eingeben ... ", "Ziel", "") } # prompt for input $sourceacc = [Microsoft.VisualBasic.Interaction]::InputBox("Quelluser eingeben ... ", "Quelle", "") $destacc = [Microsoft.VisualBasic.Interaction]::InputBox("Zieluser eingeben ... ", "Ziel", "") # Retrieves the group membership for both accounts, if account is not found or error is generated the object is set to $null try { $sourcemember = get-aduser -filter {samaccountname -eq $sourceacc} -property memberof | select memberof } catch { $sourcemember = $null} try { $destmember = get-aduser -filter {samaccountname -eq $destacc} -property memberof | select memberof } catch { $destmember = $null}# Checks if accounts have group membership, if no group membership is found for either account script will exit if ($sourcemember -eq $null) {[Microsoft.VisualBasic.Interaction]::MsgBox("Quelluser nicht gefunden",0,"Exit Message");return} if ($destmember -eq $null) {[Microsoft.VisualBasic.Interaction]::MsgBox("Zieluser nicht gefunden",0,"Exit Message");return}# Checks for differences, if no differences are found script will prompt and exit if (-not (compare-object $destmember.memberof $sourcemember.memberof)) { [Microsoft.VisualBasic.Interaction]::InputBox("Kein Unterschied zwischen den $sourceacc & $destacc Gruppenmitgliedschaften gefunden. $destacc wird keinen zusätzlichen Gruppen hinzugefügt.",0,"Exit Message");return }# Prompt for adding user to groups, only prompt when there are changes if (compare-object $destmember.memberof $sourcemember.memberof | where-object {$_.sideindicator -eq '=>'}) { $ConfirmAdd = [Microsoft.VisualBasic.Interaction]::MsgBox("Möchtest Du `'$($destacc)`' zu den folgenden Gruppen hinzufügen?:`n`n$((compare-object $destmember.memberof $sourcemember.memberof | where-object {$_.sideindicator -eq '=>'} | select -expand inputobject | foreach {([regex]::split($_,'^CN=|,.+$'))[1]}) -join "`n")",4,"Bitte bestätigen") }# Prompt for removing user from groups, only prompt when there are changes if (compare-object $destmember.memberof $sourcemember.memberof | where-object {$_.sideindicator -eq '<='}) { $ConfirmRemove = [Microsoft.VisualBasic.Interaction]::MsgBox("Möchtest Du `'$($destacc)`' von den folgenden Gruppen entfernen?:`n`n$((compare-object $destmember.memberof $sourcemember.memberof | where-object {$_.sideindicator -eq '<='} | select -expand inputobject | foreach {([regex]::split($_,'^CN=|,.+$'))[1]}) -join "`n")",4,"Bitte bestätigen") }# If the user confirmed adding the groups to the account, the user will be added to the groups if ($ConfirmAdd -eq "Yes") { compare-object $destmember.memberof $sourcemember.memberof | where-object {$_.sideindicator -eq '=>'} | select -expand inputobject | foreach {add-adgroupmember "$_" $destacc} }# If the user confirmed removing any groups not present on the source account, the user will be removed from the groups if ($ConfirmRemove -eq "Yes") { compare-object $destmember.memberof $sourcemember.memberof | where-object {$_.sideindicator -eq '<='} | select -expand inputobject | foreach {remove-adgroupmember "$_" $destacc} }# Prompt after executing script [Microsoft.VisualBasic.Interaction]::MsgBox("Script erfolgreich ausgeführt",0,"Exit Message") }#ComboBox1 function FNprocessData13 { # Read the contents of the textBox1 and perfom desired command with it # $net = net user ($textBox1.text) $textBox1.text = $ComboBox1.text } #Call the Function GenerateForm
  2. Hallo, ich suche einen Weg, einem Anwender ein einfaches Interface zur Verfügung zu stellen. Er soll dort eine Gruppe sehen, die Mitglieder der Gruppe, und in der Lage sein, Mitglider hinzuzufügen oder zu löschen. Idealerweise soll er dort nur jeweils eine Gruppe sehen, bzw nur die Gruppe, die er pflegen soll. Hat jemand schonmal sowas oder sowas ähnliches gesehn / gemacht?
  3. baerlch

    GNS3 Problem

    SW1 und SW2 sind mit NM-16ESW bestückt und funktionieren als Switch. PC1 PC2 und PC3 sollen hosts sein um die Funktion zu prüfen (ping etc.) Mein Problem ist, das ich wohl noch nicht begriffen habe, wie ich Router 1 konfigurieren muß, damit er 192.168.1.0 und 192.168.2.0 miteinander verbindet. (Oder benötige im 192.168.2.0er Netz auch einen Router als "Gegenstelle"?) Ich beschäftige mich erst seit ein paar Tagen mit dem Thema in Hinblick auf eine Schulungsmaßnahme, die in 2 Wochen beginnt. Immerhin bin ich froh, so etwas wie GSN3 gefunden zu haben um wenigstens mal einen Eindruck von der Bedienung zu erhalten.
  4. baerlch

    GNS3 Problem

    Hallo zusammen, ich beschäftige mich seit kurzem mit GNS3 und habe testweise ein kleines netz aufgebaut. ping von pc1 nach pc2 klappt ping vom router zu allen pc´s klappt ping von pc3 zum router klappt Leider klappt ping von PC1 zu PC3 nicht sh ip route: Gateway of last resort is not set C 192.168.1.0/24 is directly connected, FastEthernet1/0 C 192.168.2.0/24 is directly connected, FastEthernet0/0 hab ich was vergessen? Gruß... Peter
×
×
  • Neu erstellen...