Anmeldedaten hinterlegen:
$UserCredential = Get-Credential
Verbindung aufbauen:
$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri http://server.domain.net/PowerShell/ -Authentication Kerberos -Credential $UserCredential
Session starten:
Import-PSSession $Session
- Details
- Kategorie: Powershell
Unter Powershell und und für jede andere Scriptsprache gibt es die sogenannten Vergleichsoperatoren, welche in Prinzip nur dafür eingesetzt werden um Werte zu Filtern.
Dabei kann man unterscheiden, ob diese Vergleichsoperationen für Zahlen oder für Namen eingesetzt werden können.
Zahlen-Werte
Kürzel | Englisch | Deutsch | Funktion | Mathematisch |
---|---|---|---|---|
-eq | equal | gleich | vergleicht zwei Werte auf Gleichheit | = |
-ne | not equal | nicht gleich / ungleich | vergleicht zwei Werte auf Ungleichheit | ≠ |
-lt | less than | weniger als | prüft ob der Wert weniger als das Kriterium ist | < |
-le | less equal | weniger gleich | prüft ob der Wert weniger oder gleich dem Kriterium ist | ≤ |
-gt | greater than | größer als | prüft ob der Wert größer als das Kriterium ist | > |
-ge | greater equal | größer gleich | prüft ob der Wert größer oder gleich dem Kriterium ist | ≥ |
Das Ergebnis der Prüfung ist entweder TRUE oder FALSE.
Namen (String)
Kürzel | Deutsch | Funktion |
---|---|---|
-like | wie | vergleicht zwei Strings auf Gleichheit, Wildcards möglich |
-notlike | nicht wie | vergleicht zwei Strings auf Ungleichheit, Wildcards möglich |
-contains | enthält | sucht in Collections / Arrays nach dem Kriterium |
-notcontains | enthält nicht | sucht in Collections / Arrays nach dem Kriterium, in diesem Fall ob etwas nicht vorhanden ist |
-match | (in diesem Fall) enthält | sucht innerhalb eines Strings nach Übereinstimmungen, selbe Funktion wie -like mit Wildcards |
-notmatch | (in diesem Fall) enthält nicht | prüft ob String etwas nicht enthält, selbe Funktion wie -notlike mit Wildcards |
Das Ergebnis der Prüfung ist entweder TRUE oder FALSE.
- Details
- Kategorie: Powershell
Unter Umständen ist es erforderlich, dass die Powershell Scripte automatisch zbsp. über die Auftragsplanung ausgeführt werden müssen.
Dies ist eigentlich recht einfach, jedoch gibt es einige Dinge zu beachten:
- Execution Policy
- erhöhte Rechte
- UAC
Um diese Hürden zu umgehen, sind einige zusätzliche Angaben erforderlich. Aber fangen wir mal klein an. Im Normalfall wird ein Powershell Script recht einfach aufgerufen:
PowerShell.exe -Command "& 'C:Scripte\ich_bin ein_script.ps1'"
Wichtig ist hier das kaufmännische Und (&-Zeichen), da die PowerShell den Pfad in den Anführungszeichen ansonsten als String interpretiert. Anstelle des &-Zeichens kann
man auch einen Punkt (.) nehmen:
PowerShell.exe -Command ". 'C:Scripte\ich_bin ein_script.ps1'"
Standardmäßig lassen sich PowerShell Skripte nicht ausführen, da dies von der Execution Policy verhindert wird. Um dies gleich beim Aufruf zu berücksichtigen, lässt sich
die Execution Policy im Batch entsprechend setzen mit -ExecutionPolicy Bypass:
PowerShell.exe -ExecutionPolicy Bypass -Command "& 'C:Scripte\ich_bin ein_script.ps1'"
Um die UAC zu umgehen oder dies mit erhöhten Rechten bzw. unter einem anderen benutzer zu starten, gibt es die Möglichkeit das Script mit -verb runas auszuführen.
PowerShell.exe -ExecutionPolicy Bypass -verb runas -Command "& 'C:Scripte\ich_bin ein_script.ps1'"
Zusätzlich gibt es noch viele andere Möglichkeiten, diese Powershell Script mit den verschiedensten Parameter zu starten, zbsp mit -noprofile, wobei dadurch das Powersshell
Profil nicht geladen wird oder -NoLogo, dabei werden die Copyrightinformationen ausgeblendet.
PowerShell.exe -ExecutionPolicy Bypass -noprofile -nologo -verb runas -Command "& 'C:Scripte\ich_bin ein_script.ps1'"
Eine Übersicht ist bei Microsoft zu finden unter:
- Details
- Kategorie: Powershell
Ab und an kann es durchaus mal vorkommen, dass eine etwas größere Anzahl von Dateien umbenannt werden muss. Dies geht relativ einfach mit Powershell.
Bei diesem einfachen Beispiel wird zbsp. die Endungen sämtlicher PDF-Dateien umbenannt mit der Endung "tmp", wobei der Name der Datei beibehalten wird.
Get-Childitem *.pdf | ren -NewName {$_.BaseName + ".tmp"}
Etwas komlizierter werden bei diesem Beispiel mit RegEx zbsp. Bilder umbenannt, welche in den Format "Urlaub_27032017_143245.png" vorliegen in ein lesbares Format umgewandelt: Urlaub_2017-03-27_14-32-45.png
Get-Childitem *.png | Rename-Item -NewName {$_.Name -replace "Urlaub_(\d{2})(\d{2})(\d{4})_(\d{2})(\d{2})(\d{2})",'ffxvi_$3-$2-$1_$4-$5-$6'}
- Details
- Kategorie: Powershell