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

Variablen aus Textdatei auflösen

$
0
0

Hallo @all

Ich möchte aus einer Textdatei (test.txt) einen Längeren Text einlesen. Dieser enthält auch Variablen. Z.B. $name

Oder als Skript.

$name = "bob"

echo "der Name ist $name"

<Ausgabe> der Name ist bob

$file = Get-content test.txt

<inhalt der test.txt> der Name ist $name

echo $file

<Ausgabe> der Name ist $name

Das erwartet verhalten sollte aber auch hier "der Name ist bob" sein...

wie bekomme ich Powershell dazu dies zu tun?



join auf Property, export eines Properties mit Strichpunkt trennen

$
0
0

hallo,

ich möchte gerne ein Property mit "Strichpunkt" exportieren.

Objekt - Samaccountname

aaa

bbb

ccc

sollte zu aaa;bbb;ccc   damit ich diese in ein E-Mail "An..." Feld kopieren kann.

PS-TEST> Get-ADGroupMember -identity xyz | select SamAccountName | Export-csv -path C:\temp\test.csv -N
oTypeInformation

PS-TEST> $a = Get-ADGroupMember -identity XYZ | select samaccountname
PS-TEST> $a | join-string
join-string : Die Benennung "join-string" wurde nicht als Name eines Cmdlet, einer Funktion, einer Skriptdatei oder
eines ausführbaren Programms erkannt. Überprüfen Sie die Schreibweise des Namens, oder ob der Pfad korrekt ist (sofern
enthalten), und wiederholen Sie den Vorgang.
In Zeile:1 Zeichen:6
+ $a | join-string+      ~~~~~~~~~~~+ CategoryInfo          : ObjectNotFound: (join-string:String) [], CommandNotFoundException+ FullyQualifiedErrorId : CommandNotFoundException

PS-TEST> ($a) -join ';'
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
PS-TEST>


Chris

Freien Speicherplatz eines Netzlaufwerkes auslesen

$
0
0

Hi,

ich möchte per GFI Max (Monitoringlösung) ein Script auf einem überwachten Server starten. Dies würde unter LocalSystem laufen. Mit diesem Script möchte ich den freien Speicherplatz eines NAS-Systems auswerten und im Dashboard anzeigen lassen.

Folgende Ausgabe bekomme ich:

<Konnte leider kein Bild einfügen>

LW A: per New-PSDrive mit \\192.168.254.1\test verbunden

LW B: wurde mit \\192.168.254.1\test auf der Console mit net use verbunden.

Get-PSDrive zeit bei dem über New-PSDrive verbundenen Laufwerk keinen freien Speicher an.

Bei dem per net use verbunden LW zeigt er mir den freien Speicher an.

Was mache ich falsch?

Mit besten Dank und Grüßen

Manuel

PowerShell Usergroup Raum Stuttgart

$
0
0

Hallo,

ich versuche derzeit eine PowerShell Usergroup für den Raum Stuttgart zu organisieren.

Hierbei suche ich momentan weitere PowerShell-Experten, die bereit sind, bei der Organisation zu unterstützen, damit sowohl die Regelmäßigkeit als auch die Inhalte der Veranstaltung gewährleistet werden können.

Falls du Interesse hast, hierbei aktiv mitzuwirken, würde ich mich über positive Rückmeldung freuen:

([convert]::FromBase64String("e9PBubfTwbW/S525wcvJscvLb8/N3bnT1b+5x8dJ1dfZ19e9sdPXS7e5") | %{ [char](($_ + 17) / 2) }) -join ""

Bei Interesse einfach "nur" an einer solchen teilzunehmen, kann man mich natürlich auch sehr gerne anschreiben. Ich werde dann informieren, sobald es Neuigkeiten oder Termine gibt.

Mit freundlichen Grüßen,
Friedrich Weinmann

Update: Das erste Treffen ist am 12.01.2017 in den Microsoft Büros in Stuttgart Vaihingen. Anmeldung und Details gibt es hier.


There's no place like 127.0.0.1


VPN Verbindung automatisch in Windows eintragen

$
0
0

Hallo Leute,

bin neu hier und wollte gerne wissen ob jmd von euch Erfahrung hat und ob es möglich wäre eine VPN-Verbindung unter Windows automatisiert einzutragen?! also mit Power Shell batch Files oder sonst was! 

Ich möchte einfach auf ein File drücken müssen und dann werden die VPN Daten automatisch unter Windows eingetragen und ich muss nur mehr auf verbinden drücken! 

Ist sowas möglich?! 

Suche schon sehr lange aber ohne erfolg!

Wäre echt super für eine Antwort danke schon mal!:-P

Problem mit New-PSDrive per Skript - Nach Ende des Skripts werden die erstellten Netzlaufwerke direkt wieder gelöscht

$
0
0

Hallo zusammen,

ich bin PowerShell Frischling, kam aber mit dem Code bisher ziemlich schnell klar. Nun habe ich allerdings direkt schon mein erstes Problem:

Folgendes Szenario:

Ich möchte per Powershell-Skript (dass zu einem späteren Zeitpunkt durch die Aufgabenplanung aufgerufen wird) Netzlaufwerke (auf einem NAS im internen Netzwerk) verbinden.

Bisher machte ich das per NET USE, was mir aber zwischenzeitlich aus verschiedenen Gründen missfällt. Nun habe ich mich in PowerShell eingearbeitet und eine, wie ich finde, für mich zufriedenstellendes Skript zum Verbinden der Netzlaufwerke erstellt. Dazu werden einmalig die Credentials eingelesen und als xml im Nutzerordner abgelegt. Im Skript soll dann beim Systemstart die xml eingelesen und die Netzlaufwerke per New-PSDrive verbunden werden.

Und nun zu dem Problem:

Das Skript funktioniert, wenn ich es Copy&Paste in die Powershell (Version 5.1.14393.576 unter Windows 10) kopiere und abarbeiten lasse. Wenn ich die PowerShell verlasse, bestehen die Netzlaufwerke weiter.

Es funktioniert ebenfalls, wenn ich das Skript aus PowerShell ISE starte.

Es kommt allerdings zu einem mir unerklärbaren Effekt, den ich immerhin eingrenzen konnte, wenn ich die Skriptdatei (*.ps1) ausführen lasse: Starte ich das Skript (z. B. per Verknüpfung oder aus einer Batch-Datei), dann wird es sauber abgearbeitet, die Netzlaufwerke bestehen jedoch nur solange, wie das Skript noch aktiv ist. Zum Testen habe ich ein Start-Sleep 30 an mein Skript gehängt...die Netzlaufwerke bleiben exakt für 30 Sekunden verbunden und trennen sich dann wieder (weder in der PowerShell noch im Windows Explorer kann danach auf diese zugegriffen werden). Quasi der gleiche Effekt, wie ein net use * /del /yes.

Da ich erst mein Skript im Verdacht hatte (diverse Variablen werden übergeben), habe ich es auf ein Minimum reduziert, der Effekt bleibt der gleiche, wenn ich den New-PSDrive Befehl möglichst direkt ausführe. Bei folgendem minimalistischen Skript tritt das Problem also leider bereits auf.

Minimalskript:

$pwNew = Get-Credential
New-PSDrive -name "Z" -psprovider “FileSystem” -Credential $pwNew -root "\\192.168.2.100\Daten" -Persist
Start-Sleep 20

Ich starte das Skript derzeit beispielsweise über eine Batch Datei:

PowerShell.exe -ExecutionPolicy Bypass -Command "& 'C:\Users\Nutzername\Netzlaufwerke\minimal.ps1'"
pause

Sonstiges:

Die Execution Policy hatte ich auf dem PC testweise mal auf unrestricted, was allerdings keine Änderung brachte. Ich denke, wenn es daran liegt, dann dürfte das Skript ja überhaupt nicht starten.

Gibt es sonstige Sicherheitsbeschränkungen, die den Effekt erklären oder ist mir einfach ein ganz großer Schnitzer unterlaufen? Ich habe zwischenzeitlich sehr viel hier in den Foren und auch per google gesucht, aber leider keinen passenden Hinweis gefunden, der mir weiterhelfen könnte :-(




Powershell & GPOs

$
0
0

Hallo an Alle,

ich hab mal wieder was wo ich einfach nicht weiter komme. Ich hätte gerne ein powershell script mit dem ich alle verlinkten GPOs auflisten kann und gleichzeitig noch sehe wo die entsprechenden GPOs verlinkt sind. Also auf welche OU diese angewandt werden.

Bis jetzt kann ich mir eben leider nur anzeigen ob Sie leer sind oder verlinkt aber nicht wo sie verlinkt sind.

Bitte um eure Hilfe

Json to csv

$
0
0

Moin zusammen,

Ich bin relativ neu in Powershell und versuche mich gerade darin mittels Powershell aus einer JSON Datei eine CSV Datei zu machen. Folgenden Befehl nehme ich dazu:

(Get-Content -Path C:\Powershell\test.json | ConvertFrom-Json) `
| ConvertTo-Csv -NoTypeInformation `
| Set-Content C:\powershell\test.csv

Leider ist der Output nicht ganz so wie erwartet. Die JSON Datei ist knapp 5 MB Gross. Die CSV knapp 1 KB ;) In der CSV steht:

"cruises","numResults"
"System.Object[]","8083"

Cruises ist der oberste Knoten in JSON und 8083 ist die Zahl der Objekte in der JSON. Ich konnte bisher Powershell aber nicht davon überzeugen das die gesamte Datei ausgibt.

Jemand eine Idee?

Gruss

Timo


UPN Umlaute ändern für O365 import

$
0
0

Hallo liebe Community,

ich hätte eine Frage, wir haben leider einige User die Umlaute in ihren Namen haben, den upn haben wir bis dato nie verwendet oder benötigt.

kann mir jemand vielleicht sagen, wie ich mit Hilfe der PowerShell die Umlaute im upn ändern kann.. also von ä auf ae von ö auf oe etc.

damit die user sich auch mit der email Adresse anmelden können. (case sensitiv ist hoffentlich egal, da sie alle Vorname.Nachname(at)upn.at im upn stehen haben.

danke schonmal für eure Zeit!

get-content, select-string, nur TREFFER-STRING ausgeben

$
0
0

Hallo

ich testen gerade Select-String und Regular Expression. Leider gibt es keinen Parameter der nur den String mit dem Treffer retour gibt. -MATCH

TEXTDATEI

eins     11
zwei22
drei 33
vier   44
fünf
sechs  66   test

das habe ich im Google gefunden , erweitert und funktioniert schon mal

get-content -path c:\temp\test.txt | select-string -pattern "\d{2}" | % {$_.matches} | % {$_.value}

jetzt wollte ich die foreach leserlicher machen aber da stimmt irgendwas nicht.

$a = get-content -path c:\temp\test.txt | select-string -pattern "\d{2}"
$a
foreach ($x in $a)
{
$x.value
}

in $a sind die richtigen Zeilen mit treffern. irgend ein kleiner Fehler hat sich noch eingeschlichen.

ich vermute   .value da es nicht als Methode vorgeschlagen wird . Aber im ersten Beispiel wird es auch nicht vorgeschlagen und funktioniert?


Chris



Array vor Bestimmten Buchstaben "trennen"

$
0
0

Hallo miteinander, 

ich habe den Befehl

$printer = (get-printer -ComputerName $Computer).name 

welcher mir alle Drucker des jeweiligen Rechners anzeigt. Nun habe ich einen Textblock in welchem ich das Ergebnis anzeigen lassen will, also: 

$textblock1.text = "$printer"

Jetzt werden mir die Drucker angezeigt, nur aber nebeneinander. Ich würde sie mir jedoch gerne untereinander anzeigen lassen, gibt's da eine Möglichkeit?

Vielen Dank schon mal. 

Mfg,

Tonnkful

Wie kann ich den Besitzer eines Benutzerkontos ändern?

$
0
0

Hallo und noch ein frohes neues Jahr,

ich erstelle mit einem Script Benutzerkonten und vergebe unter anderem Zugriffsrechte auf das Benutzerkonto.

#Zugrifssrechte für Homeverzeichnis vergeben
#Access Control Liste für Homedirectory anzeigen lassen und in Variable $objACL schreiben
$objACL = get-acl $HomeDirectory
#Neue Acces Controll Einträge definieren
$objACE = new-object system.security.accesscontrol.filesystemaccessrule("$UserSamAccountName","Modify","ContainerInherit, ObjectInherit","None","Allow")
#Bestehendes Access Control Liste ändern
$objACL.SetAccessRule($objACE)
#Neue Access Control Liste auf das Homeverzeichnis des Users anwenden
set-acl $HomeDirectory $objACL

Ich führe das Script auf meinem eigenen Benutzerkonto aus (mit credentialvariblen), um nicht immer eine Remoteverbindung zum Server herstellen zu müssen.

Wenn ich nach dem erstellen eines Neuen Benutzerkontos auf Eigenschaften/Freigabe gehe, steht als "Besitzer" mein Kontoname. Ich möchte aber das die Gruppe "Administratoren" als Besitzer eingetragen wird.Alles ist korrekt bis auf das Besitzerkonto welches ich ändern möchte.

Danke für eure Hilfe:)

Grüße


PowerShell ActiveDirectory OUs abfragen und auswerten.

$
0
0

Hallo MSDN-Community,

Ich hoffe ich bin hier im richtigen Forum gelandet, vielleicht kann mir jemand helfen.

Zuerst möchte ich sagen ich würde mich noch zu den Anfängern mit Powershell zählen, hatte zwar schon eine Schulung dafür aber es hakt eben doch noch öfter an (ich denke mal) recht simplen Fehlern, vorallem was Filterungen betrifft.

Da ich intern leider keinen Ansprechpartner habe der mir bei PowerShell mal helfen kann oder einen Tipp geben kann, richte ich mich an euch.

Hier mein Problem.: 

Ich möchte aus 2 OU's die untergeordneten OU's auslesen, stellt prinzipiell erstmal kein Problem da, doch das ganze soll möglichst automatisch funktionieren, die ausgelesenen Informationen sollen dann weiterverarbeitet werden.


Hintergrundinfo.: 

Am Ende möchte ich quasi die ausgelesenen OU's in einem DropDownfeld auflisten lassen, um eine Auswahl der OU's bereitstellen zu können.

(Ich nutze XAML für die Entwicklung der GUI, in VisualStudio)

Meine Frage(n).: 

Habe ich den falschen Ansatz oder einfach nur ein Fehler in der Filterung? (Code Unten)

Könnte mir jemand einen Tipp geben oder eventuell sogar einen besseren Lösungsansatz anbieten?

Freue mich über jede Hilfe.

Grüße Nova

Script.: 

$LocationOUs = Get-ADOrganizationalUnit -Filter "name -like 'TestOU*'" -Property * |
    Select-Object -Property DistinguishedName

    $LocationOUs | ForEach-Object {
        $Location  = @{
            OUName = $_.DistinguishedName
        }
        New-Object -TypeName PSObject -Property $Location
    }

        foreach ($Locations in $Location.OUName) {
            $_.Location
        }


Get-ADOrganizationalUnit -Filter "name -like'Standort1''Standort2'" -SearchBase  $Location.OUName

Meine Ausgabe bringt leider immer nur die beiden OU's dessen untergeordnete OU's ich eigentlich haben möchte..

Ausgabe.: 

OUName                             
------                             
OU=OU1,DC=Test,DC=local
OU=OU2,DC=Test,DC=local



Probleme beim versenden einer E-Mail mit Powershell.

$
0
0

Ich habe ein Skript geschrieben und wenn ich es ausführe bekomme ich diese Fehlermeldung. Was kann dies als Ursache haben?

Skript:
$MyEmail = "windows.ereignis@gmail.com"
$SMTP = "smtp.gmail.com"
$To = "windows.ereignis@gmail.com"
$Subject = "Myth?"
$Body = "Is this a real message?"
$Creds  = (Get-Credential -Credential "$MyEmail")

Send-MailMessage -To $MyEmail -From $MyEmail -Subject $Subject -Body $Body -SmtpServer $SMTP -Credential $Creds -UseSsl -Port 587 -DeliveryNotificationOption Never

 Meldung:
Send-MailMessage : Die Verbindung mit dem Remoteserver kann nicht hergestellt werden.
In Zeile:8 Zeichen:1
+ Send-MailMessage -To $MyEmail -From $MyEmail -Subject $Subject -Body  ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (System.Net.Mail.SmtpClient:SmtpClient) [Send-MailMessage], SmtpException
    + FullyQualifiedErrorId : SmtpException,Microsoft.PowerShell.Commands.SendMailMessage

pssession, allowclobber

$
0
0

moin,

kann man diesen Hinweis ignorieren. Es wird anscheinend trotzdem ausgeführt. Künftig soll das Script auf einem anderen eigenen JOB Server laufen.

# verbindung zu Exchange herstellen
$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri http://company/PowerShell/ -Authentication Kerberos

Import-PSSession $Session

Import-PSSession : No command proxies have been created, because all of the requested remote commands would shadow existing local commands.  Use the AllowClobber parameter if you want to shadow

existing local commands.

At C:\jobs\SetOWA.ps1:7 char:1

+ Import-PSSession $Session

+ ~~~~~~~~~~~~~~~~~~~~~~~~~

    + CategoryInfo          : InvalidResult: (:) [Import-PSSession], ArgumentException

    + FullyQualifiedErrorId : ErrorNoCommandsImportedBecauseOfSkipping,Microsoft.PowerShell.Commands.ImportPSSessionCommand


WARNING: The command completed successfully but no settings of 'company/Win ...


PS C:\jobs> $Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri http://server/PowerShell/ -Authentication Kerberos -Allowclobber


New-PSSession : A parameter cannot be found that matches parameter name 'Allowclobber'.

At line:1 char:130

+ ... ation Kerberos -Allowclobber

+                    ~~~~~~~~~~~~~

    + CategoryInfo          : InvalidArgument: (:) [New-PSSession], ParameterBindingException

    + FullyQualifiedErrorId : NamedParameterNotFound,Microsoft.PowerShell.Commands.NewPSSessionCommand



Chris


Leerzeile in Logdatei schreiben

$
0
0

moin,

kann ich in einem Arbeitsschritt gleichzeitig eine Leerzeile in eine Datei einfügen?

das funktioniert leider nicht

$datum = "`r`n" + get-date -Format 'dd.MM.yyyy'
$datum | out-file -filepath c:\Jobs\OWA.log -Append


Chris

Objekt um Spalte erweitern

$
0
0

Hallo zusammen

nur ein Test aber kann man eine Objektlist um eine Spalte erweitern?

ich habe heute eine Liste von Kontakten erhalten und im Exchange angelegt.

Name,email

abc,abc@firma.de

nun habe ich mittels Texteditor (suche Absatz ersetze Absatz A) am Anfang eine Spalte mit immer gleichen Werten eingefügt.

KategorieKZ,Name,Email

A,abc,abc@firma.de

A,efg,efg@firma.de

A,hij,hij@firma.de

ging das auch mit Powershell?

$a = import-csv C:\temp\test.txt

$b = "A" + $a ????



Chris


ListBox -> SelectedItemIndex

$
0
0

Hallo liebe Com :)

Ich habe eine Frage bezüglich eines simplen Scriptes. 

 #Generated Form Function
function GenerateForm {
########################################################################
# Code Generated By: SAPIEN Technologies PrimalForms (Community Edition) v1.0.10.0
# Generated On: 22.12.2016 13:47
# Generated By: Caner
########################################################################

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

#region Generated Form Objects
$Auswahl = New-Object System.Windows.Forms.Form
$187 = New-Object System.Windows.Forms.Button
$label2 = New-Object System.Windows.Forms.Label
$Own8 = New-Object System.Windows.Forms.Button
$Own7 = New-Object System.Windows.Forms.Button
$Own6 = New-Object System.Windows.Forms.Button
$button13 = New-Object System.Windows.Forms.Button
$Own4 = New-Object System.Windows.Forms.Button
$Own3 = New-Object System.Windows.Forms.Button
$Own2 = New-Object System.Windows.Forms.Button
$Own1 = New-Object System.Windows.Forms.Button
$Philip_Morris = New-Object System.Windows.Forms.Button
$Davidoff = New-Object System.Windows.Forms.Button
$Parisienne = New-Object System.Windows.Forms.Button
$LuckyStrike = New-Object System.Windows.Forms.Button
$Camel = New-Object System.Windows.Forms.Button
$Kent = New-Object System.Windows.Forms.Button
$Winston = New-Object System.Windows.Forms.Button
$Marlboro = New-Object System.Windows.Forms.Button
$Auswahltext = New-Object System.Windows.Forms.Label
$InitialFormWindowState = New-Object System.Windows.Forms.FormWindowState
#endregion Generated Form Objects

#----------------------------------------------
#Generated Event Script Blocks
#----------------------------------------------
#Provide Custom Code for events specified in PrimalForms.
$Own4_OnClick=
{
#TODO: Place custom script here

}

$Parisienne_OnClick=
{
#TODO: Place custom script here

}

$Marlboro_OnClick=
{
    #Generated Form Function
    function GenerateForm {
    ########################################################################
    # Code Generated By: SAPIEN Technologies PrimalForms (Community Edition) v1.0.10.0
    # Generated On: 22.12.2016 13:49
    # Generated By: Caner
    ########################################################################

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

    #region Generated Form Objects
    $Auswahl = New-Object System.Windows.Forms.Form
    $Kohlenstoffmonoxid_wert = New-Object System.Windows.Forms.Label
    $Kohlenstoffmonoxid_text = New-Object System.Windows.Forms.Label
    $Nikotin_Wert = New-Object System.Windows.Forms.Label
    $Teer_wert = New-Object System.Windows.Forms.Label
    $Nikotin_text = New-Object System.Windows.Forms.Label
    $Teer_text = New-Object System.Windows.Forms.Label
    $listBox1 = New-Object System.Windows.Forms.ListBox
    $Auswahl_Text = New-Object System.Windows.Forms.Label
    $Markenname_Marlboro = New-Object System.Windows.Forms.Label
    $InitialFormWindowState = New-Object System.Windows.Forms.FormWindowState
    #endregion Generated Form Objects

    #----------------------------------------------
    #Generated Event Script Blocks
    #----------------------------------------------
    #Provide Custom Code for events specified in PrimalForms.
    $handler_label1_Click=
    {
    #TODO: Place custom script here

    }

    $OnLoadForm_StateCorrection=
    {#Correct the initial state of the form to prevent the .Net maximized form issue
	    $Auswahl.WindowState = $InitialFormWindowState
    }

    #----------------------------------------------
    #region Generated Form Code
    $Auswahl.BackgroundImage = [System.Drawing.Image]::FromFile('C:\Users\Caner\Desktop\Desktop\TBZ\Modul 122\LB2\background.jpg')
    $Auswahl.BackgroundImageLayout = 3
    $System_Drawing_Size = New-Object System.Drawing.Size
    $System_Drawing_Size.Height = 421
    $System_Drawing_Size.Width = 305
    $Auswahl.ClientSize = $System_Drawing_Size
    $Auswahl.Cursor = [System.Windows.Forms.Cursors]::Arrow
    $Auswahl.DataBindings.DefaultDataSourceUpdateMode = 0
    $Auswahl.Icon = [System.Drawing.Icon]::ExtractAssociatedIcon('C:\Users\Caner\Desktop\Desktop\TBZ\Modul 122\LB2\icon.ico')
    $Auswahl.Name = "Auswahl"
    $Auswahl.Text = "Zigi-Rechner"

    $Kohlenstoffmonoxid_wert.BackColor = [System.Drawing.Color]::FromArgb(0,255,255,255)
    $Kohlenstoffmonoxid_wert.DataBindings.DefaultDataSourceUpdateMode = 0
    $Kohlenstoffmonoxid_wert.ForeColor = [System.Drawing.Color]::FromArgb(255,255,255,255)

    $System_Drawing_Point = New-Object System.Drawing.Point
    $System_Drawing_Point.X = 167
    $System_Drawing_Point.Y = 196
    $Kohlenstoffmonoxid_wert.Location = $System_Drawing_Point
    $Kohlenstoffmonoxid_wert.Name = "Kohlenstoffmonoxid_wert"
    $System_Drawing_Size = New-Object System.Drawing.Size
    $System_Drawing_Size.Height = 23
    $System_Drawing_Size.Width = 100
    $Kohlenstoffmonoxid_wert.Size = $System_Drawing_Size
    $Kohlenstoffmonoxid_wert.TabIndex = 8
    $Kohlenstoffmonoxid_wert.Text = "X"

    $Auswahl.Controls.Add($Kohlenstoffmonoxid_wert)

    $Kohlenstoffmonoxid_text.BackColor = [System.Drawing.Color]::FromArgb(0,255,255,255)
    $Kohlenstoffmonoxid_text.DataBindings.DefaultDataSourceUpdateMode = 0
    $Kohlenstoffmonoxid_text.ForeColor = [System.Drawing.Color]::FromArgb(255,255,255,255)

    $System_Drawing_Point = New-Object System.Drawing.Point
    $System_Drawing_Point.X = 13
    $System_Drawing_Point.Y = 197
    $Kohlenstoffmonoxid_text.Location = $System_Drawing_Point
    $Kohlenstoffmonoxid_text.Name = "Kohlenstoffmonoxid_text"
    $System_Drawing_Size = New-Object System.Drawing.Size
    $System_Drawing_Size.Height = 23
    $System_Drawing_Size.Width = 116
    $Kohlenstoffmonoxid_text.Size = $System_Drawing_Size
    $Kohlenstoffmonoxid_text.TabIndex = 7
    $Kohlenstoffmonoxid_text.Text = "Kohlenstoffmonoxid:"

    $Auswahl.Controls.Add($Kohlenstoffmonoxid_text)

    $Nikotin_Wert.BackColor = [System.Drawing.Color]::FromArgb(0,255,255,255)
    $Nikotin_Wert.DataBindings.DefaultDataSourceUpdateMode = 0
    $Nikotin_Wert.ForeColor = [System.Drawing.Color]::FromArgb(255,255,255,255)

    $System_Drawing_Point = New-Object System.Drawing.Point
    $System_Drawing_Point.X = 167
    $System_Drawing_Point.Y = 170
    $Nikotin_Wert.Location = $System_Drawing_Point
    $Nikotin_Wert.Name = "Nikotin_Wert"
    $System_Drawing_Size = New-Object System.Drawing.Size
    $System_Drawing_Size.Height = 23
    $System_Drawing_Size.Width = 100
    $Nikotin_Wert.Size = $System_Drawing_Size
    $Nikotin_Wert.TabIndex = 6
    $Nikotin_Wert.Text = "X"

    $Auswahl.Controls.Add($Nikotin_Wert)

    $Teer_wert.BackColor = [System.Drawing.Color]::FromArgb(0,255,255,255)
    $Teer_wert.DataBindings.DefaultDataSourceUpdateMode = 0
    $Teer_wert.ForeColor = [System.Drawing.Color]::FromArgb(255,255,255,255)

    $System_Drawing_Point = New-Object System.Drawing.Point
    $System_Drawing_Point.X = 167
    $System_Drawing_Point.Y = 143
    $Teer_wert.Location = $System_Drawing_Point
    $Teer_wert.Name = "Teer_wert"
    $System_Drawing_Size = New-Object System.Drawing.Size
    $System_Drawing_Size.Height = 23
    $System_Drawing_Size.Width = 100
    $Teer_wert.Size = $System_Drawing_Size
    $Teer_wert.TabIndex = 5
    $Teer_wert.Text = "X"

    $Auswahl.Controls.Add($Teer_wert)

    $Nikotin_text.BackColor = [System.Drawing.Color]::FromArgb(0,255,255,255)
    $Nikotin_text.DataBindings.DefaultDataSourceUpdateMode = 0
    $Nikotin_text.ForeColor = [System.Drawing.Color]::FromArgb(255,255,255,255)

    $System_Drawing_Point = New-Object System.Drawing.Point
    $System_Drawing_Point.X = 13
    $System_Drawing_Point.Y = 170
    $Nikotin_text.Location = $System_Drawing_Point
    $Nikotin_text.Name = "Nikotin_text"
    $System_Drawing_Size = New-Object System.Drawing.Size
    $System_Drawing_Size.Height = 23
    $System_Drawing_Size.Width = 100
    $Nikotin_text.Size = $System_Drawing_Size
    $Nikotin_text.TabIndex = 4
    $Nikotin_text.Text = "Nikotin:"

    $Auswahl.Controls.Add($Nikotin_text)

    $Teer_text.BackColor = [System.Drawing.Color]::FromArgb(0,255,255,255)
    $Teer_text.DataBindings.DefaultDataSourceUpdateMode = 0
    $Teer_text.ForeColor = [System.Drawing.Color]::FromArgb(255,255,255,255)

    $System_Drawing_Point = New-Object System.Drawing.Point
    $System_Drawing_Point.X = 13
    $System_Drawing_Point.Y = 143
    $Teer_text.Location = $System_Drawing_Point
    $Teer_text.Name = "Teer_text"
    $System_Drawing_Size = New-Object System.Drawing.Size
    $System_Drawing_Size.Height = 23
    $System_Drawing_Size.Width = 37
    $Teer_text.Size = $System_Drawing_Size
    $Teer_text.TabIndex = 3
    $Teer_text.Text = "Teer:"

    $Auswahl.Controls.Add($Teer_text)

    $listBox1.DataBindings.DefaultDataSourceUpdateMode = 0
    $listBox1.FormattingEnabled = $True
    $listBox1.Items.Add("Marlboro Rot")|Out-Null
    $listBox1.Items.Add("Marlboro Gold")|Out-Null
    $listBox1.Items.Add("Marlboro Silver")|Out-Null
    $System_Drawing_Point = New-Object System.Drawing.Point
    $System_Drawing_Point.X = 167
    $System_Drawing_Point.Y = 47
    $listBox1.Location = $System_Drawing_Point
    $listBox1.Name = "listBox1"
    $System_Drawing_Size = New-Object System.Drawing.Size
    $System_Drawing_Size.Height = 43
    $System_Drawing_Size.Width = 120
    $listBox1.Size = $System_Drawing_Size
    $listBox1.TabIndex = 2

    $Auswahl.Controls.Add($listBox1)

    $Auswahl_Text.BackColor = [System.Drawing.Color]::FromArgb(0,255,255,255)
    $Auswahl_Text.Cursor = [System.Windows.Forms.Cursors]::Arrow
    $Auswahl_Text.DataBindings.DefaultDataSourceUpdateMode = 0
    $Auswahl_Text.ForeColor = [System.Drawing.Color]::FromArgb(255,255,255,255)

    $System_Drawing_Point = New-Object System.Drawing.Point
    $System_Drawing_Point.X = 13
    $System_Drawing_Point.Y = 47
    $Auswahl_Text.Location = $System_Drawing_Point
    $Auswahl_Text.Name = "Auswahl_Text"
    $System_Drawing_Size = New-Object System.Drawing.Size
    $System_Drawing_Size.Height = 23
    $System_Drawing_Size.Width = 137
    $Auswahl_Text.Size = $System_Drawing_Size
    $Auswahl_Text.TabIndex = 1
    $Auswahl_Text.Text = "Wählen Sie die Sorte aus:"

    $Auswahl.Controls.Add($Auswahl_Text)

    $Markenname_Marlboro.BackColor = [System.Drawing.Color]::FromArgb(0,255,255,255)
    $Markenname_Marlboro.DataBindings.DefaultDataSourceUpdateMode = 0
    $Markenname_Marlboro.ForeColor = [System.Drawing.Color]::FromArgb(255,255,255,255)

    $System_Drawing_Point = New-Object System.Drawing.Point
    $System_Drawing_Point.X = 12
    $System_Drawing_Point.Y = 20
    $Markenname_Marlboro.Location = $System_Drawing_Point
    $Markenname_Marlboro.Name = "Markenname_Marlboro"
    $System_Drawing_Size = New-Object System.Drawing.Size
    $System_Drawing_Size.Height = 23
    $System_Drawing_Size.Width = 204
    $Markenname_Marlboro.Size = $System_Drawing_Size
    $Markenname_Marlboro.TabIndex = 0
    $Markenname_Marlboro.Text = "Marlboro"
    $Markenname_Marlboro.add_Click($handler_label1_Click)


        $listBox1_selectedindexchanged= {
        write-host $listBox1.SelectedItem
        if($listBox1_selectedindexchanged = 1){
        $Teer_wert = "abc"
        }
    }



    $listBox1.add_selectedindexchanged($listBox1_selectedindexchanged)




    $Auswahl.Controls.Add($Markenname_Marlboro)

    #endregion Generated Form Code

    #Save the initial state of the form
    $InitialFormWindowState = $Auswahl.WindowState
    #Init the OnLoad event to correct the initial state of the form
    $Auswahl.add_Load($OnLoadForm_StateCorrection)
    #Show the Form
    $Auswahl.ShowDialog()| Out-Null




    } #End Function

    #Call the Function
    GenerateForm

}

$Own7_OnClick=
{
#TODO: Place custom script here

}

$Own2_OnClick=
{
#TODO: Place custom script here

}

$187_OnClick=
{
#TODO: Place custom script here

}

$handler_label2_Click=
{
#TODO: Place custom script here

}

$Winston_OnClick=
{
#TODO: Place custom script here

}

$button13_OnClick=
{
#TODO: Place custom script here

}

$Own6_OnClick=
{
#TODO: Place custom script here

}

$Own8_OnClick=
{
#TODO: Place custom script here

}

$Camel_OnClick=
{
#TODO: Place custom script here

}

$Own1_OnClick=
{
#TODO: Place custom script here

}

$Kent_OnClick=
{
#TODO: Place custom script here

}

$handler_label1_Click=
{
#TODO: Place custom script here

}

$LuckyStrike_OnClick=
{
#TODO: Place custom script here

}

$Own3_OnClick=
{
#TODO: Place custom script here

}

$Philip_Morris_OnClick=
{
#TODO: Place custom script here

}

$Davidoff_OnClick=
{
#TODO: Place custom script here

}

$OnLoadForm_StateCorrection=
{#Correct the initial state of the form to prevent the .Net maximized form issue
	$Auswahl.WindowState = $InitialFormWindowState
}

#----------------------------------------------
#region Generated Form Code
$Auswahl.BackgroundImage = [System.Drawing.Image]::FromFile('C:\Users\Caner\Desktop\Desktop\TBZ\Modul 122\LB2\background.jpg')
$Auswahl.BackgroundImageLayout = 3
$System_Drawing_Size = New-Object System.Drawing.Size
$System_Drawing_Size.Height = 421
$System_Drawing_Size.Width = 584
$Auswahl.ClientSize = $System_Drawing_Size
$Auswahl.Cursor = [System.Windows.Forms.Cursors]::Arrow
$Auswahl.DataBindings.DefaultDataSourceUpdateMode = 0
$Auswahl.Icon = [System.Drawing.Icon]::ExtractAssociatedIcon('C:\Users\Caner\Desktop\Desktop\TBZ\Modul 122\LB2\icon.ico')
$Auswahl.Name = "Auswahl"
$Auswahl.Text = "Zigi-Rechner"


$187.DataBindings.DefaultDataSourceUpdateMode = 0

$System_Drawing_Point = New-Object System.Drawing.Point
$System_Drawing_Point.X = 546
$System_Drawing_Point.Y = 397
$187.Location = $System_Drawing_Point
$187.Name = "187"
$System_Drawing_Size = New-Object System.Drawing.Size
$System_Drawing_Size.Height = 24
$System_Drawing_Size.Width = 35
$187.Size = $System_Drawing_Size
$187.TabIndex = 18
$187.Text = "187"
$187.UseVisualStyleBackColor = $True
$187.add_Click($187_OnClick)

$Auswahl.Controls.Add($187)

$label2.BackColor = [System.Drawing.Color]::FromArgb(0,255,255,255)
$label2.DataBindings.DefaultDataSourceUpdateMode = 0
$label2.ForeColor = [System.Drawing.Color]::FromArgb(255,255,255,255)

$System_Drawing_Point = New-Object System.Drawing.Point
$System_Drawing_Point.X = 175
$System_Drawing_Point.Y = 234
$label2.Location = $System_Drawing_Point
$label2.Name = "label2"
$System_Drawing_Size = New-Object System.Drawing.Size
$System_Drawing_Size.Height = 23
$System_Drawing_Size.Width = 204
$label2.Size = $System_Drawing_Size
$label2.TabIndex = 17
$label2.Text = "Ist deine Zigarettenmarke nicht dabei?"
$label2.add_Click($handler_label2_Click)

$Auswahl.Controls.Add($label2)


$Own8.DataBindings.DefaultDataSourceUpdateMode = 0

$System_Drawing_Point = New-Object System.Drawing.Point
$System_Drawing_Point.X = 464
$System_Drawing_Point.Y = 335
$Own8.Location = $System_Drawing_Point
$Own8.Name = "Own8"
$System_Drawing_Size = New-Object System.Drawing.Size
$System_Drawing_Size.Height = 23
$System_Drawing_Size.Width = 75
$Own8.Size = $System_Drawing_Size
$Own8.TabIndex = 16
$Own8.Text = "Own8"
$Own8.UseVisualStyleBackColor = $True
$Own8.add_Click($Own8_OnClick)

$Auswahl.Controls.Add($Own8)


$Own7.DataBindings.DefaultDataSourceUpdateMode = 0

$System_Drawing_Point = New-Object System.Drawing.Point
$System_Drawing_Point.X = 306
$System_Drawing_Point.Y = 335
$Own7.Location = $System_Drawing_Point
$Own7.Name = "Own7"
$System_Drawing_Size = New-Object System.Drawing.Size
$System_Drawing_Size.Height = 23
$System_Drawing_Size.Width = 75
$Own7.Size = $System_Drawing_Size
$Own7.TabIndex = 15
$Own7.Text = "Own7"
$Own7.UseVisualStyleBackColor = $True
$Own7.add_Click($Own7_OnClick)

$Auswahl.Controls.Add($Own7)


$Own6.DataBindings.DefaultDataSourceUpdateMode = 0

$System_Drawing_Point = New-Object System.Drawing.Point
$System_Drawing_Point.X = 175
$System_Drawing_Point.Y = 335
$Own6.Location = $System_Drawing_Point
$Own6.Name = "Own6"
$System_Drawing_Size = New-Object System.Drawing.Size
$System_Drawing_Size.Height = 23
$System_Drawing_Size.Width = 75
$Own6.Size = $System_Drawing_Size
$Own6.TabIndex = 14
$Own6.Text = "Own6"
$Own6.UseVisualStyleBackColor = $True
$Own6.add_Click($Own6_OnClick)

$Auswahl.Controls.Add($Own6)


$button13.DataBindings.DefaultDataSourceUpdateMode = 0

$System_Drawing_Point = New-Object System.Drawing.Point
$System_Drawing_Point.X = 25
$System_Drawing_Point.Y = 335
$button13.Location = $System_Drawing_Point
$button13.Name = "button13"
$System_Drawing_Size = New-Object System.Drawing.Size
$System_Drawing_Size.Height = 23
$System_Drawing_Size.Width = 75
$button13.Size = $System_Drawing_Size
$button13.TabIndex = 13
$button13.Text = "Own5"
$button13.UseVisualStyleBackColor = $True
$button13.add_Click($button13_OnClick)

$Auswahl.Controls.Add($button13)


$Own4.DataBindings.DefaultDataSourceUpdateMode = 0

$System_Drawing_Point = New-Object System.Drawing.Point
$System_Drawing_Point.X = 464
$System_Drawing_Point.Y = 276
$Own4.Location = $System_Drawing_Point
$Own4.Name = "Own4"
$System_Drawing_Size = New-Object System.Drawing.Size
$System_Drawing_Size.Height = 23
$System_Drawing_Size.Width = 75
$Own4.Size = $System_Drawing_Size
$Own4.TabIndex = 12
$Own4.Text = "Own4"
$Own4.UseVisualStyleBackColor = $True
$Own4.add_Click($Own4_OnClick)

$Auswahl.Controls.Add($Own4)


$Own3.DataBindings.DefaultDataSourceUpdateMode = 0

$System_Drawing_Point = New-Object System.Drawing.Point
$System_Drawing_Point.X = 304
$System_Drawing_Point.Y = 276
$Own3.Location = $System_Drawing_Point
$Own3.Name = "Own3"
$System_Drawing_Size = New-Object System.Drawing.Size
$System_Drawing_Size.Height = 23
$System_Drawing_Size.Width = 75
$Own3.Size = $System_Drawing_Size
$Own3.TabIndex = 11
$Own3.Text = "Own3"
$Own3.UseVisualStyleBackColor = $True
$Own3.add_Click($Own3_OnClick)

$Auswahl.Controls.Add($Own3)


$Own2.DataBindings.DefaultDataSourceUpdateMode = 0

$System_Drawing_Point = New-Object System.Drawing.Point
$System_Drawing_Point.X = 175
$System_Drawing_Point.Y = 276
$Own2.Location = $System_Drawing_Point
$Own2.Name = "Own2"
$System_Drawing_Size = New-Object System.Drawing.Size
$System_Drawing_Size.Height = 23
$System_Drawing_Size.Width = 75
$Own2.Size = $System_Drawing_Size
$Own2.TabIndex = 10
$Own2.Text = "Own2"
$Own2.UseVisualStyleBackColor = $True
$Own2.add_Click($Own2_OnClick)

$Auswahl.Controls.Add($Own2)


$Own1.DataBindings.DefaultDataSourceUpdateMode = 0

$System_Drawing_Point = New-Object System.Drawing.Point
$System_Drawing_Point.X = 25
$System_Drawing_Point.Y = 276
$Own1.Location = $System_Drawing_Point
$Own1.Name = "Own1"
$System_Drawing_Size = New-Object System.Drawing.Size
$System_Drawing_Size.Height = 23
$System_Drawing_Size.Width = 75
$Own1.Size = $System_Drawing_Size
$Own1.TabIndex = 9
$Own1.Text = "Own1"
$Own1.UseVisualStyleBackColor = $True
$Own1.add_Click($Own1_OnClick)

$Auswahl.Controls.Add($Own1)


$Philip_Morris.DataBindings.DefaultDataSourceUpdateMode = 0

$System_Drawing_Point = New-Object System.Drawing.Point
$System_Drawing_Point.X = 464
$System_Drawing_Point.Y = 158
$Philip_Morris.Location = $System_Drawing_Point
$Philip_Morris.Name = "Philip_Morris"
$System_Drawing_Size = New-Object System.Drawing.Size
$System_Drawing_Size.Height = 23
$System_Drawing_Size.Width = 75
$Philip_Morris.Size = $System_Drawing_Size
$Philip_Morris.TabIndex = 8
$Philip_Morris.Text = "Philip Morris"
$Philip_Morris.UseVisualStyleBackColor = $True
$Philip_Morris.add_Click($Philip_Morris_OnClick)

$Auswahl.Controls.Add($Philip_Morris)


$Davidoff.DataBindings.DefaultDataSourceUpdateMode = 0

$System_Drawing_Point = New-Object System.Drawing.Point
$System_Drawing_Point.X = 306
$System_Drawing_Point.Y = 158
$Davidoff.Location = $System_Drawing_Point
$Davidoff.Name = "Davidoff"
$System_Drawing_Size = New-Object System.Drawing.Size
$System_Drawing_Size.Height = 23
$System_Drawing_Size.Width = 75
$Davidoff.Size = $System_Drawing_Size
$Davidoff.TabIndex = 7
$Davidoff.Text = "Davidoff"
$Davidoff.UseVisualStyleBackColor = $True
$Davidoff.add_Click($Davidoff_OnClick)

$Auswahl.Controls.Add($Davidoff)


$Parisienne.DataBindings.DefaultDataSourceUpdateMode = 0

$System_Drawing_Point = New-Object System.Drawing.Point
$System_Drawing_Point.X = 175
$System_Drawing_Point.Y = 158
$Parisienne.Location = $System_Drawing_Point
$Parisienne.Name = "Parisienne"
$System_Drawing_Size = New-Object System.Drawing.Size
$System_Drawing_Size.Height = 23
$System_Drawing_Size.Width = 75
$Parisienne.Size = $System_Drawing_Size
$Parisienne.TabIndex = 6
$Parisienne.Text = "Parisienne"
$Parisienne.UseVisualStyleBackColor = $True
$Parisienne.add_Click($Parisienne_OnClick)

$Auswahl.Controls.Add($Parisienne)


$LuckyStrike.DataBindings.DefaultDataSourceUpdateMode = 0

$System_Drawing_Point = New-Object System.Drawing.Point
$System_Drawing_Point.X = 25
$System_Drawing_Point.Y = 158
$LuckyStrike.Location = $System_Drawing_Point
$LuckyStrike.Name = "LuckyStrike"
$System_Drawing_Size = New-Object System.Drawing.Size
$System_Drawing_Size.Height = 23
$System_Drawing_Size.Width = 75
$LuckyStrike.Size = $System_Drawing_Size
$LuckyStrike.TabIndex = 5
$LuckyStrike.Text = "LuckyStrike"
$LuckyStrike.UseVisualStyleBackColor = $True
$LuckyStrike.add_Click($LuckyStrike_OnClick)

$Auswahl.Controls.Add($LuckyStrike)


$Camel.DataBindings.DefaultDataSourceUpdateMode = 0

$System_Drawing_Point = New-Object System.Drawing.Point
$System_Drawing_Point.X = 464
$System_Drawing_Point.Y = 72
$Camel.Location = $System_Drawing_Point
$Camel.Name = "Camel"
$System_Drawing_Size = New-Object System.Drawing.Size
$System_Drawing_Size.Height = 23
$System_Drawing_Size.Width = 75
$Camel.Size = $System_Drawing_Size
$Camel.TabIndex = 4
$Camel.Text = "Camel"
$Camel.UseVisualStyleBackColor = $True
$Camel.add_Click($Camel_OnClick)

$Auswahl.Controls.Add($Camel)


$Kent.DataBindings.DefaultDataSourceUpdateMode = 0

$System_Drawing_Point = New-Object System.Drawing.Point
$System_Drawing_Point.X = 306
$System_Drawing_Point.Y = 72
$Kent.Location = $System_Drawing_Point
$Kent.Name = "Kent"
$System_Drawing_Size = New-Object System.Drawing.Size
$System_Drawing_Size.Height = 23
$System_Drawing_Size.Width = 75
$Kent.Size = $System_Drawing_Size
$Kent.TabIndex = 3
$Kent.Text = "Kent"
$Kent.UseVisualStyleBackColor = $True
$Kent.add_Click($Kent_OnClick)

$Auswahl.Controls.Add($Kent)


$Winston.DataBindings.DefaultDataSourceUpdateMode = 0

$System_Drawing_Point = New-Object System.Drawing.Point
$System_Drawing_Point.X = 175
$System_Drawing_Point.Y = 72
$Winston.Location = $System_Drawing_Point
$Winston.Name = "Winston"
$System_Drawing_Size = New-Object System.Drawing.Size
$System_Drawing_Size.Height = 23
$System_Drawing_Size.Width = 75
$Winston.Size = $System_Drawing_Size
$Winston.TabIndex = 2
$Winston.Text = "Winston"
$Winston.UseVisualStyleBackColor = $True
$Winston.add_Click($Winston_OnClick)

$Auswahl.Controls.Add($Winston)


$Marlboro.DataBindings.DefaultDataSourceUpdateMode = 0

$System_Drawing_Point = New-Object System.Drawing.Point
$System_Drawing_Point.X = 25
$System_Drawing_Point.Y = 73
$Marlboro.Location = $System_Drawing_Point
$Marlboro.Name = "Marlboro"
$System_Drawing_Size = New-Object System.Drawing.Size
$System_Drawing_Size.Height = 23
$System_Drawing_Size.Width = 75
$Marlboro.Size = $System_Drawing_Size
$Marlboro.TabIndex = 1
$Marlboro.Text = "Marlboro"
$Marlboro.UseVisualStyleBackColor = $True
$Marlboro.add_Click($Marlboro_OnClick)

$Auswahl.Controls.Add($Marlboro)

$Auswahltext.BackColor = [System.Drawing.Color]::FromArgb(0,255,255,255)
$Auswahltext.DataBindings.DefaultDataSourceUpdateMode = 0
$Auswahltext.ForeColor = [System.Drawing.Color]::FromArgb(255,255,255,255)

$System_Drawing_Point = New-Object System.Drawing.Point
$System_Drawing_Point.X = 175
$System_Drawing_Point.Y = 20
$Auswahltext.Location = $System_Drawing_Point
$Auswahltext.Name = "Auswahltext"
$System_Drawing_Size = New-Object System.Drawing.Size
$System_Drawing_Size.Height = 23
$System_Drawing_Size.Width = 204
$Auswahltext.Size = $System_Drawing_Size
$Auswahltext.TabIndex = 0
$Auswahltext.Text = "Bitte wähle deine Zigarettenmarke aus:"
$Auswahltext.add_Click($handler_label1_Click)

$Auswahl.Controls.Add($Auswahltext)

#endregion Generated Form Code

#Save the initial state of the form
$InitialFormWindowState = $Auswahl.WindowState
#Init the OnLoad event to correct the initial state of the form
$Auswahl.add_Load($OnLoadForm_StateCorrection)
#Show the Form
$Auswahl.ShowDialog()| Out-Null

} #End Function

#Call the Function
GenerateForm

Wie krieg es hin, dass wenn bei der ListBox1 zb. Marlboro Rot ausgewählt ist, es die Variabel $Teer_Wert auf Xmg ändert?

        $listBox1_selectedindexchanged= {
        write-host $listBox1.SelectedItem
        if($listBox1_selectedindexchanged = asd){
        $Teer_wert = "abc"
        }
    }



    $listBox1.add_selectedindexchanged($listBox1_selectedindexchanged)


Caner Savas

Registry Wert suchen und ändern

$
0
0

Hallo allerseits,

ich möchte in unserem AD den Wert für new und reply-forward Signatur ändern. Auf keinen Fall will ich dafür:
Software\Microsoft\Office\14.0\Common\MailSettings\NewSignature   und
Software\Microsoft\Office\14.0\Common\MailSettings\ReplySignature
verwenden, da das die Möglichkeit nimmt, eine andere Signatur zu wählen und bei aus z. B. Word/Excel gesendeten Dokumenten überhaupt eine Signatur einzufügen.

Also will ich nach:
Office bis 2010:
HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging Subsystem\Profiles\Outlook\9375CFF0413111d3B88A00104B2A6676\0000000x
Office ab 2013:
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\xx.0\Outlook\Profiles\Outlook\9375CFF0413111d3B88A00104B2A6676\0000000x

Wobei 0000000x herauszufinden ist. Teils gibt es mehrere Konten. Somit habe ich mal nur 0000001 und manchmal z. B. 000001 - 0000005

Dort möchte ich:

Zuerst das richtige Konto herausfinden. Ich habe da "Account Name", da könnte ich nach dem Firmenteil der Mailadresse suchen. Ab 2013 steht er einfach so drin, bis 2010 steht er mit Leerzeichen getrennt drin.

Dann den Wert für "New Signature" und "Reply-Forward Signature" ändern bzw. setzen. Hier ist ebenfalls zu unterscheiden, dass bis 2010 mit Leerzeichen getrennt gesetzt werden muss.

Ich bin nicht sonderlich PowerShell erfahren. Kann jemand helfen?

Mit Powershell xml File auslesen und in ein csv schreiben

$
0
0

Hallo Forum

Ich bin nun schon seit einigen Stunden am versuchen, dieses xml File auszulesen und in eine csv Liste zu schreiben. Leider gelingt mir dies noch nicht wie gewünscht und ich hoffe jemand von euch kann mir dieses Rätsel lösen. :-)

Das XML-File hat folgende Struktur:

<?xml version="1.0" encoding="utf-8"?><VMSystem xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><VersionConfig>6.0.0.5</VersionConfig><Filename>XMLConf.xml</Filename><Compatibilty>VMSystem</Compatibilty><Management><ManagementName>Basel</ManagementName></Management><DeviceServerList><DeviceServerCnf><DeviceServerName>bs-lsm-001</DeviceServerName><VideoDeviceList><VideoDevice><VideoDeviceHostName>bs-enc-001</VideoDeviceHostName><VideoDeviceCameraList><Camera><CameraUID>1900001</CameraUID></Camera></VideoDeviceCameraList></VideoDevice><VideoDevice><VideoDeviceHostName>bs-enc-002</VideoDeviceHostName><VideoDeviceCameraList><Camera><CameraUID>1900002</CameraUID></Camera></VideoDeviceCameraList></VideoDevice><VideoDevice><VideoDeviceHostName>kau-cam-003</VideoDeviceHostName><VideoDeviceCameraList><Camera><CameraUID>1900149</CameraUID></Camera></VideoDeviceCameraList></VideoDevice></VideoDeviceList></DeviceServerCnf><DeviceServerCnf><DeviceServerName>bs-dvs-001</DeviceServerName><VideoDeviceList><VideoDevice><VideoDeviceHostName>bsja-enc-006</VideoDeviceHostName><VideoDeviceCameraList><Camera><CameraUID>1900115</CameraUID></Camera></VideoDeviceCameraList></VideoDevice><VideoDevice><VideoDeviceHostName>bsja-enc-005</VideoDeviceHostName><VideoDeviceCameraList><Camera><CameraUID>1900114</CameraUID></Camera></VideoDeviceCameraList></VideoDevice></VideoDeviceList></DeviceServerCnf></DeviceServerList></VMSystem>

Am Schluss möchte ich eine Liste, welche folgendermassen aussieht:

Standort     DeviceServerName     CameraID     CameraHostname 

Basel          bs-lsm-001                 1900001      bs-enc-001
Basel          bs-lsm-001                 1900002      bs-enc-002
Basel          bs-lsm-001                 1900149      kau-cam-003
Basel          bs-dvs-001                 1900115      bsja-enc-006

Versucht habe ich es mit diesem Code, jedoch kriege ich die Verlinkung der CameraID und dem CameraHostName nicht hin.

$DestinationDirectory = "\\zol-dc-01\Daten\Backups\Massenexport"
$Files = Get-ChildItem -Path $DestinationDirectory -Filter *.xml
foreach ($File in $Files)
{
    $a=([xml](gc $DestinationDirectory\$File)).VMSystem
    $d=([xml](gc $DestinationDirectory\$File)).VMSystem.DeviceServerList.DeviceServerCnf | % {
      foreach ($i in $_.VideoDeviceList.VideoDevice.VideoDeviceCameraList.Camera.CameraUID)
      {
        $o = New-Object Object
        Add-Member -InputObject $o -MemberType NoteProperty -Name Standort -Value $a.Management.ManagementName
        Add-Member -InputObject $o -MemberType NoteProperty -Name DeviceServerName -Value $_.DeviceServerName
        Add-Member -InputObject $o -MemberType NoteProperty -Name CameraID -Value $i

        foreach ($j in $_.VideoDeviceList.VideoDevice.VideoDeviceHostName)
        {
            Add-Member -InputObject $o -MemberType NoteProperty -Name CameraHostname -Value $_.VideoDeviceList.VideoDevice.VideoDeviceHostName -Force | Where-Object {$i -eq  ($_.VideoDeviceList.VideoDevice.VideoDeviceCameraList.Camera.CameraUID)}
        }

        $o

      }
    }
    $d
    #$d | Export-Csv -NoTypeInformation -Path "$DestinationDirectory\$File.csv"

Ich habe im Beispiel nun lediglich ein xml File erwähnt. Am Schluss habe ich ca. 16 xml Files, welche ich nach diesem Verfahren durchsuchen und eine csv Liste erstellen möchte. Dies nur zur Erklärung.

Danke für eure Hilfe oder Tipps.
Gruss Thomas

Viewing all 2314 articles
Browse latest View live


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