Powershell Custom Commands Respektiv Shortcuts
Hallo Leute
Ich habe vor nun Powershell häufiger einzusetzen und daher möchte ich mir zu den Befehlen die ich häufig benütze Shortcuts erstellen. Wie kann ich das am Besten machen und wo geht ihr mit euren eigenen Scripts hin, damit ich sie von überall aus starten kann? Gibt es da eine Best Practice?
Beispiel:
connectDC -> Enter-PSSession -ComputerName DC1 -Credential Administrator@mydomain.com
Mit Set-Alias hat es auf jeden Fall nicht wie gewünscht funktioniert und ich habe auch versucht die Environmental Path Variable zu editieren, aber das ruft mir standardmässig nicht die PS1 befehle aus.
Vielen Dank
Ich habe vor nun Powershell häufiger einzusetzen und daher möchte ich mir zu den Befehlen die ich häufig benütze Shortcuts erstellen. Wie kann ich das am Besten machen und wo geht ihr mit euren eigenen Scripts hin, damit ich sie von überall aus starten kann? Gibt es da eine Best Practice?
Beispiel:
connectDC -> Enter-PSSession -ComputerName DC1 -Credential Administrator@mydomain.com
Mit Set-Alias hat es auf jeden Fall nicht wie gewünscht funktioniert und ich habe auch versucht die Environmental Path Variable zu editieren, aber das ruft mir standardmässig nicht die PS1 befehle aus.
Vielen Dank
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 263045
Url: https://administrator.de/contentid/263045
Ausgedruckt am: 22.11.2024 um 01:11 Uhr
3 Kommentare
Neuester Kommentar
Hallo Mineralwasser,
für sowas gibt es das Powershell-Profil. Den Pfad zu dieser PS1 Datei kannst du dir mit
in einer Konsole ausgeben lassen. Wenn die Datei noch nicht existiert legst du sie einfach an. Die Profil-Datei ist ein ganz normales Script in das du deine Befehle, Funktionen etc. hinterlegen kannst. Das Profil-Script wird bei jedem erstellen einer Powershell-Session geladen, und ist dann in deiner Powershell-Session verfügbar.
Ich persönlich mache das mit PhraseExpress um meine Scripte etc. überall einfügen zu können. Aber das ist Geschmackssache und das kann jeder selber entscheiden.
Zusätzlich könnte man häufig benötigte Funktionen in Powershell-Module auslagern, genauso wie du z.B. mit
Grüße Uwe
für sowas gibt es das Powershell-Profil. Den Pfad zu dieser PS1 Datei kannst du dir mit
$profile
in einer Konsole ausgeben lassen. Wenn die Datei noch nicht existiert legst du sie einfach an. Die Profil-Datei ist ein ganz normales Script in das du deine Befehle, Funktionen etc. hinterlegen kannst. Das Profil-Script wird bei jedem erstellen einer Powershell-Session geladen, und ist dann in deiner Powershell-Session verfügbar.
Ich persönlich mache das mit PhraseExpress um meine Scripte etc. überall einfügen zu können. Aber das ist Geschmackssache und das kann jeder selber entscheiden.
Zusätzlich könnte man häufig benötigte Funktionen in Powershell-Module auslagern, genauso wie du z.B. mit
Import-Module ActiveDirectory
die CMDLets des AD lädst.Grüße Uwe
Was letztlich dazu führen kann, dass ein Profil so aussieht (oder eben anders):
$env:ScriptPath = '\\Server\Verzeichnis\WindowsPowershell\Scripts'
$Profile = '\\Server\Verzeichnis\WindowsPowershell\Profile.ps1'
Import-Module PSUserTools
Function tcm ([String]$volume="d:\data.tc",[String]$letter="x:")
{
$MountError = 0
If (Test-Path $letter)
{
"Drive $letter is already mounted."
$MountError = 1
} #EndIf
If (!(Test-Path $volume))
{
"File $volume not found."
$mountError = 1
} #EndIf
If ($MountError -eq 0)
{
C:\"Program Files"\TrueCrypt\TrueCrypt.exe /volume $volume /letter $letter
} #EndIf
} #EndFunction
Function tcdm ([String]$letter="x:")
{
If (Test-Path $letter)
{
C:\"Program Files"\TrueCrypt\TrueCrypt.exe /volume /dismount /letter $letter
} #EndIf
Else
{
"Drive is not mounted."
Test-path $letter
} #EndElse
} #EndFunction
Function GoHome ([String]$HomeDir="\\Server\Verzeichnis") {Set-Location $HomeDir}
Function GoScripts ([String]$Path=$env:ScriptPath) {Set-Location $Path}
Function INC {Param([int32]$a=0,[int32]$b=0);$a+=$b;$a}
Function DEC {Param([int32]$a=0,[int32]$b=0);$a-=$b;$a}
$Konsole=(Get-Host).UI.RawUI
$Konsole.ForegroundColor="Green"
$Konsole.BackGroundColor="DarkBlue"
$Konsole.WindowTitle=" Wbemtest.exe, Functions: Sudo / GoHome / GoScripts / TCm / TCdm / INC / DEC"
#$host.ui.rawui.ForegroundColor = "Green"
Set-Alias sudo Start-ProcessAsAdministrator
if(test-path $env:ScriptPath) {GoScripts} else {"Script path ($env:ScriptPath) not found ... gone home.";GoHome}