Powershell: Erstellen Sie pwsh als kürzeren Namen für den Aufruf von Powershell.exe

Erstellt am 11. Juli 2017  ·  127Kommentare  ·  Quelle: PowerShell/PowerShell

Das Muskelgedächtnis vom Umschalten von cmd auf Powershell ist ein Schmerz. Es wird durch die Tatsache verschlimmert, dass es viel länger ist als das Eingeben von cmd oder bash. Selbst wenn die Windows-Suche in Start ausgeführt wird, wird die ISE häufig abgerufen, wenn Sie sie bereits eine Weile verwendet haben. Daher ist häufig die Eingabe des vollständigen Namens erforderlich.

Ein besserer Name wäre posh.exe oder eine andere gültige Erweiterung. Es ist so lang wie Bash und nur ein Zeichen länger als cmd. Posh war die in der Community akzeptierte Abkürzung für alles, was mit PowerShell zu tun hat, daher gibt es dort eine gewisse Vertrautheit. Ich glaube nicht, dass es Konflikte mit anderen Apps gibt, die dies verursachen würde, aber das würde etwas Graben erfordern.

Dies könnte auf zwei Arten erreicht werden.

  1. Erstellen Sie eine offizielle Verknüpfung oder einen symbolischen Link mit dem Namen posh, der auf Powershell.exe verweist
  2. Benennen Sie Powershell.exe in posh.exe um.

Ersteres behält die Abwärtskompatibilität bei und ermöglicht dem Benutzer die Wahl zwischen posh oder Powershell.exe. Bestehende Skripte sind nicht betroffen.

Letzteres könnte dazu beitragen, Themen wie # 4199 und anderen POSIX-Vorschlägen für den Start der Shell mehr Freiheit zu geben. Es handelt sich jedoch um eine bahnbrechende Änderung, die auf die Auswirkungen und die Auswirkungen auf das Branding überprüft werden müsste.

Ich denke, eine offizielle, elegante Verknüpfung ist die beste Option mit minimaler Auswirkung. In einer neuen Dokumentation wird vorzugsweise die Verwendung von PowerShell bevorzugt.

Area-SideBySide Committee-Reviewed Issue-Discussion Resolution-Fixed

Hilfreichster Kommentar

Ich würde Abstimmung für psh - das Projekt , das Sie als Kollision zitieren hat noch keine gesehene Veröffentlichung in 10 Jahren, und war nie in jedem Fall in Paket repos.

Alle 127 Kommentare

Ich hätte auch gerne einen kurzen Alias, aber aus diesem Grund haben wir uns beim ersten Ausgehen nicht für posh (wir haben ausführlich darüber gesprochen). Scheint auch immer noch ein aktuelles Paket zu sein.

Offen für andere Vorschläge, aber die meisten offensichtlichen wurden angenommen. Nach dem einzigen Wget / Curl-Alias ​​möchte ich wirklich vermeiden, mit anderen Paketen da draußen zusammenzustoßen, auch wenn sie weniger häufig sind.

Ich bin nicht zu verrückt nach dieser ganzen Idee, aber wie wäre es mit pwsh ?

Ich war noch nie scharf auf Posh als Verkürzung von Powershell. pwsh scheint besser zu sein, aber eine schnelle Suche im Internet wirft einige mögliche Probleme auf. wenn wir das machen wollen, würde ich so kurz wie möglich vorschlagen, also was ist mit nur ps?

OK - vergiss das - ich habe gerade festgestellt, dass ps ein Alias ​​für get-process ist. das wäre zu verwirrend

Ich werde gerade stark deja vu. 😉

Ich schätze die Lesbarkeit von PowerShell (wenn keine Aliase verwendet werden), sodass das Ausführen von powershell für mich gut funktioniert.

ps ist auch unter Linux ein vorhandener Befehl.

Einige andere Ideen sind: pscmd , psc , monad , psh , pshell

Es gibt definitiv abnehmende Renditen bei diesen Namen, ob sie wirklich etwas sparen oder nur unnötige Verwirrung stiften, wenn sie überhaupt verfügbar sind.

CoreSh , pcs , psc

Schade, dass Mosh genommen wird. psh wird genommen. [pshell] gibt viele Treffer zurück. Interessanterweise bringt eine Suche nach msh sowohl bei Bing als auch bei Google viele Treffer für PowerShell (Microsoft Shell genannt), obwohl es unter Unix ein msh (möglicherweise nicht viel verwendet).

😄 S #, P #

@ PowerShell / Powershell-Komitee hat dies besprochen und ist offen für einen kürzeren Symlink-Namen, aber wir können nicht auf jemanden hocken, der bereits existiert. prsh scheint in Ordnung zu sein.

Warte warte! Ich habe es verstanden: ^sh - oder war das **sh ? (jk).

prsh scheint vernünftig zu sein - einfacher zu tippen als pwsh , obwohl pwrsh - obwohl es 1 Zeichen ist. länger - ist auch eine Überlegung wert, da "pwr" eine bekannte Abkürzung für "power" ist.

Eine andere, möglicherweise ergänzende Option: Geben Sie eine automatische Variable an, deren Wert unveränderlich den gleichen Pfad der Binärdatei widerspiegelt, mit der die aktuelle Sitzung gestartet wurde.

bash hat $BASH dafür.

Der Vorteil dieses Ansatzes besteht darin, dass er unempfindlich gegenüber Variationen / Manipulationen von $env:PATH .

Wir haben bereits $PSHOME - wohl ist so etwas wie $PS keine allzu große Strecke.

Dies bezieht sich jedoch auf die Diskussion, den globalen Namespace nicht mit automatischen Variablen zu verschmutzen - siehe # 4216.

.Net Core, CoreFX, CoreCLR, PowerShell Core - wir könnten "Core" als Basis betrachten.

pscore scheint mir in Ordnung zu sein, auch wenn es nicht mit sh endet, obwohl andere Ausschussmitglieder ein Veto eingelegt haben

pscore oder coreps - LGTM.

Wir können uns an monad und msh (oben erwähnt) erinnern.

Ich mag pwrsh am besten bisher. pscore ist auch nicht schlecht, obwohl es bei 6 Zeichen etwas länger wird. Vier oder weniger Zeichen sind wahrscheinlich ideal, aber ich könnte mit den 5 Zeichen leben, die für pwrsh erforderlich sind.

Mein Anliegen bei der Aufnahme des Wortes "Kern" ist, dass es keine nützlichen Informationen auf Unix-Plattformen enthält, von denen es keine andere Edition gibt, von der es unterschieden werden muss.

@rkeithhill wie wäre es mit pscx , ha! PowerShell Core-Erfahrung. Das ließ mich jedoch an eine andere PowerShell Core Shell denken, pscsh .

Ich bin selbst auf einige der gleichen Namen gerissen. Ich mag die Lesbarkeit von pwrsh und pscore aber ich stimme zu, dass 5 Zeichen das Limit sind. 5 Zeichen decken das erste Wort power und darüber hinaus können Sie auch das ganze Wort eingeben. monad ist ein großartiges Osterei und lesbar, aber verwirrend für diejenigen, die den Hintergrund von PowerShell nicht kennen. Die 4 Zeichen prsh funktionieren auch gut.

Es wäre gut, eine endgültige Liste der Namen zu erstellen, die verwendet werden können, und eine offizielle Umfrage durchzuführen, wie es das Edge-Team getan hat. Wenn es bevorstehende PS-Community- oder offizielle Veranstaltungen gibt, können Links zur Umfrage ausgegeben werden, um ein größeres Publikum zu erreichen.

@ dragonwolf83 :

pscsh liegt gefährlich nahe an csh - eine Assoziation, die wir vermeiden sollten.

Auch hier sehe ich keinen Vorteil darin, das Wort "Kern" aufzunehmen, insbesondere wenn die Möglichkeit besteht, dass die Ausgaben eines Tages vereinheitlicht werden (und auf Windows scheinen die Leute ein gutes Jahrzehnt lang ohne einen kurzen Namen für Windows PowerShell bequem gelebt zu haben). .

Vereinbarte Dunkelheit von monad .

Meine persönliche Stimme ist für pwsh , prsh oder pwrsh .

PS: Für den Fall, dass _Windows PowerShell_ auch einen kurzen Namen benötigt, könnte das einfache Präfixieren von w die Lösung sein, obwohl unter meinen Favoriten, die wirklich nur (vernünftigerweise) als wprsh von der Tastatur rollen, also in In dem Kurznamenszenario mit zwei Ausgaben stimme ich für das Paar prsh / wprsh .

Mein Anliegen bei der Aufnahme des Wortes "Kern" ist, dass es keine nützlichen Informationen auf Unix-Plattformen enthält, von denen es keine andere Edition gibt, von der es unterschieden werden muss.

:-) Sollen wir .Net Core umbenennen?

@iSazonov : Sollten wir Windows PowerShell in "Windows PowerShell .NET Framework [FullCLR]" umbenennen?

Ich würde Abstimmung für psh - das Projekt , das Sie als Kollision zitieren hat noch keine gesehene Veröffentlichung in 10 Jahren, und war nie in jedem Fall in Paket repos.

@ Jaykul :

psh ? Ich weiß nicht - braucht mehr "Kern", wenn Sie mich fragen.

Scherz beiseite: Hervorragender Punkt über den Status des Projekts und seine Abwesenheit von Paket-Repos.

psh hat auch meine Stimme (und wpsh für Windows PowerShell).

(Ausgesprochen 'pshaw' bzw. 'whiplash').

psh hat auch meine Stimme (und wpsh für Windows PowerShell).
(Ausgesprochen 'pshaw' bzw. 'whiplash').

Sind Sie sicher, dass wir nicht einfach posh unter Windows verwenden und sie als pish nobel aussprechen können? 🤡

Pish-tosh! Das ist zu viel Mischmasch für das ganze Mischpocha. 🤡

Ich würde für psh stimmen - das Projekt, das Sie als Kollision zitieren, wurde seit 10 Jahren nicht mehr veröffentlicht und war auf keinen Fall in Paket-Repos.

Kein Copywrite-Problem?

Keine Urheberrechtsprobleme?

Ich hoffe, dass jemand, der wirklich weiß, wiegen wird, aber meine Vermutung ist, dass dies aus zwei Gründen kein Problem sein wird:

  • psh ist nicht der offizielle Produktname, sondern nur ein Initialismus (genauer gesagt Akronym), der lediglich eine technische Hilfe darstellt (obwohl er im allgemeinen Sprachgebrauch möglicherweise zu einer gebräuchlichen Abkürzung für den vollständigen Produktnamen wird; es ist möglich zu Markeninitialismen / Akronymen).

  • Bei Markenproblemen geht es oft um die Wahrscheinlichkeit einer Verwechslung mit vorhandenen Marken, und nach dem, was wir hier gesehen haben, scheint es zumindest im Softwarebereich keine Kollisionen zu geben (ich glaube nicht, dass der Schöpfer des praktisch nicht mehr existierenden psh repo wird etwas dagegen haben oder hat sogar einen Rechtsstreit).

Für den Fall, dass jemand experimentieren möchte / eine Zwischenlösung benötigt:

Hier ist eine All-Aliase-Lösung, die Aliase sowohl innerhalb als auch außerhalb von PowerShell auf allen unterstützten Plattformen definiert: psh für PS Core und wpsh für Windows PowerShell.

  • Führen Sie EINMAL die folgenden Schritte aus, um Aliase AUSSERHALB von PowerShell einzurichten (für cmd.exe unter Windows, für bash unter Unix):
  # Note: 
  #   * On Unix, this will define alias `psh` for *interactive* Bash sessions,
  #     via initialization file ~/.bashrc (Linux) or ~/.bash_profile (macOS).
  #   * On Windows, this defines doskey.exe-based aliases `psh` and `wpsh`
  #     via registry key [HKEY_CURRENT_USER\Software\Microsoft\Command Processor],
  #     value 'AutoRun', and even though *any* cmd.exe instance will run
  #     these alias definitions, they only work in *interactive* ones.
  #     Note that both aliases open a new window.
if ($env:OS -eq 'Windows_NT') {
  $cmd = 'doskey wpsh=start powershell.exe & doskey psh=powershell.exe -nologo -command "psh"'
  $currVal =  try { Get-ItemPropertyValue 'HKCU:\Software\Microsoft\Command Processor' AutoRun } catch {}
  if (-not (Select-String -Quiet -SimpleMatch -Pattern "$cmd" -InputObject $currVal)) {
    if ($currVal) { $cmd += " & $currVal" }
    Set-ItemProperty 'HKCU:\Software\Microsoft\Command Processor' AutoRun $cmd
  }
} else {
  $cmd = 'alias psh=powershell'
  $initFile = ("$HOME/.bashrc", "$HOME/.bash_profile")[(uname) -eq 'Darwin']
  if (-not (Select-String -Quiet -LiteralPath $initFile -Pattern "^\s*$cmd\b")) {
    Add-Content -LiteralPath $initFile -Encoding utf8 "`n$cmd"
  }
}
  • Fügen Sie Folgendes in Ihr $PROFILE , um dieselben Aliase in PowerShell zu definieren - funktioniert sowohl in PS Core als auch in Windows PS:
  # ===
  # Portable alias definitions for PowerShell Core (`psh`) 
  # and, on Windows, for Windows PowerShell (`wpsh`) too.
  #
  # Place them in $PROFILE.
  #
  # * On Unix, invoking `psh` always runs the new instance in the current terminal window.
  # * On Windows, only invoking the same edition runs in the current console window.
  #   Invoking the respective other edition opens a new window; if you also
  #   pass a command, add -NoExit to keep the new window open.
  #
  # ===
  if ($env:OS -eq 'Windows_NT') { # on Windows
    if ($PSVersionTable.PSEdition -eq 'Core') { # running in a PS Core session
      # PS Core alias: Invoke the same binary that started the current session.
      Set-Alias psh "$PSHOME\powershell.exe"
      # Windows PowerShell alias
      function wpsh {
        # Assume a fixed location in SYSTEM32.
        $exe = "$env:SYSTEMROOT\System32\WindowsPowerShell\v1.0\powershell.exe"
        $psModulePathSav = $env:PSModulePath
        try {
          # Note: We must remove all *\PowerShell\* entries from $env:PSModulePath, because they are Core-specific
          #       and interfere with module loading in Windows PowerShell.
          # Note that Start-Process -UseNewEnvironment is NOT an option: see https://github.com/PowerShell/PowerShell/issues/3545
          $env:PSModulePath = (($env:PSModulePath -split ';') -notmatch '[/\\]PowerShell[/\\]') -join ';'
          # Start Windows PowerShell in a new window.
          $htArgs = if ($Args.Count) { @{ Args = $Args } } else { @{} } 
          Start-Process $exe <strong i="18">@htArgs</strong>
        } finally {
          $env:PSModulePath = $psModulePathSav
        }
      }
    } else { # running in a Windows PowerShell session
      # PS Core alias:
      Function psh {
        # Given that the PS Core *.exe is not in $env:PATH as of PowerShell Core v6.0.0-beta.5, determine its location.
        # Since multiple versions may be installed, find the highest version installed.
        # Unfortunately on PSv5.1- [semver] ([System.Management.Automation.SemanticVersion]) is not available, so we fall back to the *.exe files' last-write timestamp.
        # WISHFUL THINKING: Set-Alias psh ((Get-ChildItem -Directory $env:ProgramFiles\PowerShell | Sort-Object -Descending { [semver] $_.Name })[0].FullName + '\powershell.exe')
        $exe = ((Get-ChildItem -File $env:ProgramFiles\PowerShell\*\powershell.exe | Sort-Object -Descending LastWriteTime)[0].FullName)
        # Note: The Core-specific module directories are automatically added to $env:PSModulePath, so no other action is required.
        # Start PS Core in a new window.
        $htArgs = if ($Args.Count) { @{ Args = $Args } } else { @{} } 
        Start-Process $exe <strong i="19">@htArgs</strong>
      }
      # Windows PowerShell alias: invoke the same executable that started the current session.
      Set-Alias wpsh "$PSHOME\powershell.exe"
    }
  } else { # on Unix (Linux, macOS)
    # Simply invoke the same binary that started the current session.
    Set-Alias psh "$PSHOME/powershell"
  }

Was ist mit Paua ? Dies ist ein Hinweis auf die wunderschöne Paua-Muschel (eine Muschel aus Neuseeland). Ansonsten finde ich psh auch gut.
Paua Shell

Sie verkaufen Muscheln von der (neuseeländischen) Küste? (Nur ein Scherz. Schön in der Tat.)

Haftungsausschluss: Folgendes ist nur für [Hobby-] Linguisten von Interesse.

Phonetisch funktioniert paua nur für nicht-rhotische Dialekte des Englischen (z. B. Großbritannien, Neuseeland, Australien).

Und Bostoner.

@ PowerShell / Powershell-Komitee sollte dies für Beta.8 schließen

Wie wäre es mit Posh6

Wie wäre es mit Posh6

Das Gefühl, dass dies schneller veraltet wäre als das Einfügen einer Versionsnummer in eine Dateierweiterung ...;)

Ja, aber ein Shell-Skript, das es startet, weiß, welche Version es ausführt.

Obwohl ich posh mag, denke ich, dass das Hauptanliegen darin besteht, dass es ein Linux-Paket namens Posh gibt , um einen weiteren curl Vorfall zu vermeiden. Ich denke, die nächstbeste Option ist pwsh

Ich mag pwsh . Wäre schön gewesen vor 10 Jahren zu haben. Ich vermisse msh .

Ich stimme für psh .
gnp / psh wurde seit fast 5 Jahren nicht mehr verpflichtet. Es kann genauso gut Abbruchware sein.

Ich hasse es, es zu sagen, aber dies ist eines der Dinge, bei denen es möglicherweise zu schwierig ist, einen starken Konsens zu erzielen. : \

An diesem Punkt bin ich bei pwsh , um die Dinge zu schließen und jede Art von Kollision zu vermeiden (mehr "Treu und Glauben" als legal).

Lassen Sie es mich so fragen: Hat jemand einen starken Grund, nicht mit pwsh ?

Hätte jemand Bedenken, wenn pwsh der Name der ausführbaren Datei und powershell der Symlink / die Verknüpfung ist?

Bevor wir hier Genehmigungen abgeben, sollten wir antworten, was "aktuelle" Version ist und wie wir darauf und auf die Zielversion verweisen werden.

@iSazonov nicht sicher, ob ich Ihre Frage verstehe. Dies hat nichts mit powershell -v N tun, wenn Sie danach fragen. Dies ermöglicht einfach die Verwendung von pwsh anstelle von powershell (obwohl wir die Rechtschreibung von powershell weiterhin unterstützen würden).

Mein Anliegen sind mehr Symlinks wie Powershell -> Powershell-6.0.0-Beta.7
Wenn wir über Sprache sprechen, mögen wir Aliase in interaktiven Sitzungen, weil sie uns eine komfortable Umgebung bieten, aber die Aliase bereiten Skripten große Kopfschmerzen. Ich sehe dasselbe für den Powershell-Kurznamen - es ist wahrscheinlich gut für den Geschwindigkeitstyp, aber es kann wirklich ein Problem für den Verzeichnisbaum (Symlinks) sein.

Ein anderer Gedanke. Sollten wir über Geschwindigkeitstyp nachdenken? Aus dieser Perspektive sind nicht alle vorgeschlagenen Fälle gut.
Der letzte Gedanke betrifft die Aussprache. Interessanterweise verwenden wir auf Russisch "пош" ("nobel") und Hypokorismus "пошик" ("poshik") seit der Geburt von PowerShell. Ich denke, dass jeder Russe für "nobel" oder "psh" stimmen wird.

Um ganz klar zu sein, pwsh wäre kein Alias ​​(in PowerShell-Begriffen), es sollte etwas sein, das Sie von cmd.exe oder einer Batch-Datei aufrufen können, wie es physisch existiert. Obwohl mir nicht klar ist, wie wir dies tatsächlich implementieren, wenn wir sowohl einen Kurznamen als auch powershell ohne zwei ausführbare Dateien unterstützen möchten (obwohl poweshell.exe relativ klein ist ...).

Was posh und psh gegenüber pwsh betrifft, ist das Hauptanliegen bei posh und psh dass sie bereits existieren (unabhängig davon, wie prominent sie sind sind). Wir hatten schon früh ein Problem mit unserem Alias curl da er mit einem vorhandenen nativen Tool in Konflikt stand und (vielleicht sind wir hier übermäßig vorsichtig) wir versuchen, eine ähnliche Situation mit der kurzen Hand zu vermeiden, weshalb wir Ich neige zu pwsh . Vielleicht gewöhnen sich die Leute daran, wenn ich pwsh oft genug tippe :)

Andere Seite. Wie lösen wir dasselbe in PowerShell? Wir empfehlen Benutzern Aliase und IntelliSense, um die Eingabe zu starten.
Als wir in einer der Diskussionen hier über Aliase diskutierten, sagten wir, dass alle aktuellen Alias ​​nicht schreibgeschützt sein sollten - wir sollten Benutzern erlauben, Aliase zu entfernen / zu ändern. Mit anderen Worten, Aliase sollten nicht ausschließlich Standard sein. Nur grundlegende Cmdlet-Namen müssen Standard sein. Unter diesem Gesichtspunkt sollten wir keinen "Standard" -Alias ​​für "Powershell" anbieten - jede Community oder Distributive sollte in der Lage sein, den Namen zu wählen, den sie mögen und der ihrem Geist entspricht, und sie könnten auch IntelliSense anbieten.

@ SteveL-MSFT - Ich denke, dass 'pwsh' wahrscheinlich bei den Leuten bleiben wird.

Davon abgesehen haben Sie Leute Curl-Vorfall als Grund erwähnt, nicht 'psh' zu verwenden. Ich finde das problematisch, weil Sie sich (uns) einfach in eine Ecke boxen, indem Sie zu weit Parallelen ziehen!

'curl' ist eines der am häufigsten verwendeten Tools in der Linux-Welt. Es ist ratsam, übermäßig vorsichtig zu sein, um "Curl" -Snafu nicht für "lebende" / "aktive" Software zu wiederholen, aber warum sollte diese Höflichkeit auf Abbruchware ausgedehnt werden?

Lassen Sie uns durch den Curl-Vorfall eine Lektion erteilen, nur nicht die falsche.

Lassen Sie mich zur Unterstützung des @AdilHindistan die Analyse von @Jaykul auf den Punkt wiederholen (der Thread ist lang geworden, es ist schwierig, den Überblick zu behalten):

Ich würde für psh stimmen - das Projekt, das Sie als Kollision zitieren, wurde seit 10 Jahren nicht mehr veröffentlicht und war auf keinen Fall in Paket-Repos.

Mit anderen Worten: Die Tatsache, dass psh anscheinend nie Teil von (Haupt-) Paket-Repositories war (ich habe nur apt (Ubuntu, Debian) und yum (Fedora, RedHat)) - dh war immer ein Nischenprodukt - und dass es nach mehr als 10 Jahren Inaktivität in jeder Hinsicht als aufgegeben betrachtet werden kann, macht es zu einem perfekten Kandidaten.

(Im Gegensatz dazu disqualifiziert die Tatsache, dass posh immer noch ein verfügbares Paket über apt , unabhängig von seinem Wartungsstatus, es meiner Meinung nach.)

Ich würde den Punkten zustimmen, dass psh eine praktikable Option ist und in Betracht gezogen werden sollte

Wie man den Kurznamen als Symlink / Stub implementiert, unter der Annahme, dass der Name der tatsächlichen ausführbaren Datei powershell[.exe] bleibt:

Nehmen wir an, der Kurzname lautet beispielsweise psh (nur um zufällig einen der besprochenen Namen auszuwählen).

Unix-Plattformen

Das Installationsprogramm muss zusätzlich das Folgende tun:

# Linux
/usr/bin$ sudo ln -s powershell psh

# macOS
/usr/local/bin$ sudo ln -s powershell psh

Mit anderen Worten: Erstellen Sie einen zusätzlichen Symlink mit dem Namen psh , der einfach auf den vorhandenen Symlink powershell verweist.

Unter macOS würde dies zu einer Symlink-Kette wie der folgenden führen:

/usr/local/bin/psh@ -> /usr/local/bin/powershell@ -> /usr/local/microsoft/powershell/6.0.0-beta.7/powershell

Jede aufrufende Shell, einschließlich PS Core selbst, könnte daher psh als kürzere Alternative zu powershell .

Windows

Unter Windows sind die Dinge komplizierter:

  • Zumindest ab Beta.7, von _outside_ of PS _Core_, befindet sich nur _Windows_ PowerShell im PATH.
  • Es sollte unterschiedliche Abkürzungen für Windows PowerShell vs. Powershell Core für den gezielten Aufruf geben: psh für PS Core und wpsh für Windows PS (dieser Name sollte auch in Ordnung sein, da er auch nicht verwendet wird in den apt und yum Repos).

Windows PS

_Windows_ PS könnte Symlinks definieren - jeweils einen in $env:SystemRoot\System32\PowerShell\v1.0 (64-Bit) und $env:SystemRoot\SysWOW64\PowerShell\v1.0 (32-Bit) wie folgt:

Set-Location $PSHOME
cmd /c mklink wpsh.exe powershell.exe

Aufgrund von $PSHOME in $PATH kann jede Shell, einschließlich PS Core und Windows PS selbst, Window PS als wpsh aufrufen.

PS Core

Die Kurzschriftdatei selbst könnte standardmäßig in einem Verzeichnis abgelegt werden, das sich im PATH befindet. Dies würde einen Aufruf ermöglichen, auch ohne dass sich PS Core's $PSHOME selbst im PATH befindet.

64-Bit- und 32-Bit-Überlegungen gelten nicht (PS Core ist nur 64-Bit), daher können $env:SystemRoot (normalerweise C:\Windows ) ausgewählt werden.

Leider ist die Verwendung von symbolischen Links zumindest derzeit keine Option, da PowerShell Core die Ausführung verweigert, wenn es über einen Symlink mit einem anderen Namen aufgerufen wird:

Aus einer _elevated_ PS-Sitzung:

Set-Location $env:SystemRoot   # typically, C:\Windows
cmd /c mklink psh.exe "C:\Program Files\PowerShell\6.0.0-beta.7\powershell.exe"

Das Aufrufen von psh.exe schlägt wie folgt fehl:

The managed DLL bound to this executable: 'powershell.dll', did not match own name 'psh.dll'.
A fatal error was encountered. This executable was not bound to load a managed DLL.

Wenn jemand einen Weg kennt, lassen Sie es uns wissen.

(Seltsamerweise ist der Aufruf im Prinzip erfolgreich, wenn Sie den Symlink _ ohne Erweiterung_ definieren - psh anstelle von psh.exe -, aber es werden keine Parameter übergeben.)

Eine Problemumgehung besteht darin, eine Stub-Batch-Datei zu verwenden (erneut in einer _elevated_ PowerShell-Sitzung ausgeführt):

Set-Location $env:SystemRoot   # typically, C:\Windows
'@"%ProgramW6432%\PowerShell\6.0.0-beta.7\powershell.exe" %*' | Set-Content -Encoding ASCII psh.cmd

Jede aufrufende Shell, einschließlich Windows PowerShell und PS Core selbst, kann dann psh als Abkürzung zum Aufrufen von PS Core verwenden.

@ mklement0 Ich dachte das Gleiche in Bezug auf die Verwendung eines Symlinks unter Linux / MacOS und einer Batch-Datei für Windows (und ich würde nichts für Windows PowerShell tun, da dies nur powershell bleiben würde).

Es scheint das offensichtlichste zu sein, dass powershell der primäre und psh der Link ist, aber ich dachte, wir sollten das vielleicht umdrehen, damit psh der Name von ist Die Exe und powershell ist der Link. Der Grund dafür ist, dass bei einer neuen Zielgruppe unter Nicht-Windows und zur Unterscheidung von Windows PowerShell die Benutzer anscheinend psh , um auf PowerShell Core zu verweisen, und powershell nur vorgesehen ist App-kompatibel (möglicherweise Muskelgedächtnis für einige Menschen beim Übergang). Ich weiß jedoch, dass nicht jeder von dieser Idee begeistert ist.

Wenn wir sehen, dass psh sehr beliebt ist, können wir powershell und psh tauschen.

Zum Hinzufügen von Alias ​​kann Hilfe https://stackoverflow.com/questions/2016722/one-dll-multiple-projects sein

Ich mag die Idee nicht, dass psh die Exe wird und PowerShell als Link verbannt wird. Sie werfen 10 Jahre Publikumsloyalität für eine potenzielle Benutzerfreundlichkeit unter Nicht-Windows weg, bei der die Zielgruppengröße unbekannt und (zumindest zu Beginn) potenziell klein ist.

Je mehr ich von PowerShell v6 sehe, desto mehr scheinen die vorhandenen Windows-Benutzer ignoriert zu werden, um Nicht-Windows-Benutzer davon zu überzeugen, PowerShell zu übernehmen. Wo endet dieser Prozess?

@RichardSiddaway Ich habe nicht den Eindruck, dass das PowerShell-Team Windows-Benutzer überhaupt ignoriert, und ich bin hauptsächlich ein Windows-Benutzer mit einem Windows Phone. Ich war derjenige, der dies nicht aufgrund eines Linux-Konzepts verlangte, sondern aufgrund meiner eigenen Herausforderungen, von cmd zu Powershell überzugehen.

Tatsache ist, dass Windows PowerShell ein ausgereiftes Produkt ist, das jedoch nicht plattformübergreifend entwickelt wurde. Damit dies funktioniert, muss die anfängliche Investition zu Beginn plattformübergreifend höher sein, was beiden Welten zugute kommt. Die Dinge werden sich in den nächsten Veröffentlichungen ausgleichen.

Abgesehen von Aliasen und Parameter-Aliasen sehe ich nicht viel, was sich negativ auf Windows-Benutzer auswirkt. Wenn es ein bestimmtes Problem gibt, das ein Problem darstellt, sprechen Sie es bitte in diesen Problemen an. Die Debatte ist gut für die Plattform und wir müssen sicherstellen, dass beim Übergang nichts Besonderes an PowerShell verloren geht.

@ SteveL-MSFT Kannst du noch mehr Gründe dafür liefern, dass psh oder pwsh zur EXE-Datei wird? Wenn sich daraus Vorteile ergeben, bin ich möglicherweise eher geneigt, dies zu bevorzugen.

Autsch auf der Batch-Datei. Wie auch immer, damit der Symlink unter Windows funktioniert? Ich habe das lieber als eine andere Schicht durch cmd.

@ dragonwolf83 Ich würde mir vorstellen, dass die Leute im Laufe der Zeit lieber 3 oder 4 Zeichen gegen 10 eingeben würden. Obwohl wir immer das Eingeben von powershell , scheint es aus einer langfristigen Perspektive, dass wir für die kürzere Version optimieren sollten

Ihre Kommentare zu Windows PowerShell sind genau richtig.

@ dragonwolf83 :

Autsch auf der Batch-Datei. Wie kann der Symlink unter Windows funktionieren?

Ich höre dich. Leider hat mein Hilferuf bisher sehr wenig Beachtung gefunden.

Powershell.exe ist 78k, wäre es so schlimm, weitere 78k als psh.exe zu haben ...

2 doppelte ausführbare Dateien zu haben, könnte eine einfache Lösung sein, könnte aber auch zu Verwirrung führen, da ich mir vorstellen kann, dass Benutzer darüber nachdenken, ob es einen Unterschied zwischen den 2 gibt. Wenn ich neu in PowerShell wäre und 2 verschiedene Beispiele (z. B. auf SO) gesehen hätte Zeigen Sie, wie Sie PowerShell aufrufen / öffnen. Dann würde ich mich sofort fragen, welches Beispiel ich wählen soll, da ich davon ausgehen würde, dass es einen Unterschied gibt ...

IMO das ist dumm. cmd.exe ist in Windows 10 1703 weitgehend verborgen, sodass Sie Powershell.exe selten über die Legacy-Shell starten würden.

Kein großer Fan davon - wie oft tippst du powershell , damit es zu einem Problem wird? (Auch ein totales Problem mit dem Fahrrad;)) Setzen Sie in Windows 10 und Server 2016 "Eingabeaufforderung durch Windows PowerShell ersetzen, wenn ich mit der rechten Maustaste auf das Startmenü klicke oder Win + X drücke" und es ist so kurz wie Win + x, i oder unter Linux Fügen Sie Ihrer vorhandenen Shell einen Alias ​​mit dem von Ihnen bevorzugten Namen hinzu.

Das heißt, was ist mit:

  • ps1 - nach der Dateierweiterung unter Windows, kurz, einfach zu tippen, einprägsam
  • psps - ist kurz und typisierbar, lässt sich aber offen für 'typisches M $ bloat' Slanging
  • ips - wie bei Invoke-PowerShell scheint es sich nicht um ein Paket in RedHat- oder Ubuntu-Repos zu handeln, und yum provides "*/ips" zeigt keine Binärdateien an, mit denen man bei einer schnellen Überprüfung in Konflikt geraten kann

Lassen Sie es mich so fragen: Hat jemand einen starken Grund, nicht mit pwsh zu gehen?

Es ist hässlich und unaussprechlich, braucht mehr Silben als 'Powershell' selbst, ist nicht besonders einfach zu tippen und sieht aus, als ob es von Internet-Pwnd / Pwnt stammt.

Wenn wir bald PowerShell als Standard-Shell unter Windows haben, wird der Dateiname (Länge) unwichtig.

PowerShell Core ist ein portables Projekt - wir müssen auch an Unix denken.

@ PowerShell / Powershell-Komitee hat dies besprochen und wo wir gelandet sind, soll PSCore6-Binärdatei nur pwsh ohne zusätzliche Verknüpfung / Alias ​​für powershell heißen. Der Vorteil besteht darin, dass unter Windows eindeutig angegeben wird, ob Sie Windows PowerShell oder PowerShell Core verwenden. Unter Nicht-Windows ist die Eingabe kürzer und konsistenter mit anderen Shell-Namen. Basierend auf Kundenfeedback können wir in Zukunft immer einen powershell Link / Shortcut / Alias ​​hinzufügen.

Meine Stimme ist psh.exe.

@jandrusk Die PR wurde bereits gestern zusammengeführt, es wird also pwsh.exe sein. Jeffrey hat schon darüber getwittert hier .

Es lebe die neue PassWord / Per-Week / PoliceWoman SHell!

Meine Stimme wäre gewesen, es in Ruhe zu lassen.

Wie sprechen wir pwsh aus?

pwsh
p.wush
p.woosh
puh.wush

Hoffentlich etwas besseres als diese

@jonathanmedd Ich habe pwish wie wish mit einem p .

Angesichts der Tatsache, dass _pwsh_ ein rekursives Akronym ist (ähnlich wie _GNU_) - Bitte, warum pwSH? - Ich schlage "pweesh" vor, wie ein süßer Hase mit einem lispelnden Spruch "bitte".

Scherz beiseite:

  • Obwohl ich persönlich denke, dass es unglücklich war, sich für pwsh , gehe ich davon aus, dass wir uns bald daran gewöhnen werden und nicht wieder darüber nachdenken werden.

  • Was die Aussprache betrifft: Ich persönlich sehe keine Notwendigkeit für eine, da der vollständige Name kurz genug ist und für jeden, der in der Welt von PowerShell lebt, die Zuordnung offensichtlich ist. (Ein Beispiel aus der Unix-Welt: zsh wird anscheinend als zee shell oder zed shell ausgesprochen , nicht als einzelne Silbe).

P-Dub Shell ?

P Double U Shell oder P Double U S H ist nur schmerzhaft zu sagen. Mehr Silben als PowerShell aber Sie möchten wahrscheinlich PowerShell von pwsh . So wie bash von Bourne-Again Shell .

Sie möchten wahrscheinlich PowerShell von pwsh unterscheiden

In Bezug auf die offiziellen vollständigen Namen ist es _PowerShell Core_ vs. _Windows PowerShell_ - _PowerShell_ kann sich auf jede Edition beziehen.
Wenn dies aus dem Kontext nicht ersichtlich ist, wird das Hinzufügen des entsprechenden Qualifikationsmerkmals eindeutig - und möglicherweise nicht allzu oft benötigt (z. B. in einem reinen Unix-Kontext).

Längerfristig, da PowerShell Core die Edition ist, die auf "allen" Plattformen ausgeführt wird, wäre ich nicht überrascht, wenn _PowerShell_ zu einer allgemeinen, informellen Abkürzung für _PowerShell Core_ (die "Standard" -PowerShell) mit einem Qualifikationsmerkmal - _Windows_ - würde. Wird nur verwendet, um auf die Windows-Edition zu verweisen.

Nebenbei:

So wie Bash von Bourne-Again Shell unterschieden wird.

bash _ist_ die _Bourne-Again SHell_ - sie steht im Gegensatz zu ihrem Vorgänger, der _Bourne SHell_ ( sh ,
vor POSIX standardisierte die Sprache).

@ mklement0 Ich spreche über die Unterscheidung von pwsh der Binärdatei von PowerShell der Sprache / Shell. Unterschiedliche Implementierungen / Plattformen von PowerShell werden nicht unterschieden. Ebenso wie bash verwendet wird, um die Binärdatei von Bourn-Again SHell . Sie sind austauschbar, ja, aber wenn Sie die 2 unterscheiden müssen, brauchen Sie eine klare Möglichkeit, pwsh auszusprechen.

push: smile:

Vielleicht:

p shell oder p w shell

@markekraus :

Ah, ich verstehe, danke für die Klarstellung.

Wenn Sie den genauen Namen der Binärdatei übermitteln möchten, hilft Ihnen keine Aussprache, bei der der Name nicht richtig geschrieben ist (das hätte nur mit so etwas wie posh funktioniert).

Daher sollte die Bezugnahme auf die _PowerShell-Binärdatei / ausführbare Datei für alle bereits Kenner funktionieren, und für andere müssen Sie sie trotzdem formulieren.

Wenn Sie den genauen Namen der Binärdatei angeben möchten, hilft Ihnen keine Aussprache, bei der der Name nicht buchstabiert wird.

Wir müssen uns darauf einigen, dass wir uns nicht einig sind 😃.

Ich verstehe Ihren Wunsch, dass das funktioniert - wie es zum Beispiel bei "bash" und "posh" der Fall ist -, aber wie Ihre eigenen oben genannten Kämpfe bestätigen, funktioniert es nicht bei "pwsh" - was wir fairerweise annehmen Ich stecke jetzt fest.

es funktioniert nicht mit "pwsh"

Nun, nicht mit dieser Einstellung, tut es nicht! 😉 Ich habe es pwish und werde es wahrscheinlich auch weiterhin tun. Aber ich erstelle nur einen Dialog, um zu sehen, ob andere sich etwas anderes einfallen lassen. push ist gut, wenn man die Aussprache von w in einigen Sprachen berücksichtigt. pwsh nicht vollständig uneinlösbar, IMO. Vielleicht wird sich jeder für p w s h . Aber es ist noch zu früh, um zu sagen, dass wir hier fertig sind, und die Angelegenheit als entschieden zu betrachten, IMO.

:) :)

Du hast recht.

Ich glaube, ich habe mich zu sehr auf den Aspekt konzentriert, die genaue Schreibweise an jemanden zu übermitteln, der noch nicht mit PowerShell vertraut ist, anstatt auf einen Kurznamen, der durch Konventionen für diejenigen festgelegt wurde, die bereits Bescheid wissen (die bereits wissen, wie man diesen Kurznamen pwsh zuordnet)

Was ist mit MSPosh? Kürzer als PowerShell.exe und folgt Standards, während es gleichzeitig ein lustiger Name für The PowerShell Hero ist ?

@ 1RedOne der PowerShell-Held / Avatar wird immer PoSH-Chan in meinem ❤️ sein

Es scheint, dass das PWSH-Team sich beeilte, seinen Namen zu ändern. :-)

Ich stimme für pscmd.exe

Wenn Sie cmd in Windows eingeben, sollte es tatsächlich angezeigt werden! und es ersetzt tatsächlich das cmd ...

Wenn dies eine Frage des Muskelgedächtnisses ist, lassen Sie uns dieses Problem beheben.

Wenn es nur zum Spaß ist, einen coolen neuen Namen zu finden, sollte es pscore.exe sein, da es das ist.

nur meine 2 Cent.

pwsh , die erste Wbject-Wriented-Shell des wwrld. Ich freue mich auf zwei neue Cmdlets, die dieses Muster fortsetzen:

Get-Cwntent servers.txt | FwrEach-Wbject { 
    Invwke-Cwmmand -CwmputerName $_ -Scriptblwck { .. }
}

;)

- -

Ref Aussprache, was ist mit " powsh " wie "Beutel" oder "Couch" mit einem weichen "s" gesagt. (Denken Sie, Sean Connery Impressionisten sagen "Beutel").

The managed DLL bound to this executable: 'pwsh.dll', did not match own name 'powershell.dll'.
A fatal error was encountered. This executable was not bound to load a managed DLL.

Ich vermute, diese Fehlermeldung hängt mit diesem Problem zusammen. Wie behebe ich das?

Was das eigentliche Namensproblem betrifft, stimme ich für pwsh, da Bash die Bourne Again SHell ist.

Ich stimme für PWSH. Und ich würde es als Push aussprechen.
Ich habe in der Community viele gesehen, die Posh verwendet haben, daher wäre dies meine zweite Wahl, obwohl ich denke, dass MS versucht, nicht mehr Posh zu nennen.

Ich stimme für pwr !

@ DaleMitchell wie hast du diesen Fehler bekommen? Wenn Sie es selbst erstellt haben, haben Sie build.psm1 neu geladen?

Ich habe in der Community viele gesehen, die vornehm waren

https://github.com/dahlbyk/posh-git zum Beispiel.

pwsh wird posh ausgesprochen. @SaschaNaz POSH existiert leider schon als Shell

Habe ich eine Abstimmung von @ PowerShell / Powershell-Komitee darüber verpasst, wie es ausgesprochen wird? :) :)

Ich dachte, wir könnten es vielleicht Microsoft Next Generation Command Line Interface Shell Experience 2017 aussprechen, oder vielleicht einfach powershell .

Wird erst verwendet, wenn die Microsoft Next Generation-Befehlszeilenschnittstelle Shell Experience 2017 Service Pack 2 veröffentlicht wurde ...

POSH existiert leider schon als Shell

Ja, es wird SEHR verwirrend sein, wenn ein Benutzer vornehm sein möchte, sudo apt install posh versucht und dann eine völlig andere Shell bekommt.

Übrigens , Pah-Sh ? Mit Sicherheit letzteres?

Der Paketname ist immer noch Powershell, keine Änderung dort:

sudo apt install powershell

Ein kurzer (meinungsgebundener) Beitrag zum Stand der Debatte:

  • Was den Dateinamen der Binärdatei betrifft: Die Entscheidung wurde getroffen und veröffentlicht: pwsh es.

  • Wie für _ Aussprache_:

    • Es gibt keine, die dem Uneingeweihten die genaue Schreibweise der Binärdatei vermitteln kann - keine andere Wahl, als sie zu formulieren.

    • Für den Eingeweihten ist "PowerShell" wohl alles, was benötigt wird, da aus dem Kontext normalerweise klar hervorgeht, ob man sich auf das Produkt oder den Dateinamen der Binärdatei bezieht ( @markekraus 'Anliegen); In letzterem Fall übersetzt der Eingeweihte dies automatisch in pwsh in seinen Köpfen.
      Fügen Sie bei Bedarf "Core" und "Windows" hinzu, um die Unterscheidung zu treffen.

    • Unnötig zu erwähnen, dass die leidenschaftliche Suche nach dem endgültigen informellen einsilbigen Spitznamen fortgesetzt wird ...
      Da in jedem Fall eine mentale Zuordnung zu pwsh erforderlich ist, können informell etablierte wie "Posh" ebenfalls weiterhin verwendet werden.

Früher, als wir MKS Toolkit für die plattformübergreifende Skriptunterstützung verwendeten, verwendeten wir ksh.exe aber wir nannten es immer KornShell . Obwohl die Binärdatei pwsh , werde ich sie PowerShell nennen.

Ich denke, dieses ganze Problem "Wie spricht man den Binärnamen aus?" Hätte vermieden werden können, wenn der Binärname pwrsh aber dieses Schiff ist gesegelt.

In den "alten Tagen" (zählt vor 15 Jahren?) Nannte mein Team das binäre "kish", und "KornShell" diente der allgemeinen Diskussion der Shell.

Beispiel:

"Geben Sie ooser bin kish ein und drücken Sie die Eingabetaste. Jetzt befinden Sie sich in der KornShell."

zählt vor 15 Jahren?

Es ist etwas relativ zu der Person, die ich denke. Meine Erfahrung mit KornShell begann vor 24 Jahren. Vor 15 Jahren war meine Tochter ein Kleinkind und das scheint noch nicht so lange her zu sein. Huch - die Zeit vergeht wie im Fluge.

Mein Team nannte das binäre "Kish"

Ich kann nicht sagen, dass ich es jemals so ausgesprochen habe. :-)

Ich kann nicht sagen, dass ich es jemals so ausgesprochen habe. :-)

Ja. außerhalb dieses Teams war es immer "ksh" oder "KornShell". Aber genau darum geht es: zu diskutieren, wie die Leute die Buchstaben "pwsh" (ohne "PowerShell") aussprechen, und zu prüfen, ob es einen Konsens gibt. Es ist keine ganz ernsthafte Diskussion und nichts wird jemals eine offizielle Aussprache sein, da es sich um ein unaussprechliches Wort handelt (keine Respektlosigkeit gegenüber dem Team - push ). Aber es hat sich bewährt, dass vielleicht ein beliebter Anwärter gewinnt und wir es in Präsentationen hören werden.

Vor meiner Arbeit bei Microsoft war ich eine Unix-Person und habe immer ksh Korn Shell und csh C Shell genannt. Ich erinnere mich an niemanden in jenen Tagen, der versucht hat, sie als Worte auszusprechen: P.

Könnte jemand kurz erklären, warum eine solche bahnbrechende Änderung vorgenommen wurde? Ich bin nicht auf dem Laufenden (klar!) Und habe mit

Habe gerade meine Auffrischungslesung über den Beitragsprozess gelesen. Ich dachte, dies würde zunächst einen RFC erfordern, aber ich kann sehen, dass dies möglicherweise nicht zutrifft. Als nächstes betrachte ich die Richtlinie zum Brechen von Änderungen (https://github.com/PowerShell/PowerShell/blob/master/docs/dev-process/breaking-change-contract.md). Können Sie sich dazu äußern, in welchen Bereich diese Änderung gefallen ist und so weiter?

Ich versuche nicht, etwas klares zu regeln, sondern möchte in der Lage sein, effektiv mit anderen Interessierten zu kommunizieren, die keine Spezifikationen und Probleme lesen. Vielen Dank!

mein 2c. Dies ist eine wichtige Änderung. Zu viele vorhandene Batchdateien beim Beenden von Produktionsszenarien verwenden bereits Powershell.exe, um PowerShell-Skripts zu initiieren. Ich bin nicht dagegen, einen zusätzlichen kurzen Befehl zum Starten derselben ausführbaren Datei bereitzustellen, aber das Entfernen von "Powershell" wird großes Chaos verursachen. Bitte geben Sie eine Möglichkeit an, beide zu verwenden (Alias ​​oder was auch immer).

@RudolfHenning Im Gegensatz zu früheren Versionen von Windows PowerShell arbeitet PowerShell Core neben anderen Versionen von sich selbst und älteren Versionen von Windows PowerShell. Es muss eine Möglichkeit geben, sowohl Windows PowerShell als auch PowerShell Core über die Befehlszeile und über Batch-Skripte aufzurufen, ohne den vollständigen Pfad der beabsichtigten EXE aufrufen zu müssen oder ohne die Pfadreihenfolge zu riskieren, die dazu führt, dass powershell.exe den falschen Aufruf ausführt Ausführung.

Selbst nach der Veröffentlichung von PowerShell Core 6.0 wird Windows PowerShell (5.1 und niedriger) weiterhin für viele Windows-zentrierte Aufgaben verwendet werden müssen, da viele der offiziellen und Community-Module und -Skripts Zugriff auf vollständige CLR-Objekte erfordern, die in Core nicht verfügbar sind.

Außerdem muss jeder, der seine Skripte von früheren Versionen auf 6.0 portiert, wahrscheinlich Anpassungen vornehmen, da es zwischen 5.1 und 6.0 ziemlich viele wichtige Änderungen gibt. Da der Code ohnehin berührt werden muss, kann der Stapel von powershell.exe auf pwsh.exe umgeschaltet werden. Wenn sie PowerShell Core nicht portieren, wird nichts kaputt gehen und die Skripte werden unter Verwendung von Windows PowerShell weiterhin mit powershell.exe .

Danke für die Erklärung.
Da ich sowohl Windows als auch einige Linux-Betriebssysteme verwende, ist die Kompatibilität meiner Skripte manchmal ein Problem - ja, ich weiß, dass die PowerShell-Bibliotheken unter Linux streng genommen noch Beta sind. Ich habe viel Zeit und Mühe in die Erstellung von Skripten für meine Linux-Maschinen investiert.
Wie auch immer, mach weiter so!

Der Powershell-Runner von TeamCity geht davon aus, dass die ausführbare Datei powershell . Da es unter Linux kein Powershell 5 gibt, das Kompatibilitätsprobleme verursacht, sollte das Linux-Paket weiterhin den Symlink powershell erstellen. Dies war ein unnötiger Bruch.

Was zum, bin ich im April angekommen? Werden wir als nächstes Vokale aus PowerShell-Commandlets entfernen? Das muss ein Witz sein.

ältere Skripte (Docker) mit "Powershell-Befehl xxxx" funktionieren mit der neuen Beta-9-Version nicht mehr ....

Warten auf den Shitstorm

Es gibt viele Gründe für eine Änderung an der "wichtigsten" Stelle oder am Einstiegspunkt, aber den Befehlsnamen um 6 Bytes zu verkürzen und ihn weniger lesbar zu machen, gehört nicht dazu ...
Wie oft in der Vergangenheit haben wir uns entschieden, einen besseren / längeren Namen in unserem Code zu verwenden, weil das Lesen einfacher sein kann / muss als das Schreiben ....

cust mein 2cent
Grüße
Werner

Ich versuche die Empörung und das Scheitern zu verstehen.

Die Leute beschweren sich, dass der neue Name die Dinge kaputt macht, aber PowerShell Core befindet sich noch in der Beta. IMO, wenn jemand eine Beta-Technologie im Produktionscode verwendet, lädt er eine Katastrophe ein (ich verwende hier höfliche Sprache). Die Natur von Alpha- und Beta-Releases besteht darin, mit bahnbrechenden Änderungen gefüllt zu sein. Es gibt keine Illusion, dass dies keine Beta ist. Beta ist in den Versionsnamen eingebrannt: 6.0.0-beta.9 .

Diese Namensänderung hat keine Auswirkungen auf Windows PowerShell. Es sollte nichts kaputt machen, was Sie gerade in Windows tun. Wenn Sie Dinge unter Linux tun, müssen Sie sich damit abfinden, dass Sie eine Beta-Version verwenden, anstatt die Beta-Version als Beta-Version zu beschuldigen. Verwenden Sie etwas anderes, bis die stabile Version RTM ist, wenn Sie die Änderungen zwischen den Beta-Versionen nicht bewältigen können.

Ich verstehe, dass die Leute den Namen nicht mögen. Sie können nicht immer bekommen, was Sie wollen. Ich persönlich habe PowerShell.exe gehasst, weil das Schreiben lang und umständlich ist. pwsh ist mindestens weniger Zeichen, die ich durcheinander bringen muss. Wenn Sie sich den Diskussionsthread ansehen, können Sie sehen, dass mehrere Optionen diskutiert wurden, von denen einige viel schlechter (IMO) als pwsh .

Die Leute verstehen dies als einen unangenehmen Versuch, sich in die coolen Linux-Kids einzufügen, wenn einer der Hauptmotive für einen neuen Binärnamen Windows ist. Ja, ein Linux-Name wurde gewählt, aber weißt du was? PowerShell ist jetzt auch ein * nix-Bürger. Ich denke, es ist Zeit, dass sich die Leute an diese Tatsache gewöhnen. Eines der Ziele von Core ist die plattformübergreifende Portabilität. Ja, Entscheidungen können und werden also nicht nur unter Windows getroffen werden.

Das sind also meine 2 Cent wert.

Eines der Ziele von Core ist die plattformübergreifende Portabilität

Ein Teil der plattformübergreifenden Portabilität besteht darin, dass dieselben Befehle auf beiden Plattformen funktionieren sollten, wenn sie dasselbe tun. Vor dieser Änderung konnte ich powershell ausführen, egal welches Betriebssystem ich verwendete, und das Richtige finden. Jetzt kann ich das nicht mehr machen.

Um Software zu erstellen, die einfach zu bedienen ist, müssen eine Million Kleinigkeiten richtig gepflegt werden. Die Verwendung seltsamer und nicht intuitiver Namen wirkt dem entgegen.

Ich konnte powershell ausführen, egal welches Betriebssystem ich verwendete, und das Richtige bekommen. Jetzt kann ich das nicht mehr machen.

Nicht genau. Sie können powershell unter Windows ausführen und Windows PowerShell herunterladen, dann powersehll unter Linux ausführen und PowerShell Core herunterladen. Jetzt können Sie pwsh unter Windows oder Linux ausführen und PowerShell Core herunterladen. JETZT sind wir in dem Zustand, den Sie sich wünschen. wo wir uns nach wie vor in einem inkonsistenten Zustand befanden.

Die Verwendung seltsamer und nicht intuitiver Namen wirkt dem entgegen.

Nun, es ist klar, dass es nicht allgemein beliebt ist, aber ... welche Alternative schlagen Sie vor? Ich sehe, dass alle über den Namen nachdenken, aber keine Alternativen zu dem zugrunde liegenden Problem, das dieser Name ändert. Wie gesagt "Sie können nicht immer bekommen, was Sie wollen"

Egal welcher Name gewählt wurde, die Leute wären unglücklich.

@ Markekraus

  • Wir wissen, dass dies eine Beta ist - bahnbrechende Änderungen sind in Ordnung!
  • Ich bin ein großer Fan davon, auf * nix bessere PS zu machen, weil es mir hilft, mein (PS-) Wissen von Windows auf * nix zu übertragen

Mein Feedback betraf die Benutzerfreundlichkeit und die Besorgnis eines Shitstorms, der einige Umbenennungen und endlose Diskussionen erzwingt.

Sie können Powershell unter Windows ausführen und Windows PowerShell herunterladen, dann Powersehll unter Linux ausführen und PowerShell Core herunterladen. Jetzt können Sie pwsh unter Windows oder Linux ausführen und PowerShell Core herunterladen. JETZT sind wir in dem Zustand, den Sie sich wünschen. wo wir uns nach wie vor in einem inkonsistenten Zustand befanden.

Die Trennung von Windows und Core ist wirklich ein BESSERER Grund für die Umbenennung als "Erstellen Sie einen kürzeren Namen"!

Ich schlage vor, diesbezüglich klarere Mitteilungen zu machen (Titel der Ausgabe, Versionshinweise usw.)
Ich habe die ersten 2-3 Seiten dieser Ausgabe gelesen und die Diskussion war nur über die Länge ....

anderes Feedback:
In den letzten Wochen habe ich viele Codierungen mit PS-Core auf Docker und * nix gemacht
Ich mag es, muss aber poliert werden.
Idee / Vorschlag:
Wenn der Name von Powershell in pwsh geändert wird, ändern Sie die Version von 6.0 auf 1.0 (dieselbe Diskussion wie bei der Umwandlung von ".Net 5.0" in "dotnet core 1.0"
Grundsätzlich ähnelt CORE eher einer Version 1.0 als einer Version 6, speziell auf * nix !!

Grüße
Werner

@WernerMairl Es gibt eine offene Diskussion über die Verwendung von 1.0 anstelle von 6.0.0 # 5165. Bitte gehen Sie zu diesem Thread und lesen und kommentieren.

Da Sie es verwendet haben und auf Dinge gestoßen sind, die Ihrer Meinung nach poliert werden müssen, überprüfen Sie bitte offene Probleme, um festzustellen, ob sie das betreffen, auf das Sie gestoßen sind. Wenn es ein offenes Problem gibt, stimmen Sie darüber ab oder kommentieren Sie es. Wenn nicht, öffnen Sie bitte ein neues Problem, damit es behoben werden kann. Einige von uns Community-Mitgliedern sind aktiv an der Behebung von Problemen mit niedrigerer Priorität beteiligt, und das Microsoft-Team hat hervorragende Arbeit geleistet, um Probleme mit höherer Priorität und schwierigeren Problemen zu lösen. Außerdem ist es nie zu spät, selbst Mitwirkender zu werden!

In Bezug auf die Problembeschreibung und die Änderungskommunikation stimme ich zu, dass die Kommunikation dieser Änderung verbessert werden konnte und warum dies notwendig war. Die Rollen verschiedener Personen in diesem Repo können etwas verwirrend sein, aber ich bin kein Teil des PowerShell-Teams, sondern nur ein Community-Mitarbeiter mit (im Wesentlichen) Forum-Moderationsrechten. Ich kann nicht für das PowerShell-Team sprechen, aber ich vermute, dass sie diese Tatsache selbst verstehen.

Zu ihrer Verteidigung ist dieser schwer zu kommunizieren. Die meisten Beschwerden scheinen auf das mangelnde Verständnis der Ähnlichkeiten und Unterschiede zwischen Windows PowerShell und PowerShell Core zurückzuführen zu sein. Um diese Änderung effektiv zu kommunizieren, hätten sie auch das, was im Blog-Artikel vom 14. Juli dargelegt wurde, erneut aufbereiten müssen. Selbst dann haben die Menschen immer noch Schwierigkeiten, durch die Ähnlichkeiten und Unterschiede zu navigieren. Ich denke, dass es einer ausführlichen Beschreibung bedarf, warum die Namensänderung vorgenommen wurde, die viele immer noch nicht lesen würden. Ich vermute, die Fackeln und Heugabeln wären gekommen, egal was passiert.

Nicht genau. Sie können Powershell unter Windows ausführen und Windows PowerShell herunterladen, dann Powersehll unter Linux ausführen und PowerShell Core herunterladen. Jetzt können Sie pwsh unter Windows oder Linux ausführen und PowerShell Core herunterladen. JETZT sind wir in dem Zustand, den Sie sich wünschen. wo wir uns nach wie vor in einem inkonsistenten Zustand befanden.

Ich verstehe, was du meinst, aber ich kontere, dass dies nicht das ist, was ich will. In meiner Aussage ist eine versteckte Annahme enthalten: Ich erwarte, dass PowerShell und PowerShell Core vollständig gleichwertig sind, solange ich gemeinsame Funktionen verwende. Bisher war dies in allen meinen Anwendungsfällen ohne Probleme.

@sandersaares Ich glaube, deine Erfahrung ist eine von Glück. Es passt sicherlich nicht zu meiner Erfahrung. Ich halte diese Annahme auch für gefährlich. Dies ist eine Hauptversion mit einer Menge dokumentierter Änderungen an einer völlig anderen zugrunde liegenden Plattform. Dies ist nicht wie bei früheren Hauptversionen von PowerShell mit nahezu 100% Abwärtskompatibilität.

Ich sehe einige Leute, die immer noch die falsche Annahme machen, dass die Änderung des ausführbaren Namens in erster Linie dazu diente, beim Tippen zu sparen. Ich kann sehen, wie die Leute diesen Eindruck bekommen haben, seit diese ursprüngliche Ausgabe, die für die PR verwendet wurde, mit einem Titel begann, der nach einem kürzeren Namen fragte.

Ich stimme zu, dass wir unsere Kommunikation verbessern können, da wir nicht erwarten sollten, dass jeder alle Kommentare liest, die der Ausschuss zu Entscheidungen macht. Besonders bei einem kontroversen wie diesem, bei dem die Zusammenfassung der Entscheidung leicht verloren geht.

Es scheint auch ein grundlegendes Missverständnis darüber zu bestehen, was PowerShell Core 6 ist, insbesondere in Bezug auf Windows PowerShell. Windows PowerShell 5.1 ist und bleibt die In-Box-Version von PowerShell unter Windows. Mein Team unterstützt es auch weiterhin bei Bedarf. Wir gehen davon aus, dass sich Kunden weiterhin so lange auf Windows PowerShell verlassen, wie dies erforderlich ist. Dies kann durchaus mindestens die nächsten 10 Jahre sein. Ich denke, es war erst vor kurzem, als die Downloads von WMF5.1 endlich die Downloads von WMF4.0 übertrafen.

PowerShell Core 6 ist die nächste Entwicklung von PowerShell, bei der es sich nicht nur um plattformübergreifende, sondern auch um Open Source handelt. Wie @markekraus feststellte, handelt es sich um eine wichtige Versionsänderung, die uns mehr Flexibilität beim Akzeptieren von Änderungen ermöglichte, die wir für Windows PowerShell niemals in Betracht ziehen würden. Beachten Sie auch, dass PowerShell Core 6 explizit so konzipiert ist, dass es nebeneinander funktioniert (nicht nur mit Windows PowerShell, sondern auch mit anderen Versionen von PSCore6). Wenn Sie powershell eingeben, sollte es keine Unklarheit darüber geben, was Sie unter Windows erhalten. Ich möchte hier nur darauf hinweisen, dass die Diskussion zwischen 6.0 und 1.0 bereits vor langer Zeit vor dem Börsengang stattgefunden hat und wahrscheinlich nicht wiedereröffnet wird.

@ SteveL-MSFT ein Blogbeitrag zur Namensänderung wäre gut. Es könnte den Haupttreiber für die Änderung des Namens anhand eines klaren Beispiels für das Problem unter Windows behandeln. Es wäre auch gut zu beschreiben, warum Posh und Psh den Schnitt nicht so gut gemacht haben.

Richten Sie "Powershell" möglicherweise als Alias ​​für pwsh beim Entpacken + Installieren ein. Dies hat gerade einen Build gebrochen, an dem ich ein paar Tage gearbeitet habe, bis ich dieses Problem aufgespürt habe.

Edit: unter Linux

@markekraus hat einen schönen Blog-Beitrag, der das Was und Warum erfasst:

https://get-powershellblog.blogspot.sg/2017/10/why-pwsh-was-chosen-for-powershell-core.html

Heute habe ich die erste Verwendung von pwsh auf SO hier gesehen, obwohl ich bezweifle, dass die Person über diesen Thread Bescheid weiß ...

Können wir eine offizielle Entscheidung über die Aussprache von pwsh treffen? Die PNG-Spezifikation enthält eine Aussprache in Abschnitt 1. Kann auch eine für PowerShell bereitstellen. Ich möchte keine weitere SCSI "scuzzy" / "sexy" Situation.

Sieht für mich wie "Poosh" aus.

@apjanke Die allgemein akzeptierte Aussprache von pwsh ist posh

Funktioniert bei mir. Danke für die offizielle Bestätigung!

Für alternative Aussprachen: [1]

  • _Pish Posh! _

  • _Poppyposh! _

  • _The Shell früher bekannt als PowerShell_ (_TSFKAP_ auf Georgisch )

  • _Die Shell, die es nicht wagt, ihren Namen auszusprechen (weil der Name ihrer ausführbaren Datei nicht aussprechbar ist) _ (von walisischen Sprechern bevorzugt).


[1] [Parodie.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen