• Active Directory
    • AD Consulting
    • AD Design
      • Domain Name festlegen
      • Domain Struktur einrichten
      • Forest Struktur definieren
    • AD Management
    • AD Automation
      • Dynamic Access Control (DAC)
    • AD Federation Services
      • ADFS Betrieb
      • ADFS und Office365
      • ADFS und Cisco Unified Communications Manager
      • SAML und ADFS 2.0
  • Azure / M365
    • Azure AD
    • Microsoft 365 (O365)
  • Migration
    • Active Directory Migration
    • Exchange Migration
    • File Server Migration
    • Lotus Notes Migration
    • Novell Migration
  • Wissen
    • Alle Beiträge
    • Administration
    • PowerShell
    • Migration
    • Exchange
    • Tools
  • Kontakt
    • Wir über uns
    • Kontakt
  • EN
info@firstattribute.com
by FirstAttribute
Active Directory FAQActive Directory FAQ
  • Active Directory
    • AD Consulting
    • AD Design
      • Domain Name festlegen
      • Domain Struktur einrichten
      • Forest Struktur definieren
    • AD Management
    • AD Automation
      • Dynamic Access Control (DAC)
    • AD Federation Services
      • ADFS Betrieb
      • ADFS und Office365
      • ADFS und Cisco Unified Communications Manager
      • SAML und ADFS 2.0
  • Azure / M365
    • Azure AD
    • Microsoft 365 (O365)
  • Migration
    • Active Directory Migration
    • Exchange Migration
    • File Server Migration
    • Lotus Notes Migration
    • Novell Migration
  • Wissen
    • Alle Beiträge
    • Administration
    • PowerShell
    • Migration
    • Exchange
    • Tools
  • Kontakt
    • Wir über uns
    • Kontakt
  • EN

Interaktive PowerShell Skripte

Jul 1, 2019 (Letztes Update) | Posted by Roy Milde Administration, PowerShell |

 

Interaktive PowerShell Skripte

Sie können wiederkehrende Aufgaben mit interaktiven PowerShell-Skripten automatisieren.

Eine Einführung in die Abfrage von Eingabewerten mit Interaktive PowerShell.

Inhaltsverzeichnis

  • 1 Nutzen für die Automatisierung
  • 2 Einfache Abfragen durch interaktive PowerShell Skripte
    • 2.1 Einfache Abfrage von Werten mit Read-Host
    • 2.2 Nutzerbestätigungen mit –Confirm
    • 2.3 PromptForChoice – den Anwender wählen lassen
  • 3 Mehrere Werte gleichzeitig abfragen mit Prompt
  • 4 PowerShell mit einer Anwenderfreundlichen Oberfläche

Nutzen für die Automatisierung

PowerShell Skripte sind ein beliebtes Mittel um wiederkehrende Aufgaben im Windows-Umfeld zu automatisieren:
Der Anwender startet ein Skript, das Skript arbeitet eine Aufgabe ab, fertig!

  • Was aber, wenn das Skript auf Entscheidungen und Angaben von Anwendern angewiesen ist?
  • Welche Ordner sollen gesichert werden?
  • Wie heißt der neue anzulegende Mitarbeiter?

Hierfür bietet PowerShell einige sehr mächtige Möglichkeiten mit dem Anwender zu interagieren. Diese werden im Folgenden beschrieben.

Einfache Abfragen durch interaktive PowerShell Skripte

Im ersten Teil sollen einfache Nutzereingaben per PowerShell abgefragt werden.
Dies bedeutet, dass der Skript nach der Eingabe einer abgefragten Information fortgesetzt wird.

Um mehrere Informationen abzufragen, bevor der Skript weiterläuft, lesen Sie bitte hier weiter.
 

Einfache Abfrage von Werten mit Read-Host

Die einfachste Abfrage von Nutzereingaben bietet das Cmdlet Read-Host.

1
$name = Read-Host 'What is your name?'

Und so sieht die Ausgabe aus:

Powershell Read Host

Der Anwender wird nach einer Eingabe gefragt und erst nachdem er einen (beliebigen) Text eingegeben hat, wird die Skriptausführung fortgesetzt. Der eingegebene String-Wert wird im Beispiel in der Variable name gespeichert. Read-Host führt dabei keine Validierung der Eingabe durch. D.h. Read-Host akzeptiert auch eine leere / keine Eingabe (der Anwender gibt nur Enter ein) oder vom Skript nicht zu verarbeitende Werte (z.B. das Skript erwartet eine Zahl, der Anwender gibt jedoch einen Buchstaben ein). Daher empfiehlt es sich, den erhaltenen Wert vor der weiteren Abarbeitung zu prüfen.

Read-Host bietet darüber hinaus die Möglichkeit der sicheren Abfrage.

1
$password = Read-Host 'What is your password?' -AsSecureString

Hier die Ausgabe:

Powershell Read Host 2

Die Ausgabe zeigt dem Anwender statt der eingegebenen Buchstaben nur Sternchen (*) an. Diese Art der Eingabe bietet sich für Passwörter oder andere sicherheitskritischen Eingaben an. Read-Host gibt in diesem Fall den übermittelten Wert in einem besonders gesicherten SecureString zurück.

Nutzerbestätigungen mit –Confirm

Alle Cmdlets welche auf die eine oder andere Art das System beeinflussen bieten die Möglichkeit, den Nutzer nach einer Bestätigung der durchzuführenden Aktion zu fragen. Hierfür gibt es den Parameter –Confirm.

1
Remove-Item empty.txt -Confirm:$Y

Dies sieht folgendermaßen aus:

Powershell Confirm Parameter

Dem Nutzer wird je nach Cmdlet eine Reihe von Wahlmöglichkeiten gegeben. Im Beispiel ist eine Vorauswahl angegeben, welche standartmäßig ausgewählt wird, wenn der Nutzer die Eingabe mit Enter beendet. In diesem Fall „Y“ für Yes (Ja). Je nach getroffener Wahl führt das Cmdlet die Aktion durch oder bricht die Aktion ab.

PromptForChoice – den Anwender wählen lassen

Diese Art von Wahlmöglichkeit, welche –Confirm anbietet, ist nicht nur auf einfache Sicherheitsabfragen beschränkt. Die Abfragen lassen sich leicht mit PromptForChoice umsetzen und anpassen.

1
2
3
4
5
6
$title = "Add employee?"
$message = "You want to add a new employee to your organisation?"
$yes = New-Object System.Management.Automation.Host.ChoiceDescription "&Yes", "Yes"
$no = New-Object System.Management.Automation.Host.ChoiceDescription "&No", "No"
$options = [System.Management.Automation.Host.ChoiceDescription[]]($yes, $no)
$choice=$host.ui.PromptForChoice($title, $message, $options, 1)

So sieht die Ausgabe aus:

Powershell PromptforChoice

Der Nutzer hat hier die Möglichkeit aus einer der Wahlmöglichkeiten zu wählen. Gibt er nichts an, so wird die Vorauswahl übernommen. PromptForChoice gibt in jedem Fall die Feldposition (int) der ChoiceDescription zurück (Index beginnt mit 0) welche vom Anwender ausgewählt wurde. Das Beispiel nutzt 2 Wahlmöglichkeiten, es gibt jedoch keine Beschränkung der Anzahl.

Alternativ gibt es die Möglichkeit den Anwender mehrere Werte gleichzeitig auswählen zu lassen.

1
2
3
4
5
6
7
8
$title = "Backup"
$message = "Please select resources for backup!"
$option1 = New-Object System.Management.Automation.Host.ChoiceDescription "Personal &Account", "Account"
$option2 = New-Object System.Management.Automation.Host.ChoiceDescription "Personal &Folder", "Folder"
$option3 = New-Object System.Management.Automation.Host.ChoiceDescription "Personal &Database", "Database"
$option4 = New-Object System.Management.Automation.Host.ChoiceDescription "&Public Folder", "Public"
$options = [System.Management.Automation.Host.ChoiceDescription[]]($option1, $option2, $option3, $option4)
$backup=$host.ui.PromptForChoice($title, $message, $options, [int[]](1))

Hier die passende Ausgabe:

Powershell PromptforChoice2

In diesem Fall gibt PromtForChoice ein Feld mit den Positionen der vom Anwender ausgewählten Optionen zurück. Äquivalent können beim Aufruf mehrere Optionen angegeben werden, welche dann vorausgewählt werden. Hierzu wird ein Feld mit den Positionen der vorausgewählten Optionen angegeben (im Beispiel wird nur die zweite Option vorausgewählt).

Active-Directory-Delegation-Powershell

Mehrere Werte gleichzeitig abfragen mit Prompt

Eine eher selten genutzte Möglichkeit für interaktive PowerShell Skripte ist die Abfrage mehrerer freier Eingabewerte auf einmal.

Ein Beispiel wäre die Logineingabe vom Anfang des Artikels.
Da Nutzername und Passwort zusammen gehören, können sie auch gleichzeitig abgefragt werden.
Dazu dient Prompt.

1
2
3
4
5
6
7
8
9
10
11
$title = "Login"
$message = "Please enter your information to login!"
$name = New-Object System.Management.Automation.Host.FieldDescription "Name"
$name.Label = "&Login Name"
$name.DefaultValue = "Guest"
$pwd = New-Object System.Management.Automation.Host.FieldDescription "Password"
$pwd.Label = "&Password"
$pwd.SetparameterType( [System.Security.SecureString] )
$pwd.HelpMessage = "Please type your Password."
$fields = [System.Management.Automation.Host.FieldDescription[]]($name, $pwd)
$login=$Host.UI.Prompt($title, $message, $fields)

Hier die entsprechende Ausgabe:

PowerShell Mehrere Werte abfragen

Der Anwender wird nacheinander nach den benötigten Werten gefragt und die Skriptausführung erst fortgesetzt, wenn alle Angaben vorliegen. Prompt gibt die erhaltenen Werte als Dictionary bzw. Hash-Tabelle zurück. Für jede abgefragte Eingabe gibt es einen Tabelleneintrag. Der Schlüssel ist dabei die Bezeichnung der FieldDescription (im Beispiel „Name“ und „Password“) und der Wert der vom Anwender eingegebene Wert.

PowerShell Skripten fehlen anwenderfreundliche Oberflächen. Mit dem IDM-Portal werden PS-Skripte zur Automatisierung in absolut anwenderfreundliche Weboberflächen eingebunden.

So wird die AD Datenpflege leicht, automatisiert und für alle zugänglich. 
Mit der Delegation ist es möglich, bestimmte Aufgaben zu delegieren. Die Personalabteilung kann so z.B. einen neuen Benutzer anlegen.

Die letzte Version von PowerShell kann mit dem Windows Management Framework heruntegladen werden.

PowerShell mit einer Anwenderfreundlichen Oberfläche

PowerShell Skripten fehlen anwenderfreundliche Oberflächen. Mit dem IDM-Portal werden PS-Skripte zur Automatisierung in absolut anwenderfreundliche Weboberflächen eingebunden.

So wird die AD Datenpflege leicht, automatisiert und für alle zugänglich. 

Screenshot-Attribut-IDM-Portal

Mit der Delegation ist es möglich, bestimmte Aufgaben zu delegieren. Die Personalabteilung kann so z.B. einen neuen Benutzer anlegen.


Wenn Sie Spezialisten für Betrieb, Optimierung oder Migration Ihres Active Directorys, unterstützen wir Sie gerne.

 Kontaktieren Sie uns gern für ein unverbindliches Gespräch.


Artikel weiterempfehlen:
  • teilen
  • tweeten
  • sharen
  • xingen
  • mailen
Artikel erstellt am: 06.05.2014
Tags: AbfrageinteraktivPowerShell
3

You also might be interested in

PowerShell-Gruppen-Manager

PowerShell – Gruppen-Manager Berechtigung setzen

Jan 31, 2018

Die Verwaltung von AD-Gruppen muss nicht in IT-Händen liegen. Die Funktion ‚Gruppen-Manager‘[...]

PowerShell group policy cmdlets

Windows Powershell: Group Policy Cmdlets

Mrz 19, 2012

Der Windows Server 2008 R2, bzw. die Windows 7 Remote[...]

Rekursives Auslesen mit PowerShell

Rekursives Auslesen von Gruppenmitgliedern im AD

Aug 16, 2017

Bei jedem Projekt gibt es irgendwann einmal den Fall, dass[...]

Leave a Reply

<p>Danke für Ihre Anregungen, Fragen und Hinweise.<br/>Infos zum <a href="https://www.active-directory-faq.dekontakt/">Datenschutz</a></p>
Cancel Reply

FirstWare IDM-Portal im Test: IT-Administrator 08-2022

 

ADFAQ-FirstAttribute

Wer schreibt ?

Team der FirstAttribute AG

Consultants und Entwickler der FirstAttribute arbeiten seit mehr als 20 Jahren in IAM- und Cloud-Transition-Projekten.
Zusammen verfügen Sie über einen wertvollen Erfahrungsschatz im Bereich Active Directory und Azure AD und teilen diesen auf Active Directory FAQ.

Neueste Artikel

  • 8 Tipps für mehr Sicherheit in Active Directory und Backups von AD
  • Azure AD Custom Security Attributes ermöglichen flexible Berechtigungsstrukturen
  • Dateiberechtigungen in MS Teams und SharePoint Online verwalten – So funktioniert es
  • AD-Gruppen in Microsoft Teams verwenden – Dynamische Gruppen in der Praxis
  • Verbindung zwischen Microsoft 365 und SharePoint Online zu Azure AD

Unsere IAM-Lösungen

Ihre IAM-Lösung: FirstWare IDM-Portal

 

my-IAM für Cloud Identity Management in Microsoft Teams

Kontakt aufnehmen

Sie haben eine Frage oder Anmerkung? Schicken Sie uns schnell eine Nachricht.

Nachricht senden
Jetzt AD Tasks vereinfachen und delegieren: FirstWare IDM-Portal

Folgen Sie uns

Kontakt

  • FirstAttribute AG
  • Am Büchele 18, 86928 Hofstetten, Germany
  • +49 89 215 442 400
  • https://www.firstattribute.com

Schlagwörter

.Net ACL Active Directory AD LDS AD Objekt Azure AD Berechtigung Cloud cmdlets Delegation Domain Controller dynamicgroup dynamische Gruppen Exchange Exchange-Ordner Exchange-Postfach Exchange Migration Federation FirstWare Get-Mailbox Global Catalog Group Policy Gruppen Gruppenmitgliedschaft IDM-Portal LDAP m365 Microsoft Azure Migration New-ADUser Novell NTFS Office 365 PowerShell QMM QMM AD QMM Exchange Quest Migration Manager Schema Set-ADUser SID SID History Update Windows 10 Windows Server 2012 R2

Neueste Kommentare

  • activedirectoryfaq.com sharepoint login - infoslist bei Windows 365 und Azure AD verstehen in Theorie und Praxis
  • Domäne Letzte Anmeldung - ObenGesichert.com bei LastLogon vs. LastLogonTimestamp
  • Teams Code Zur Anmeldung - ObenGesichert.com bei Authentifizierung für MS Teams in hybriden Netzwerken
Login
Impressum
Datenschutzerklärung

© 2023 · Active-Directory-FAQ by firstattribute.com

Prev Next