Es ist ohne weiteres möglich sich seine PowerShell Environment seinen Wünschen nach anzupassen. Dies fängt bei den Farben der PowerShell Console and und geht über zu gewünschten Exit-Scripts, Logging-Functions oder einfach nur das standardmäßige reinladen von CMDLets, die man standardmäßig zum arbeiten brauch.
Mit dem folgenden Befehl öffnen wir die Datei in Notepad und können den Inhalt des Benutzer gespeicherten Profils editieren. Sollte es die Datei noch nicht geben, können wir diese einfach am Pfad per STRG+S erstellen.
1 | Notepad $Profile |
So kann bspw. mit Blick auf die Einbindung von weiteren Modulen und dem Ablegen der Credentials in einer verschlüsselten Datei das Exchange und das Active Directory Modul zum start einer Session automatisch eingeladen werden. Mit einem Switch und einer IF-Abfrage kann beim Start jeder PowerShell-Session bestimmt werden, ob diese geladen werden sollen.
Im folgenden ein kleines Code-Beispiel, was beim starten der PowerShell entsprechend nachfragt:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | # Write-Host "Sollen die CMDLets für Exchange 2016 und Active Directory geladen werden? (Y/N)" $Readhost = Read-Host Switch ($ReadHost){ Y {Write-host "Exchange 2019 und Active Directory CMDLets werden geladen …"; $LoadCMDLet=$true} N {Write-Host "CMDLets werden nicht geladen …"; $LoadCMDLet=$false} Default {Write-Host "CMDLets werden nicht geladen …"; $LoadCMDLet=$false} } if($LoadCMDLet){ $UserCredential = New-Object System.Management.Automation.PsCredential(("$env:USERNAME@$env:USERDNSDOMAIN"), (Get-Content C:\Users\timo\Documents\WindowsPowerShell\Encrypted_Credentials.txt | ConvertTo-SecureString)) $Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri http://FQDN/PowerShell -Authentication Kerberos -Credential $UserCredential Import-PSSession $Session -DisableNameChecking Import-Module ActiveDirectory } |