Windows 10 (1703) - Powershell und Eingabeaufforderung im Kontextmenü
Hallo,
mit dem Creators-Update für Windows 10 verschwindet die Eingabeaufforderung aus dem Kontextmenü des Explorers ([Shift]+Rechtsklick) und statt dessen erscheint dort Powershell.
Nichts gegen PowerShell, aber die Eingabeaufforderung möchte ich dort nicht missen.
Ich möchte dort Beides zur Auswahl haben:
Da Windows 10 für die Bedienung per Touchscreen optimiert ist, lässt sich das ganz einfach einstellen.
(Der Satz ist irgendwo zwischen Ironie und Sarkasmus einzuordnen.)
Diese Einstellung muss, wie so viele andere auch, über die Registry vorgenommen werden.
Im Netz finden sich reichlich Seiten, die beschreiben welche Reg-Werte wie zu setzen sind, um das Kontextmenü diesbezüglich wuschgemäß einzustellen.
Ich weiß nicht mehr wo ich fündig wurde, ich wollte nur erwähnen, dass ich die Schlüssel nicht selbst erkundet habe.
Auf die relevanten Schlüssel haben Administratoren zunächst nur lesenden Zugriff und können das auch nicht ändern, da der Besitzer dieser Schlüssel "TrustedInstaller" ist.
Man muss daher zunächst den Besitz übernehmen, dann die Zugriffsrechte auf Vollzugriff für Administratoren erweitern und kann anschließend den Besitz an "TrustedInstaller" zurückgeben.
Danach ist man berechtigt die Werte als Administrator zu ändern.
Da es sich um sechs Schlüssel handelt ist diese Rechteänderung manuell eine elende Klickerei.
Um das zu vereinfachen machte ich mich auf die Suche und fand das Tool SetACL.exe. (Vielen Dank an Helge Klein)
Syntaktisch ist das Tool nicht intuitiv und mit nur wenigen Beispielen ausgestattet, was dazu führte, dass ich zunächst ein paar Fehler machte und ein paar unbeabsichtigte Ergebnisse erzielte, was der Anlass war, diesen Tipp zu verfassen.
Beispielsweise kann für die Besitzübername "Administratoren" als neuer Besitzer angegeben werden, aber auf englischen Systemen gibts diese Gruppe nicht, dort heißt sie "Administrators".
Um SetACL sprachunabhängig zu verwenden kann die Gruppe der lokalen Administratoren mit dem "Namen" "S-1-5-32-544" bezeichnet werden.
Benötigt wird
Vorgehensweise
Einschränkung
Anmerkungen
Erweiterung
Rechtsklick / [Shift]-Rechtsklick
PowerShell_und_CMD.cmd
PowerShell_und_CMD.reg
Zu Risiken und Nebenwirkungen fragen Sie Ihren Administrator.
Gruß Frank
mit dem Creators-Update für Windows 10 verschwindet die Eingabeaufforderung aus dem Kontextmenü des Explorers ([Shift]+Rechtsklick) und statt dessen erscheint dort Powershell.
Nichts gegen PowerShell, aber die Eingabeaufforderung möchte ich dort nicht missen.
Ich möchte dort Beides zur Auswahl haben:
- PowerShell-Fenster hier öffnen
- Eingabeaufforderung hier öffnen
Da Windows 10 für die Bedienung per Touchscreen optimiert ist, lässt sich das ganz einfach einstellen.
(Der Satz ist irgendwo zwischen Ironie und Sarkasmus einzuordnen.)
Diese Einstellung muss, wie so viele andere auch, über die Registry vorgenommen werden.
Im Netz finden sich reichlich Seiten, die beschreiben welche Reg-Werte wie zu setzen sind, um das Kontextmenü diesbezüglich wuschgemäß einzustellen.
Ich weiß nicht mehr wo ich fündig wurde, ich wollte nur erwähnen, dass ich die Schlüssel nicht selbst erkundet habe.
Auf die relevanten Schlüssel haben Administratoren zunächst nur lesenden Zugriff und können das auch nicht ändern, da der Besitzer dieser Schlüssel "TrustedInstaller" ist.
Man muss daher zunächst den Besitz übernehmen, dann die Zugriffsrechte auf Vollzugriff für Administratoren erweitern und kann anschließend den Besitz an "TrustedInstaller" zurückgeben.
Danach ist man berechtigt die Werte als Administrator zu ändern.
Da es sich um sechs Schlüssel handelt ist diese Rechteänderung manuell eine elende Klickerei.
Um das zu vereinfachen machte ich mich auf die Suche und fand das Tool SetACL.exe. (Vielen Dank an Helge Klein)
Syntaktisch ist das Tool nicht intuitiv und mit nur wenigen Beispielen ausgestattet, was dazu führte, dass ich zunächst ein paar Fehler machte und ein paar unbeabsichtigte Ergebnisse erzielte, was der Anlass war, diesen Tipp zu verfassen.
Beispielsweise kann für die Besitzübername "Administratoren" als neuer Besitzer angegeben werden, aber auf englischen Systemen gibts diese Gruppe nicht, dort heißt sie "Administrators".
Um SetACL sprachunabhängig zu verwenden kann die Gruppe der lokalen Administratoren mit dem "Namen" "S-1-5-32-544" bezeichnet werden.
Benötigt wird
- SetACL.exe (Download)
- PowerShell_und_CMD.cmd (Copy/Paste)
- PowerShell_und_CMD.reg (Copy/Paste)
Vorgehensweise
- SetACL.exe, PowerShell_und_CMD.cmd und PowerShell_und_CMD.reg in einen Ordner kopieren
- PowerShell_und_CMD.reg anpassen, falls man PowerShell und CMD nicht in jeweils allen drei "Situationen" haben möchte
- PowerShell_und_CMD.cmd ausführen
- Fertig
Einschränkung
- Ob diese Methode auch bei Domänenmitglied-Rechnern funktioniert sollte vorab geprüft werden.
- Getestet und in Benutzung habe ich es nur mit Arbeitsgruppenrechnern.
- Nach Ausführung der CMD bleibt der Vollzugriff auf die Schlüssel für (lokale) Administratoren erhalten. Wenn man den urprünglichen Zustand (nur Lesen) wiederherstellen möchte, muss man in der CMD die vierte SetACL.exe-Zeile einkommentieren (REM entfernen).
Anmerkungen
- Die Umleitungen nach null und con sind nur Kosmetik und nicht funktionell relevant, sie können also entfernt oder angepasst werden.
- Der Import der Reg-Datei mittels "regedit /s" (s für silent) gibt keine eventuellen Fehler aus, auch nicht über errorlevel. Um eine Kontrolle zu erhalten kann man das /s entfernen, muss aber dann den Import per Mausklick bestätigen oder man strickt die CMD komplett auf reg.exe um, was mir aber in der Relation zum Nutzen zu mühselig war.
Erweiterung
- Die CMD kann mit weiteren Regschlüssel und weiteren Regdateien ergänzt werden, um weitere Einstellungen/Änderungen vornehmenzulassen.
Rechtsklick / [Shift]-Rechtsklick
- das Vorhandensein oder Nichtvorhandensein der leeren Zeichenfolge namens "Extended" entscheidet darüber ob der zugehörige Eintrag nur mit zusätzlicher [Shift]-Taste oder auch ohne angezeigt wird.
PowerShell_und_CMD.cmd
@echo off
:: Berechtigungen setzen
echo Berechtigungen setzen...
set gruppe=S-1-5-32-544
set vorbesitzer=NT SERVICE\TrustedInstaller
set regkey=HKCR\Directory\Background\shell\cmd
call :aendern
set regkey=HKCR\Directory\Background\shell\Powershell
call :aendern
set regkey=HKCR\Directory\shell\cmd
call :aendern
set regkey=HKCR\Directory\shell\Powershell
call :aendern
set regkey=HKCR\Drive\shell\cmd
call :aendern
set regkey=HKCR\Drive\shell\Powershell
call :aendern
:: Regdatei importieren
echo Regdatei importieren...
regedit /s "PowerShell_und_CMD.reg"
exit /b
REM **********************************************
:: Subroutine
:aendern
SetACL.exe -on "%regkey%" -ot reg -actn setowner -ownr "n:%gruppe%" 1>nul 2>con
SetACL.exe -on "%regkey%" -ot reg -actn ace -ace "n:%gruppe%;p:full" 1>nul 2>con
SetACL.exe -on "%regkey%" -ot reg -actn setowner -ownr "n:%vorbesitzer%" 1>nul 2>con
REM SetACL.exe -on "%regkey%" -ot reg -actn ace -ace "n:%gruppe%;p:read" 1>nul 2>con
goto :eof
REM **********************************************
PowerShell_und_CMD.reg
Windows Registry Editor Version 5.00
; ----------------------------------
; Eingabeaufforderung im Kontextmenü
; ----------------------------------
; Bei Rechtsklick auf Ordner
[HKEY_CLASSES_ROOT\Directory\shell\cmd]
; anzeigen
"HideBasedOnVelocityId"=-
"ShowBasedOnVelocityId"=dword:00639bc8
; nicht anzeigen
;"HideBasedOnVelocityId"=dword:00639bc8
;"ShowBasedOnVelocityId"=-
; nur mit Shift anzeigen (default)
"Extended"=""
; auch ohne Shift anzeigen
;"Extended"=-
; Bei Rechtsklick auf freien Bereich
[HKEY_CLASSES_ROOT\Directory\Background\shell\cmd]
; anzeigen
"HideBasedOnVelocityId"=-
"ShowBasedOnVelocityId"=dword:00639bc8
; nicht anzeigen
;"HideBasedOnVelocityId"=dword:00639bc8
;"ShowBasedOnVelocityId"=-
; nur mit Shift anzeigen (default)
"Extended"=""
; auch ohne Shift anzeigen
;"Extended"=-
; Bei Rechtsklick auf Laufwerk
[HKEY_CLASSES_ROOT\Drive\shell\cmd]
; anzeigen
"HideBasedOnVelocityId"=-
"ShowBasedOnVelocityId"=dword:00639bc8
; nicht anzeigen
;"HideBasedOnVelocityId"=dword:00639bc8
;"ShowBasedOnVelocityId"=-
; nur mit Shift anzeigen (default)
"Extended"=""
; auch ohne Shift anzeigen
;"Extended"=-
; -------------------------
; Powershell im Kontextmenü
; -------------------------
; Bei Rechtsklick auf Ordner
[HKEY_CLASSES_ROOT\Directory\shell\Powershell]
; anzeigen
"HideBasedOnVelocityId"=-
"ShowBasedOnVelocityId"=dword:006698a6
; nicht anzeigen
;"HideBasedOnVelocityId"=dword:006698a6
;"ShowBasedOnVelocityId"=-
; nur mit Shift anzeigen (default)
"Extended"=""
; auch ohne Shift anzeigen
;"Extended"=-
; Bei Rechtsklick auf freien Bereich
[HKEY_CLASSES_ROOT\Directory\Background\shell\Powershell]
; anzeigen
"HideBasedOnVelocityId"=-
"ShowBasedOnVelocityId"=dword:00639bc8
; nicht anzeigen
;"HideBasedOnVelocityId"=dword:00639bc8
;"ShowBasedOnVelocityId"=-
; nur mit Shift anzeigen (default)
"Extended"=""
; auch ohne Shift anzeigen
;"Extended"=-
; Bei Rechtsklick auf Laufwerk
[HKEY_CLASSES_ROOT\Drive\shell\Powershell]
; anzeigen
"HideBasedOnVelocityId"=-
"ShowBasedOnVelocityId"=dword:006698a6
; nicht anzeigen
;"HideBasedOnVelocityId"=dword:006698a6
;"ShowBasedOnVelocityId"=-
; nur mit Shift anzeigen (default)
"Extended"=""
; auch ohne Shift anzeigen
;"Extended"=-
Zu Risiken und Nebenwirkungen fragen Sie Ihren Administrator.
Gruß Frank
Please also mark the comments that contributed to the solution of the article
Content-ID: 339530
Url: https://administrator.de/contentid/339530
Printed on: October 10, 2024 at 04:10 o'clock
21 Comments
Latest comment
Hi,
das hast du zwar sehr schön gemacht, aber ginge das nicht auch einfacher mit dem Erstellen einer Verknüpfung auf %COMSPEC%?
Das ist eine Frage, keine Kritik!
Gruß
das hast du zwar sehr schön gemacht, aber ginge das nicht auch einfacher mit dem Erstellen einer Verknüpfung auf %COMSPEC%?
Das ist eine Frage, keine Kritik!
Gruß
Hi, Pedant,
dir ist ja bekannt, dass ich mit Windows 10 nichts am Hut habe. Ich glaube aber gelesen zu haben, dass man da was hinzufügen kann. Vielleicht gibt's im Kontextmenu sowas wie Senden an ?
BTW: Hat Windows 10 keinen Desktop mehr? Die Verknüpfung könntest du doch dort ablegen, dann hast du gleichzeitig die Möglichkeit, sie als User oder als Administrator zu starten.
Gruß
dir ist ja bekannt, dass ich mit Windows 10 nichts am Hut habe. Ich glaube aber gelesen zu haben, dass man da was hinzufügen kann. Vielleicht gibt's im Kontextmenu sowas wie Senden an ?
BTW: Hat Windows 10 keinen Desktop mehr? Die Verknüpfung könntest du doch dort ablegen, dann hast du gleichzeitig die Möglichkeit, sie als User oder als Administrator zu starten.
Gruß
Hi,
ok, danke fürs Feedback.
Gruß
ok, danke fürs Feedback.
Gruß
Wo ist mein Verständnis-Problem?
Das gilt nur für das Kontextmenü des Startmenüs, nicht für die Kontextmenüs des Explorers.Gruß bibersbaum
Zitat von @Pedant:
Logisch weil dir ein Alias für Get-ChildItem ist welches diesen Parameter nicht besitzt.C:\>dir /bLogsPerfLogsProgram FilesProgram Files (x86)TempUsersWindows
PS C:\>dir /bdir : Der Pfad "C:\b" kann nicht gefunden werden, da er nicht vorhanden ist.
Einfach vorher mal "cmd" eingeben :-P oder "Start cmd"
Gruß Frank
PS: Wenn ich nach einem Rechnerneustart die PS aufrufen benötigt sie gut 10 Sekunden bis zum Prompt.
Wow hier ist das innerhalb von 1-2 Sekunden betriebsbereit, was hast du denn für ne lahme Kiste ?!PS: Wenn ich nach einem Rechnerneustart die PS aufrufen benötigt sie gut 10 Sekunden bis zum Prompt.
Batch is so langsam aber sicher tot ... Irgendwann muss man mal loslassen und sich neuen Dingen stellen
Moin Frank.
Alles richtig, was Du da schreibst. Es ist ja auch für manchen äußerst sinnvoll, eine cmd dort aufmachen zu können per Kontextmenüeintrag. Und ob dass nun wenige cmd-Kommandos sind, die der Powershell fehlen, oder viele, dass entscheidet wohl auch das Nutzerverhalten, da muss ich dir Recht geben.
Der Zweck meines Hinweises sollte sein, keine Brücken zum Alten hin zu bauen, bevor man sich nicht mit dem Neuen auseinandergesetzt hat.
Das hast Du nun getan - get-alias kann man vergleichen mit dem, was in der cmd von help ausgespuckt wird und kann somit sogar programmatisch auflisten, was auf der Powershell nicht/nicht in der gleichen Weise gehen wird. Die Executables, die Admins nun auch hin und wieder nutzen, wie ping.exe, net.exe, manage-bde.exe, netsh.exe, findstr.exe, icacls.exe, fsutil.exe... funktionieren natürlich ebenso auf der Powershell in der gleichen Weise.
Für deinen Tipp (um ihn simpler zu halten) würde ich folgendes Regfile empfehlen, das schon seit Jahren dazu im Netz kursiert:
Alles richtig, was Du da schreibst. Es ist ja auch für manchen äußerst sinnvoll, eine cmd dort aufmachen zu können per Kontextmenüeintrag. Und ob dass nun wenige cmd-Kommandos sind, die der Powershell fehlen, oder viele, dass entscheidet wohl auch das Nutzerverhalten, da muss ich dir Recht geben.
Der Zweck meines Hinweises sollte sein, keine Brücken zum Alten hin zu bauen, bevor man sich nicht mit dem Neuen auseinandergesetzt hat.
Das hast Du nun getan - get-alias kann man vergleichen mit dem, was in der cmd von help ausgespuckt wird und kann somit sogar programmatisch auflisten, was auf der Powershell nicht/nicht in der gleichen Weise gehen wird. Die Executables, die Admins nun auch hin und wieder nutzen, wie ping.exe, net.exe, manage-bde.exe, netsh.exe, findstr.exe, icacls.exe, fsutil.exe... funktionieren natürlich ebenso auf der Powershell in der gleichen Weise.
Für deinen Tipp (um ihn simpler zu halten) würde ich folgendes Regfile empfehlen, das schon seit Jahren dazu im Netz kursiert:
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\Directory\shell\OpenNew]
@="Command Prompt"
[HKEY_CLASSES_ROOT\Directory\shell\OpenNew\Command]
@="cmd.exe /k cd %1"
[HKEY_CLASSES_ROOT\Drive\shell\OpenNew]
@="Command Prompt"
[HKEY_CLASSES_ROOT\Drive\shell\OpenNew\Command]
@="cmd.exe /k cd %1"
Moin,
gelöscht, hatte den Nachtrag im Eingangsbeitrag nicht gelesen.
Gruß
gelöscht, hatte den Nachtrag im Eingangsbeitrag nicht gelesen.
Gruß