Powershell Script zur Konfiguration Ansichtsoptionen des Explorers
Hallo Admins,
ich hoffe Ihr könnt in klimatisierten Räumen arbeiten, mir läuft hier leider die Suppe runter !
Aber jetzt zu meinem Problem: Ich möchte alle Ansichtsoptionen des Explorers für Standalone Geräte per Powershell Script konfigurieren.
Meine Einträge sehen z.B. für "Immer Menues anzeigen wird aktiviert" folgendermassen aus:
Dies klappt auch grösstenteils, aber bei ein paar Einstellungen benötige ich Eure Hilfe.
Zum einen stellt sich die Frage habe ich hier die richtigen Registry Einträge recherchiert bzw. mit RegShot aufgezeichnet?
Problem 1. und 4. kann ich mir gar nicht erklären!
1. Problem: Erweiterungen bei bekannten Dateitypen ausblenden wird aktiviert:
Markiere ich die Zeile im WindowsPowershell ISE (als Administrator gestartet) und drücke F8 (Auswahl ausführen) ist der Haken gesetzt und die Erweiterungen werden mir im Explorer auch angezeigt!
Führe ich aber das gesammte Script aus, wird der Registry Eintrag nicht gesetzt (auch nach Neustart nicht!)
2. Problem: Kontrollkaestchen zur Auswahl von Elementen verwenden wird aktiviert:
Der Regístry Eintrag wird gesetzt, aber der Haken im Menü wird nicht gesetzt und funktioniert natürlich auch nicht.
3. Problem: Ausgeblendete Dateien, Ordner oder Laufwerke anzeigen wird deaktiviert:
Der Regístry Eintrag wird gesetzt, aber der Haken im Menü wird nicht gesetzt und funktioniert natürlich auch nicht.
4. Problem: Naviagtionsbereich: Bibliotheken anzeigen wird deaktiviert:
Hier bekomme ich folgende Fehlermeldung:
Set-ItemProperty : Es wurde kein Parameter gefunden, der dem Parameternamen "Type" entspricht.
Da er sonst aber an daran nichts auszusetzten hat gehe ich davon aus das das Problem die Klammern {} sind.
Muss ich diese maskieren ?
Frohes Schaffen und Schwitzen
Potshock
ich hoffe Ihr könnt in klimatisierten Räumen arbeiten, mir läuft hier leider die Suppe runter !
Aber jetzt zu meinem Problem: Ich möchte alle Ansichtsoptionen des Explorers für Standalone Geräte per Powershell Script konfigurieren.
Meine Einträge sehen z.B. für "Immer Menues anzeigen wird aktiviert" folgendermassen aus:
Set-ItemProperty -Type DWord -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name "AlwaysShowMenus" -value "1"
Zum einen stellt sich die Frage habe ich hier die richtigen Registry Einträge recherchiert bzw. mit RegShot aufgezeichnet?
Problem 1. und 4. kann ich mir gar nicht erklären!
1. Problem: Erweiterungen bei bekannten Dateitypen ausblenden wird aktiviert:
Markiere ich die Zeile im WindowsPowershell ISE (als Administrator gestartet) und drücke F8 (Auswahl ausführen) ist der Haken gesetzt und die Erweiterungen werden mir im Explorer auch angezeigt!
Führe ich aber das gesammte Script aus, wird der Registry Eintrag nicht gesetzt (auch nach Neustart nicht!)
Set-ItemProperty -Type DWord -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name "HideFileExt" -value "0"
2. Problem: Kontrollkaestchen zur Auswahl von Elementen verwenden wird aktiviert:
Der Regístry Eintrag wird gesetzt, aber der Haken im Menü wird nicht gesetzt und funktioniert natürlich auch nicht.
Set-ItemProperty -Type DWord -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name "AutoCheckSelect" -value "1"
3. Problem: Ausgeblendete Dateien, Ordner oder Laufwerke anzeigen wird deaktiviert:
Der Regístry Eintrag wird gesetzt, aber der Haken im Menü wird nicht gesetzt und funktioniert natürlich auch nicht.
Set-ItemProperty -Type DWord -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name "Hidden" -value "1"
4. Problem: Naviagtionsbereich: Bibliotheken anzeigen wird deaktiviert:
Set-ItemProperty -Type DWord -Path "HKCR:\CLSID\{031E4825-7B94-4dc3-B131-E946B44C8DD5}" -Name "System.IsPinnedToNameSpaceTree" -value "1"
Set-ItemProperty : Es wurde kein Parameter gefunden, der dem Parameternamen "Type" entspricht.
Da er sonst aber an daran nichts auszusetzten hat gehe ich davon aus das das Problem die Klammern {} sind.
Muss ich diese maskieren ?
Frohes Schaffen und Schwitzen
Potshock
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 466111
Url: https://administrator.de/contentid/466111
Ausgedruckt am: 22.11.2024 um 05:11 Uhr
6 Kommentare
Neuester Kommentar
Hi,
E.
Zitat von @potshock:
1. Problem: Erweiterungen bei bekannten Dateitypen ausblenden wird aktiviert:
Markiere ich die Zeile im WindowsPowershell ISE (als Administrator gestartet) und drücke F8 (Auswahl ausführen) ist der Haken gesetzt und die Erweiterungen werden mir im Explorer auch angezeigt!
Führe ich aber das gesammte Script aus, wird der Registry Eintrag nicht gesetzt (auch nach Neustart nicht!)
Wir kennen jetzt das ganze Script nicht, aber es könnte sein, dass die Script-Ausführung schon davor abbricht, z.B. wegen Fehler im Try-Catch-Block oder wegen einem "break".1. Problem: Erweiterungen bei bekannten Dateitypen ausblenden wird aktiviert:
Markiere ich die Zeile im WindowsPowershell ISE (als Administrator gestartet) und drücke F8 (Auswahl ausführen) ist der Haken gesetzt und die Erweiterungen werden mir im Explorer auch angezeigt!
Führe ich aber das gesammte Script aus, wird der Registry Eintrag nicht gesetzt (auch nach Neustart nicht!)
Der Regístry Eintrag wird gesetzt, aber der Haken im Menü wird nicht gesetzt und funktioniert natürlich auch nicht.
Das liegt höchstwahrscheinlich daran, dass dafür der Prozess "explorer.exe" neu gestartet werden muss.E.
Servus,
da hat wohl wieder mal die Hitze zugeschlagen, alles offensichtlich Flüchtigkeitsfehler
Grüße Uwe
da hat wohl wieder mal die Hitze zugeschlagen, alles offensichtlich Flüchtigkeitsfehler
Set-ItemProperty -Type DWord -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name "useCheckBoxes" -value "1"
Falschen Namen verwendet muss heißen "AutoCheckSelect", im Skript steht es anders als in deinem ersten Post.Set-ItemProperty -Type DWord -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name "Hidden" -value "0"
Statt 1 wurde 0 im Skript gesetzt, im initialen Post ebenfalls anders als im Skript.Set-ItemProperty : Es wurde kein Parameter gefunden, der dem Parameternamen "Type" entspricht.
HKCR ist per Default nicht als PSDrive gemappt deswegen kann das CMDLet nicht wissen das es den Type Parameter verwenden darf, weil es den Typ des Pfades (Registry/Dateisystem) nicht ermitteln kann. Einbinden als Laufwerk HKCR:\ lässt sich der Schlüssel soNew-PSDrive -PSProvider Registry -Name HKCR -Root HKEY_CLASSES_ROOT
Grüße Uwe
Nöp, ganz so einfach ist das dann doch nicht . Du musst das Privilege-Token anpassen, dann im Key erst die OwnerShip übernehmen, denn der TrusedInstaller ist der Besitzer des Keys, dann Vollzugriff für Administratoren setzen, dann Wert ändern und zwar als Integer und nicht als String, anschließend noch aufräumen und hinzugefügte Berechtigungen und Ownership des Keys wieder auf den Ursprungszustand zurücksetzen.
# mount HKCR
New-PSDrive -PSProvider Registry -Name HKCR -Root HKEY_CLASSES_ROOT -EA SilentlyContinue | out-null
# key to work on
$key = 'HKCR:\CLSID\{031E4825-7B94-4dc3-B131-E946B44C8DD5}\ShellFolder'
# get only subkey value
$subkey = split-path $key -NoQualifier
# administrators sid
$sid = [System.Security.Principal.SecurityIdentifier]'S-1-5-32-544'
# Adjust Privilege Token
$nttools = Add-Type -Member '[DllImport("ntdll.dll")] public static extern int RtlAdjustPrivilege(ulong a, bool b, bool c, ref bool d);' -Name nttools -PassThru
9,17,18 | %{$nttools::RtlAdjustPrivilege($_, 1, 0, [ref]0) | out-null}
# set ownership
$regKey = [Microsoft.Win32.Registry]::ClassesRoot.OpenSubKey($subkey, 'ReadWriteSubTree', 'TakeOwnership')
$acl = New-Object System.Security.AccessControl.RegistrySecurity
$acl.SetOwner($sid)
$regKey.SetAccessControl($acl)
### change permissions
$regKey = [Microsoft.Win32.Registry]::ClassesRoot.OpenSubKey($subkey, 'ReadWriteSubTree', 'ChangePermissions')
$rule = New-Object System.Security.AccessControl.RegistryAccessRule($sid, 'FullControl','Allow')
$acl.SetAccessRule($rule)
$regKey.SetAccessControl($acl)
$regKey.Close()
# change registry value
Set-ItemProperty -Type DWord -Path $key -Name "Attributes" -value 0xb090010d
# Remove permissions and reset ownership to TrustedInstaller
$acl = Get-ACL -Path $key
$acl.RemoveAccessRule(($acl.GetAccessRules($true,$false,[System.Security.Principal.SecurityIdentifier]) | ?{$_.IdentityReference -eq 'S-1-5-32-544'})) | out-null
$acl.SetOwner([System.Security.Principal.SecurityIdentifier]'S-1-5-80-956008885-3418522649-1831038044-1853292631-2271478464')
Set-ACL $key $acl
# unmount psdrive
Remove-PSDrive -Name HKCR -Force