• 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
1

You also might be interested in

Einfaches Datenmapping mit Calculated Properties (PS)

Einfaches Datenmapping mit Calculated Properties (PS)

Apr 17, 2018

In der IT gibt es sehr oft den Fall, dass[...]

PowerShell 5.0

PowerShell 5.0 Write-Information und der neue Information Stream

Mrz 14, 2017

  Mit Windows 10 und Server 2016 kommt automatisch auch[...]

Tasks per PowerShell anlegen

Tasks per PowerShell anlegen

Aug 24, 2018

Die manuelle Anlage von vielen zeitgesteuerten Automatisierungsaufgaben in Windows wird[...]

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

Wer schreibt ?

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

Neueste Artikel

  • Passwortgenerierung nach Richtlinien-Änderung anpassen
  • Zeichenfolgen in Passwörtern vermeiden
  • 6 Lösungen, wenn Outlook Abwesenheitsnotiz vergessen
  • Azure AD Connect installieren
  • LastLogon vs. LastLogonTimestamp


FirstAttribute

AD Identity Management | Jobs

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 lokale Gruppen 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

  • Elysabeth Yven bei Outlook Suche verfeinern mit speziellen Suchkriterien
  • Outlook 2016 bei Outlook Suche verfeinern mit speziellen Suchkriterien
  • E-Mail-Adresse mit PowerShell prüfen - Active Directory FAQ bei Primäre E-Mail-Adresse ändern mit PowerShell
Login
Impressum
Datenschutzerklärung

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

Prev Next