Marco26
Cadet 3rd Year
- Registriert
- Sep. 2016
- Beiträge
- 37
Hey ich bins nochmal (und hoffentlich zum letzten mal) ^^
Mein Programm hier läuft super in der PowerShell ISE aber wenn ich einfach auf die ps1 Datei nen doppelklick drauf mache, ploppt kurz PS auf und schließt sich sofort wieder. Keine GUI nichts nada.
Fehlt da ein bestimmter Befehl ? Falscher Datei Typ ?
Mein Programm hier läuft super in der PowerShell ISE aber wenn ich einfach auf die ps1 Datei nen doppelklick drauf mache, ploppt kurz PS auf und schließt sich sofort wieder. Keine GUI nichts nada.
Code:
[void] [System.Reflection.Assembly]::LoadWithPartialName("System.Drawing")
[void] [System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms")
#Fenster
$form = New-Object Windows.Forms.Form
$form.text = "Share erstellen"
#Label
$label = New-Object Windows.Forms.Label
$label.Location = New-Object Drawing.Point 50,30
$label.Size = New-Object Drawing.Point 200, 15
$label.Text = "Geben Sie das Passwort ein"
$form.Controls.Add($label)
#Textbar für das Passwort
$textpwd = New-Object Windows.Forms.Textbox
$textpwd.Location = New-Object Drawing.Point 50,60
$textpwd.Size = New-Object Drawing.Point 200, 15
$textpwd.Text = ""
$form.Controls.Add($textpwd)
#Textbar für den Pfad
$textPath = New-Object Windows.Forms.Textbox
$textPath.Location = New-Object Drawing.Point 50,60
$textPath.Size = New-Object Drawing.Point 200,30
$textPath.Text = "E:\"
#Textbar für den Namen
$textName = New-Object Windows.Forms.Textbox
$textName.Location = New-Object Drawing.Point 50,60
$textName.Size = New-Object Drawing.Point 200, 30
$textName.Text = "Sharename\"
#Combobox für den Unterordner und die AD-Gruppe
$Box = New-Object System.Windows.Forms.ComboBox
$Box.Location = New-Object System.Drawing.Size 50,60
$Box.Size = New-Object System.Drawing.Size 200,30
[void] $Box.Items.Add("Kunden")
[void] $Box.Items.Add("Buchhaltung")
[void] $Box.Items.Add("Finanzen")
[void] $Box.Items.Add("Geschäftsführung")
[void] $Box.Items.Add("Verwaltung")
$Box.Height = 70
$form.TopMost = $true
#EndeButton
$EndButton = New-Object Windows.Forms.Button
$EndButton.Location = New-Object Drawing.Point 150, 200
$EndButton.Text = "Beenden"
$EndButton.Add_Click({$form.Close()})
#CancelButton
$ButtonCancel = New-Object Windows.Forms.Button
$ButtonCancel.Location = New-Object Drawing.Point 150,200
$ButtonCancel.Text = "Cancel"
$ButtonCancel.Add_Click({$form.Close()})
$form.Controls.Add($ButtonCancel)
#PasswortButton
$pwdButton = New-Object Windows.Forms.Button
$pwdButton.Location = New-Object Drawing.Point 50,200
$pwdButton.Text = "OK"
$form.Controls.Add($pwdButton)
#WeiterButton Nr.3
$WeiterButton3 = New-Object Windows.Forms.Button
$WeiterButton3.Location = New-Object Drawing.Point 50,200
$WeiterButton3.Text = "Weiter"
#WeiterButton Nr.2
$WeiterButton2 = New-Object Windows.Forms.Button
$WeiterButton2.Location = New-Object Drawing.Point 50,200
$WeiterButton2.Text = "Weiter"
#WeiterButton Nr.1
$WeiterButton1 = New-Object Windows.Forms.Button
$WeiterButton1.Location = New-Object Drawing.Point 50,200
$WeiterButton1.Text = "Weiter"
$pwdButton.Add_Click({
if (Test-Path ("E:\Programme\Share\Exe\" + $textpwd.Text)) {
$form.Controls.Add($WeiterButton1)
$form.Controls.Add($textPath)
$form.Controls.Remove($pwdButton)
$form.Controls.Remove($textpwd)
$label.Text = "Pfad angeben"
} Else {
$label.Text = "Passwort falsch"
}
})
$WeiterButton1.Add_Click({
if (Test-Path $textPath.Text) {
$label.Text = "Share benennen"
$form.Controls.Remove($textPath)
$form.Controls.Remove($WeiterButton1)
$form.Controls.Add($textName)
$form.Controls.Add($WeiterButton2)
} Else {
$label.Text = ("Der Pfad "+ $textPath.Text + "konnte nicht gefunden werden")
}
})
$WeiterButton2.Add_Click({
$temp = $textPath.Text + $textName.Text
if (Test-Path $temp) {
$label.Text = "Der Ordner existiert bereits"
} Else {
New-Item -Name $textName.Text -ItemType directory -Path $textPath.Text
$form.Controls.Remove($textName)
$form.Controls.Remove($WeiterButton2)
$form.Controls.Remove($ButtonCancel)
$label.Text = "Unterordner benennen"
$form.Controls.Add($Box)
$form.Controls.Add($WeiterButton3)
$form.Controls.Add($EndButton)
}
})
$WeiterButton3.Add_Click({
$temp2 = $textPath.Text + $textName.Text + $Box.Text
if (Test-Path $temp2) {
$label.Text = "Der Ordner existiert bereits"
} Else {
#Ordner und AD Gruppe erstellen
New-Item -Name $Box.Text -ItemType directory -Path ($textPath.Text + $textName.Text + $Box.Text)
New-ADGroup -GroupScope Global -Name ("grp_Share_" + $Box.Text) -Description ("Zugriffsgruppe auf den Ordner " + $Box.Text + " im Share " + $textName.Text)
#Vererbung im Ordner deaktivieren
$folder = ($textPath.Text + $textName.Text + $Box.Text)
$acl2 = Get-Acl -Path $folder
$acl2.SetAccessRuleProtection($True, $True)
set-acl -Path $folder -AclObject $acl2
#Gibt der Gruppe Vollzugriff auf den Ordner
$Right = "FullControl"
$Path = ($textPath.Text + $textName.Text + $Box.Text)
$Principal=("Contoso\grp_Share_" + $Box.Text)
$rule=New-Object System.security.AccessControl.FileSystemAccessRule($Principal,$Right,3, 0,"Allow")
$acl = get-acl $Path
$acl.SetAccessRule($rule)
set-acl $Path $acl
}
})
$form.ShowDialog()
Fehlt da ein bestimmter Befehl ? Falscher Datei Typ ?