Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Prompt User für Active Directory (bzw. einer Domäne oder OU)?

Frage Entwicklung Batch & Shell

Mitglied: IT-Wurzel

IT-Wurzel (Level 1) - Jetzt verbinden

20.08.2014, aktualisiert 13:39 Uhr, 806 Aufrufe, 9 Kommentare, 2 Danke

Guten Morgen liebe Community,

meine heutige Frage,

"gibt es, wie z.B. unter vbs für Dateien und Ordner (Stichwort Window_Handle), unter Powershell die Möglichkeit (mit einer kleinen GUI z.B.) mir die Auswahl einer Domäne zu ermöglichen, um diese dann an das Skript zur weiteren Verarbeitung zu übergeben?"

(Falls ich mich zu kompliziert ausgedrückt haben sollte, bitte um Nachsicht und nachfrage )
Mitglied: colinardo
20.08.2014, aktualisiert um 10:21 Uhr
Moin,
"gibt es, wie z.B. unter vbs für Dateien und Ordner (Stichwort Window_Handle), unter Powershell die Möglichkeit (mit einer kleinen GUI z.B.) mir die Auswahl einer Domäne zu ermöglichen, um diese dann an das Skript zur weiteren Verarbeitung zu übergeben?"
yip, geht alles, da Powershell auf dem NET Framework aufbaut hast du hier das ganze Arsenal der Windows Forms etc. zur Verfügung:
Beispiel: GUI mit Combobox
01.
# Form Function 
02.
function GenerateForm { 
03.
#region Import the Assemblies 
04.
[reflection.assembly]::loadwithpartialname("System.Windows.Forms") | Out-Null 
05.
[reflection.assembly]::loadwithpartialname("System.Drawing") | Out-Null 
06.
#endregion 
07.
 
08.
#region Generated Form Objects 
09.
$form1 = New-Object System.Windows.Forms.Form 
10.
$btnOK = New-Object System.Windows.Forms.Button 
11.
$comboDomains = New-Object System.Windows.Forms.ComboBox 
12.
$InitialFormWindowState = New-Object System.Windows.Forms.FormWindowState 
13.
#endregion Generated Form Objects 
14.
 
15.
#-------------------------------------- 
16.
# Event Script Blocks 
17.
#-------------------------------------- 
18.
#Provide Custom Code for events specified in PrimalForms. 
19.
$handler_btnOK_Click=  
20.
21.
    $script:resultDomain = $comboDomains.SelectedItem.ToString() 
22.
    $form1.Close() 
23.
24.
 
25.
$OnLoadForm_StateCorrection= 
26.
{#Correct the initial state of the form to prevent the .Net maximized form issue 
27.
	$form1.WindowState = $InitialFormWindowState 
28.
29.
 
30.
#---------------------------------------------- 
31.
#region Form Code 
32.
$System_Drawing_Size = New-Object System.Drawing.Size 
33.
$System_Drawing_Size.Height = 47 
34.
$System_Drawing_Size.Width = 259 
35.
$form1.ClientSize = $System_Drawing_Size 
36.
$form1.DataBindings.DefaultDataSourceUpdateMode = 0 
37.
$form1.FormBorderStyle = 3 
38.
$form1.MaximizeBox = $False 
39.
$form1.MinimizeBox = $False 
40.
$form1.Name = "form1" 
41.
$form1.StartPosition = 4 
42.
$form1.Text = "Domain auswählen" 
43.
 
44.
 
45.
$btnOK.DataBindings.DefaultDataSourceUpdateMode = 0 
46.
 
47.
$System_Drawing_Point = New-Object System.Drawing.Point 
48.
$System_Drawing_Point.X = 202 
49.
$System_Drawing_Point.Y = 12 
50.
$btnOK.Location = $System_Drawing_Point 
51.
$btnOK.Name = "btnOK" 
52.
$System_Drawing_Size = New-Object System.Drawing.Size 
53.
$System_Drawing_Size.Height = 21 
54.
$System_Drawing_Size.Width = 45 
55.
$btnOK.Size = $System_Drawing_Size 
56.
$btnOK.TabIndex = 1 
57.
$btnOK.Text = "OK" 
58.
$btnOK.UseVisualStyleBackColor = $True 
59.
$btnOK.add_Click($handler_btnOK_Click) 
60.
 
61.
$form1.Controls.Add($btnOK) 
62.
 
63.
$comboDomains.DataBindings.DefaultDataSourceUpdateMode = 0 
64.
$comboDomains.DropDownStyle = 2 
65.
$comboDomains.FormattingEnabled = $True 
66.
$comboDomains.Items.Add("domain1.de")|Out-Null 
67.
$comboDomains.Items.Add("domain2.de")|Out-Null 
68.
$comboDomains.Items.Add("domain3.de")|Out-Null 
69.
$comboDomains.SelectedIndex = 0 
70.
$System_Drawing_Point = New-Object System.Drawing.Point 
71.
$System_Drawing_Point.X = 12 
72.
$System_Drawing_Point.Y = 12 
73.
$comboDomains.Location = $System_Drawing_Point 
74.
$comboDomains.Name = "comboDomains" 
75.
$System_Drawing_Size = New-Object System.Drawing.Size 
76.
$System_Drawing_Size.Height = 21 
77.
$System_Drawing_Size.Width = 184 
78.
$comboDomains.Size = $System_Drawing_Size 
79.
$comboDomains.TabIndex = 0 
80.
 
81.
$form1.Controls.Add($comboDomains) 
82.
 
83.
#endregion Form Code 
84.
 
85.
#Save the initial state of the form 
86.
$InitialFormWindowState = $form1.WindowState 
87.
#Init the OnLoad event to correct the initial state of the form 
88.
$form1.add_Load($OnLoadForm_StateCorrection) 
89.
#Show the Form 
90.
$form1.ShowDialog()| Out-Null 
91.
return $script:resultDomain 
92.
} #End Function 
93.
 
94.
#Call the Function 
95.
$domain = GenerateForm 
96.
 
97.
# Anzeigen der Auswahl 
98.
write-host "Die ausgewählte Domain lautet: $domain"
Alternativ wäre auch ein Textauswahlmenü in der Shell kein Problem. Stichwort Eingabeabfrage mit Read-Host

Beispiel: Textauswahlmenü
01.
$domains = @("Domain1.de","domain2.de","domain3.de") 
02.
Write-host "Bitte wählen sie eine Domain:`r`n------------------------" -ForegroundColor Green 
03.
$cnt = 1 
04.
$domains | %{write-host "`t[$cnt] $_" -ForegroundColor Yellow; $cnt++} 
05.
 
06.
$result = Read-Host "Ihre Auswahl" 
07.
if ($domains[$result-1]){ 
08.
    write-host "Sie haben folgende Domain gewählt: $($domains[$result-1])" -ForegroundColor Green 
09.
}else{ 
10.
    write-host "Sie haben keine gültige Auswahl getroffen!" -ForegroundColor Red 
11.
}
Grüße Uwe
Bitte warten ..
Mitglied: IT-Wurzel
20.08.2014 um 10:36 Uhr
Hallo Uwe,

beide Lösungen sind grandios (wie immer!). Vielen Dank dazu.

aber als schmankerl'n, bzw. das i-Tüpfelchen ...

wie kann man die Abfrage so gestallten, dass er eine, oder die Domäne(n) automatisch ermittelt und sofern vorhanden, anzeigt, oder eben nur einen Alternativtext (z.B. "No Domain found", oder so ähnlich).

Grüße Mario
Bitte warten ..
Mitglied: colinardo
20.08.2014, aktualisiert um 10:41 Uhr
Zitat von IT-Wurzel:
wie kann man die Abfrage so gestallten, dass er eine, oder die Domäne(n) automatisch ermittelt und sofern vorhanden, anzeigt,
Du willst alle Domains eines Forest auflisten ?
Bitte warten ..
Mitglied: IT-Wurzel
20.08.2014 um 10:52 Uhr
genau, das wäre das was perfekt wäre
Bitte warten ..
Mitglied: colinardo
LÖSUNG 20.08.2014, aktualisiert um 13:39 Uhr
dann check this:
01.
#Form Function 
02.
function GenerateForm { 
03.
#region Import the Assemblies 
04.
[reflection.assembly]::loadwithpartialname("System.Windows.Forms") | Out-Null 
05.
[reflection.assembly]::loadwithpartialname("System.Drawing") | Out-Null 
06.
#endregion 
07.
 
08.
#region Generated Form Objects 
09.
$form1 = New-Object System.Windows.Forms.Form 
10.
$btnOK = New-Object System.Windows.Forms.Button 
11.
$comboDomains = New-Object System.Windows.Forms.ComboBox 
12.
$InitialFormWindowState = New-Object System.Windows.Forms.FormWindowState 
13.
#endregion Generated Form Objects 
14.
 
15.
#---------------------------------------------- 
16.
#Generated Event Script Blocks 
17.
#---------------------------------------------- 
18.
#Provide Custom Code for events specified in PrimalForms. 
19.
$handler_btnOK_Click=  
20.
21.
    $script:resultDomain = $comboDomains.SelectedItem.ToString() 
22.
    $form1.Close() 
23.
24.
$handler_form1_Load= 
25.
26.
    Try{ 
27.
        $domains = [System.DirectoryServices.ActiveDirectory.Forest]::GetCurrentForest() | select -ExpandProperty Domains | select -ExpandProperty Name 
28.
        if ($domains.length -gt  0 ){ 
29.
            $domains | %{$comboDomains.Items.Add($_)} 
30.
            $comboDomains.SelectedIndex = 0 
31.
        }else{ 
32.
             [System.Windows.Forms.MessageBox]::Show("No Domains could be found in Forest!","Error",[System.Windows.Forms.MessageBoxButtons]::OK,[System.Windows.Forms.MessageBoxIcon]::Error) 
33.
            $script:resultDomain = "No Domain found" 
34.
            $form1.Close() 
35.
36.
    }catch{ 
37.
        [System.Windows.Forms.MessageBox]::Show("No Domains could be found!`r`nError: $($_.Exception.Message)","Error",[System.Windows.Forms.MessageBoxButtons]::OK,[System.Windows.Forms.MessageBoxIcon]::Error) 
38.
        $script:resultDomain = "No Domain found" 
39.
        $form1.Close() 
40.
41.
42.
 
43.
$OnLoadForm_StateCorrection= 
44.
{#Correct the initial state of the form to prevent the .Net maximized form issue 
45.
	$form1.WindowState = $InitialFormWindowState 
46.
47.
 
48.
#---------------------------------------------- 
49.
#region Generated Form Code 
50.
$System_Drawing_Size = New-Object System.Drawing.Size 
51.
$System_Drawing_Size.Height = 47 
52.
$System_Drawing_Size.Width = 259 
53.
$form1.ClientSize = $System_Drawing_Size 
54.
$form1.DataBindings.DefaultDataSourceUpdateMode = 0 
55.
$form1.FormBorderStyle = 3 
56.
$form1.MaximizeBox = $False 
57.
$form1.MinimizeBox = $False 
58.
$form1.Name = "form1" 
59.
$form1.StartPosition = 4 
60.
$form1.Text = "Domain auswählen" 
61.
$form1.add_Load($handler_form1_Load) 
62.
 
63.
$btnOK.DataBindings.DefaultDataSourceUpdateMode = 0 
64.
 
65.
$System_Drawing_Point = New-Object System.Drawing.Point 
66.
$System_Drawing_Point.X = 202 
67.
$System_Drawing_Point.Y = 12 
68.
$btnOK.Location = $System_Drawing_Point 
69.
$btnOK.Name = "btnOK" 
70.
$System_Drawing_Size = New-Object System.Drawing.Size 
71.
$System_Drawing_Size.Height = 21 
72.
$System_Drawing_Size.Width = 45 
73.
$btnOK.Size = $System_Drawing_Size 
74.
$btnOK.TabIndex = 1 
75.
$btnOK.Text = "OK" 
76.
$btnOK.UseVisualStyleBackColor = $True 
77.
$btnOK.add_Click($handler_btnOK_Click) 
78.
 
79.
$form1.Controls.Add($btnOK) 
80.
 
81.
$comboDomains.DataBindings.DefaultDataSourceUpdateMode = 0 
82.
$comboDomains.DropDownStyle = 2 
83.
$comboDomains.FormattingEnabled = $True 
84.
$System_Drawing_Point = New-Object System.Drawing.Point 
85.
$System_Drawing_Point.X = 12 
86.
$System_Drawing_Point.Y = 12 
87.
$comboDomains.Location = $System_Drawing_Point 
88.
$comboDomains.Name = "comboDomains" 
89.
$System_Drawing_Size = New-Object System.Drawing.Size 
90.
$System_Drawing_Size.Height = 21 
91.
$System_Drawing_Size.Width = 184 
92.
$comboDomains.Size = $System_Drawing_Size 
93.
$comboDomains.TabIndex = 0 
94.
 
95.
$form1.Controls.Add($comboDomains) 
96.
 
97.
#endregion Generated Form Code 
98.
 
99.
#Save the initial state of the form 
100.
$InitialFormWindowState = $form1.WindowState 
101.
#Init the OnLoad event to correct the initial state of the form 
102.
$form1.add_Load($OnLoadForm_StateCorrection) 
103.
#Show the Form 
104.
$form1.ShowDialog()| Out-Null 
105.
return $script:resultDomain 
106.
} #End Function 
107.
 
108.
#Call the Function 
109.
$domain = GenerateForm 
110.
 
111.
# Anzeigen der Auswahl 
112.
write-host "Die ausgewählte Domain lautet: $domain"
Bitte warten ..
Mitglied: IT-Wurzel
20.08.2014 um 12:23 Uhr
Hallo Uwe,

bei mehr als einer Dömane in einem Forrest funktioniert das Skript tadellos
Bei nur einer Domäne erscheint allerdings dann die Fehlermeldung "No Domains could be found ..."

Gruß,
Mario
Bitte warten ..
Mitglied: colinardo
20.08.2014, aktualisiert um 12:30 Uhr
Zitat von IT-Wurzel:
bei mehr als einer Dömane in einem Forrest funktioniert das Skript tadellos
Bei nur einer Domäne erscheint allerdings dann die Fehlermeldung "No Domains could be found ..."
läuft hier bei mir auch mit einer einzigen Domäne ...

Bei nur einer Domäne erscheint allerdings dann die Fehlermeldung "No Domains could be found ..."
Diese Meldung erscheint wenn der Rechner in keiner Domäne ist, weil das Script dort in eine Exception läuft die ich abfange wenn der Rechner in keiner Domäne Mitglied ist. Der Rechner muss natürlich mit der Domäne verbunden sein, damit die Abfrage klappt.
Bitte warten ..
Mitglied: IT-Wurzel
20.08.2014 um 12:39 Uhr
Ok, dann hatte ich da einen Gedankenfehler ...

Ich hatte das Script in einer realen Umgebung auf einem Desktop getestet, und in einer Demo-Umgebung direkt auf dem Domänen Server ausgeführt.
(Auf einem Rechner in dieser Demo-Umgebung noch nicht.)

Ich gehe aber dann davon aus, dass das Script auch das macht was es soll.

Vielen Dank noch mal ....
Bitte warten ..
Mitglied: colinardo
20.08.2014, aktualisiert um 13:06 Uhr
Ok, dann hatte ich da einen Gedankenfehler ...
sorry, nee mein Fehler, wurde gefunden und ist oben korrigiert

Grüße Uwe
Bitte warten ..
Neuester Wissensbeitrag
CPU, RAM, Mainboards

Angetestet: PC Engines APU 3a2 im Rack-Gehäuse

(1)

Erfahrungsbericht von ashnod zum Thema CPU, RAM, Mainboards ...

Ähnliche Inhalte
Windows Server
Active Directory Domäne und Druckserver (8)

Frage von haashaasp zum Thema Windows Server ...

Windows 8
gelöst Active Directory Default User.v2 Profile - Windows 8.1 Apps Error (4)

Frage von adm2015 zum Thema Windows 8 ...

Windows Server
gelöst Active Directory Domain Default User Profile (for Windows 8.1) (4)

Frage von adm2015 zum Thema Windows Server ...

Heiß diskutierte Inhalte
Switche und Hubs
Trunk für 2xCisco Switch. Wo liegt der Fehler? (13)

Frage von JayyyH zum Thema Switche und Hubs ...

DSL, VDSL
DSL-Signal bewerten (13)

Frage von SarekHL zum Thema DSL, VDSL ...

Backup
Clients als Server missbrauchen? (9)

Frage von 1410640014 zum Thema Backup ...

Windows Server
Mailserver auf Windows Server 2012 (9)

Frage von StefanT81 zum Thema Windows Server ...