none
Ausgabe von Abfrage als Prompt für Benutzer Auswahl RRS feed

  • Frage

  • Hallo zusammen, 

    ich bin neu, was Powershell angeht und stehe vor einem Problem, welches für mich nicht zu lösen ist.
    Recherchen im Internet haben mich nicht weiter gebracht :( 

    Ich hoffe ihr könnt mir helfen.

    Ich schreibe gerade ein Skript welches alle Benutzer (Lokal oder AD) an einem PC ausgibt. Diese Ausgabe soll als Prompt für den User erscheinen, dieser wählt aus den angezeigten Benutzern den gewünschten aus. Die Auswahl soll dann in eine Variable gespeichert werden. Das %USERPROFILE% des ausgewählten Benutzer wird kopiert und irgendwo (noch nicht weiter definiert) abgelegt.

    Mein bisheriger Status ist, ich bekomme die Ausgabe mittel diesem schnipsel:

    gwmi win32_userprofile | select localpath,@{LABEL=’user’;EXPRESSION={(gwmi win32_useraccount -filter “SID = '$($_.sid)'”).caption}} | ? user | Select User

    Die Ausgabe hat folgendes Format:

    user                  
    ----                  
    PC-TEST-01\Administrator
    ADTest\Administrator   
    ADTest\User1        
    ADTest\User2

    Der Benutzer soll aus den eine Auswahl bekommen in dem sich die User auflisten. Die User unterscheiden sich von PC zu PC deshalb kann ich keine festen User eintragen. Es soll dynamisch geschehen.

    Ich hoffe man kann hier durchblicken.

    Danke im Vorraus.


    Dienstag, 23. Mai 2017 09:23

Antworten

  • Hallo Edgar,

    ich hoffe das ich Dich richtig verstanden habe, ungefähr so sollte es funktionieren ;)

    #Forms importieren [void] [System.Reflection.Assembly]::LoadWithPartialName("System.Drawing") [void] [System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms") #GUI erstellen $Form = New-Object System.Windows.Forms.Form $Form.Size = New-Object System.Drawing.Size(300,300) #Auswahlliste erzeugen $list = New-Object System.Windows.Forms.ComboBox $list.Location = New-Object System.Drawing.Size(20,50) $list.Size = New-Object System.Drawing.Size(180,20) $list.DropDownHeight = 200 $Form.Controls.Add($list) #Button erzeugen $Button = New-Object System.Windows.Forms.Button $Button.Location = New-Object System.Drawing.Size(20,150) $Button.Size = New-Object System.Drawing.Size(110,80) $Button.Text = "Benutzer auswählen" $Button.Add_Click({copy-userprofile}) $Form.Controls.Add($Button) #Funktion zum Kopieren des Nutzerprofils function copy-userprofile {

    #ausgewählten User in Variable schreiben $user_chosen = $list.Text

    #nur zum Test: Variableninhalt in Textdatei ausgeben $user_chosen | Out-File -FilePath "user.txt" -Force #dein copy-job } #Benutzer auslesen $users = gwmi win32_userprofile | select localpath,@{LABEL=’user’;EXPRESSION={(gwmi win32_useraccount -filter “SID = '$($_.sid)'”).caption}} | ? user | Select User #ausgelesene Benutzer zur Auswahl hinzufügen foreach($user in $users) { $list.Items.Add($user.user) } #Form anzeigen [void] $Form.ShowDialog()



    Freundliche Grüße

    Sandro
    MCSA: Windows Server 2012
    Fachinformatiker Fachrichtung Systemintegration (IHK, 07/2013)


    Dienstag, 23. Mai 2017 10:42