Top-Themen

Aktuelle Themen (A bis Z)

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)?

Mitglied: IT-Wurzel

IT-Wurzel (Level 1) - Jetzt verbinden

20.08.2014, aktualisiert 13:39 Uhr, 881 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 ..
Ähnliche Inhalte
Windows Userverwaltung

Active directory attribute von ou übernehmen

gelöst Frage von pppp666Windows Userverwaltung1 Kommentar

Hi, Ich hab da mal ne frage zum Thema AD. Werden Attribute von ou's auf die zugeordneten user übertragen? ...

Windows Userverwaltung

Active Directory - OU Anordnung und Aufbau

Frage von neueradmuserWindows Userverwaltung9 Kommentare

Hallo, ich habe mal wieder einen Server vor mir wo alle User in der OU User sind, alle PC's ...

Windows Server

Active Directory Domäne und Druckserver

Frage von haashaaspWindows Server8 Kommentare

Hallo! Bin Anfänger also bitte nicht verwundern Habe einen Windows Server 2008, einen Client-PC und eine Domäne. Erstens: Möchte ...

Linux Netzwerk

Linux als Active Directory Domäne

gelöst Frage von 134408Linux Netzwerk7 Kommentare

Hallo, wir würden zu experimentellen Zwecken gerne in unserem Testlabor ein Linux als Active Directory Domäne einrichten. Routing, DHCP, ...

Neue Wissensbeiträge
Sicherheit

MikroTik-Router patchen, Schwachstelle wird ausgenutzt

Information von kgborn vor 19 StundenSicherheit

Am 23. April 2018 wurde von Mikrotik ein Security Advisory herausgegeben, welches auf eine Schwachstelle im RouterOS hinwies. Mikrotik ...

Windows 10

Microcode-Updates KB4090007, KB4091663, KB4091664, KB4091666 für Windows 10

Information von kgborn vor 1 TagWindows 101 Kommentar

Kurze Information für Administratoren von Windows 10-Systemen, die mit neueren Intel CPUs laufen. Microsoft hat zum 23. April 2018 ...

iOS
Updates für Iphone und Co
Information von sabines vor 1 TagiOS

Gestern abend ist iOS 11.3.1 erschienen, ein kleineres Update, dass einige Lücken schließt und "Lahmlegen" nach einem Display Tausch ...

Windows 7

Windows 7 - Server 2008 R2: Exploit für Total Meltdown verfügbar

Information von kgborn vor 2 TagenWindows 7

Kleine Information für Administratoren, die für die Updates von Windows 7 SP1 und Windows Server 2008 R2 SP1 verantwortlich ...

Heiß diskutierte Inhalte
Batch & Shell
Powershell: Im AD nach Rechnern mit bestimmten IP-Adressen suchen
gelöst Frage von Raven42Batch & Shell36 Kommentare

Hallo zusammen, ich suche nach einer Möglichkeit nach Computern im AD zu suchen , deren IP-Adresse mit 10.11.12. beginnt. ...

C und C++
Frage1 C Programmierung-Makefile Frage2 PHP-Programmierung HTTP-Fehler 404
Frage von KatalinaC und C++34 Kommentare

Hallo, ich habe 2 Fragen, die nichts miteinander zu tun haben aber mit denen ich mich gerade beschäftige: 1. ...

Windows Server
Alten DC entfernen
Frage von smartinoWindows Server24 Kommentare

Hallo zusammen, ich habe hier eine Umgebung übernommen und erstmal einen DCDIAG gemacht. Dabei fällt auf, daß eine ganze ...

Ausbildung
Wie gelingt ein guter Einstieg in die FiSi-Ausbildung? (Umschulung)
Frage von SiAnKoAusbildung22 Kommentare

Schönen guten Tag, ich bin SiAnKo und habe seit dem 1.04.2018 eine Umschulung als FiSi angefangen. Ich möchte natürlich ...