stoepsu77
Goto Top

GPO Powershell oder Batch mit Adminrechte ausführen

Hallo Zusammen

ich bin leicht am verzweifeln

ich möchte über eine GPO den Registry Eintrag des Startlayouts ändern.
und zwar via Batch oder PowerShell.
das Script soll bei jeder Anmeldung mit Adminrechten ausgeführt werden.
Darin befindet sich eine Abfrage welches Layout im Moment in der Registry ist und ändert das Startlayout dann.
Also Login User LayoutA wird geändert auf LayoutB dann wieder LayoutA usw.
Die Scripts funktionieren einwandfrei, wenn der user der sich am PC anmeldet Admin-Rechte hat. Aber leider nicht wenn er nur Benutzerrechte hat.

Ich hab es schon versucht als Anmeldescript unter Benutzer und auch Computerkonfiguration zu setzen. geht nicht
Ebenfalls habe ich versucht einen geplanten Task zu machen. Ebenfalls unter Benutzer und auch Computerkonfiguration getestet. geht nicht.
Wie gesagt mache ich die Tests mit einem User mit Admin-Rechten ist alles bestens.

Was muss ich machen, damit das auch für Benutzer ohne Adminrechte funktioniert.
bei den Tasks habe ich auch als ausführender Benutzer ein Admin Konto angegeben und "mit höchsten Berechtigungen ausführen" angegeben.

Hilft alles nichts.
Kann mir jemand helfen?

Es handelt sich um den Schlüssel="HKLM\Software\Policies\Microsoft\Windows\Explorer"

Vielen Dank
BeMe

Content-Key: 605028

Url: https://administrator.de/contentid/605028

Ausgedruckt am: 28.03.2024 um 12:03 Uhr

Mitglied: NordicMike
NordicMike 16.09.2020 um 13:12:14 Uhr
Goto Top
Und wenn du den Schlüssel direkt in die GPO schreibst, oder Shell?

Computerkonfiguration ->Einstellungen->Windows-Einstellungen->Registrierung
Mitglied: support-m
support-m 16.09.2020 um 13:12:26 Uhr
Goto Top
Zitat von @stoepsu77:
Darin befindet sich eine Abfrage welches Layout im Moment in der Registry ist und ändert das Startlayout dann.
Also Login User LayoutA wird geändert auf LayoutB dann wieder LayoutA usw.

Hi,
da muss ich doch auch mal fragen, welchen Sinn hat das? Was willst du damit bewerkstelligen?

MfG
Mitglied: NordicMike
NordicMike 16.09.2020 um 13:14:29 Uhr
Goto Top
Falls es Benutzerabhängig sein soll:

Benutzerkonfiguration ->Einstellungen->Windows-Einstellungen->Registrierung
Aber dann hat HKLM keinen Sinn gemacht.
Mitglied: Doskias
Doskias 16.09.2020 um 14:40:23 Uhr
Goto Top
Moin,

ich bin stark am zweifeln nach der Sinnhaftigkeit deines Vorgehens. So wie ich es verstehe soll abwechselnd zwischen zwei Layouts gewechselt werden. Wie schon gefragt: Warum?

Ansonsten gilt: Es ist schwer bei einem Skriptfehler zu helfen, wenn man das Skript und den Aufruf nicht kennt. Meine Schätzung ins blaue lautet also wie folgt:

Du hast ein Skript geschrieben und bist vorbildlich. Also hast du es irgendwo auf dem Server und/oder deinem privaten Laufwerk gespeichert. Rufst du es nun mit deinem User auf geht es. Führst du es als geplanten Task als Administrator aus, dann geht es nicht. Hast du vielleicht im geplanten Task mit einem Laufwerksmapping gearbeitet, welches der Administrator nicht hat?

Gruß
Doskias
Mitglied: stoepsu77
stoepsu77 16.09.2020 um 15:14:24 Uhr
Goto Top
Danke für Eure Antworten.
Ich glaube wir verstehen uns nicht.

ich könnte das Startlayout natürlich direkt in der GPO angeben, ja.
Ebenfalls einen Regeintrag machen, ja. Das hilft aber nicht.
das Startlayout soll wechseln.
Der Hintergrund ist, dass wenn sich ein User nicht an seinem Gerät sondern an einem anderen Gerät anmeldet, bekommt der das Servergespeicherte Profil. Da Win 10 aber die Profile nicht mehr nur im Roaming Teil hat, zerreisst es jedes mal das Startmenü. Meist nur die Kacheln.
Wenn ich da nun aber das Startlayout hinterlege, welches an einem anderen Ort liegt, o Wunder ist das Startmenü wieder heil.
Das kann ich aber nicht bei jedem User von Hand machen. Also wollte ich das automatisieren.

@Doskias
Das oder die Script sind *.cmd und/oder *.ps1. Beide funktionieren über die GPO, wenn ich mich an einem PC mit Administrations Rechten anmelde.
Meinem Testuser habe ich Adminrechte vergeben und es hat funktioniert.
Es funktioniert nur nicht als Benutzer ohne Adminrechte.

Das oder die Scripts (egal welches am Ende eingesetzt wird) ist einerseits getestet, wenn sie unter SYSvol abgelegt sind wie alle anderen Scripts auch und beim Versuch über geplanter Task habe ich den Versuch ebenfalls gemacht wenn das Script Lokal auf dem PC ist.
Ich habe das Script ganz einfach unter Computerkonfiguration - Richtlinien - Windows-Einstellungen - Skripts - Start reingemacht. Bei PowerShell weiss ich nicht, ob es noch einen Parameter bräuchte.

Wie schon versucht zu erklären. User mit Adminrechten funktioniert es. User ohne Adminrechte nicht.
ich hatte eigentlich gemeint, dass wenn ein Script unter Computerkonfiguration liegt immer mit Adminrechten ausgeführt wird. scheinbar nicht.

Am liebsten hätte ich das ganze natürlich dann unter Benutzerkonfig. Aber da dieser Teil vom User ja schon in use ist, wenn die GPO greift, wird das wohl nicht funktionieren.

Gibt es noch eine andere Möglichkeit eine cmd oder ps1 über GPO auszuführen, wo das dann sicher mit Adminrechten geht ausser eben beim Start oder via Task?
Oder ich hab beim geplanten Task einen Fehler drin?
screen shot 09-16-20 at 03.06 pm 001
screen shot 09-16-20 at 03.06 pm
screen shot 09-16-20 at 03.05 pm
Mitglied: TK1987
TK1987 16.09.2020 aktualisiert um 15:40:25 Uhr
Goto Top
Moin,

wie @NordicMike schon erwähnt hat: Schlüssel die unter HKLM liegen gelten Benutzerübergreifend für alle Benutzer des Rechners - und benötigen daher Adminrechte.
Wenn du den gleichen Schlüssel, statt unter HKLM unter HKCU erstellst (HKEY_CURRENT_USER = gilt nur für den aktuell angemeldeten User), sollte das auch ohne Adminrechte funktionieren.

Gruß Thomas
Mitglied: stoepsu77
stoepsu77 16.09.2020 um 16:17:37 Uhr
Goto Top
danke
das habe ich am Anhang so gehabt.
Der Schlüssel unter HKCU ist aber ebenfalls gesperrt für Benutzer.
ich kann den auch manuell nicht als Benutzer ändern.
das Problem bleibt das selbe.
Ich hätte am liebsten auch den Schlüssel unter HKCU. Aber wie gesagt, ohne Adminrechte geht das nicht.
Als Admin ausgeführt ist dann der Schlüssel unter dem falschen User geändert.
Dem User Admin Rechte geben ist keine Option.
Deshalb bin ich auf den Compibezogenen Schlüssel ausgewichen.
Mitglied: support-m
support-m 16.09.2020 um 16:30:19 Uhr
Goto Top
Zitat von @stoepsu77:

danke
das habe ich am Anhang so gehabt.
Der Schlüssel unter HKCU ist aber ebenfalls gesperrt für Benutzer.
ich kann den auch manuell nicht als Benutzer ändern.

Hi,
dann habt ihr da aber ein Konfigurationsproblem, oder ist das gewollt? Als User kann ich unter HKCU in der Regel nach Belieben Einträge löschen und hinzufügen, ist ja der Sinn davon.

MfG
Mitglied: stoepsu77
stoepsu77 16.09.2020 um 16:55:18 Uhr
Goto Top
ja schon nur den Schlüssel
HKCU\Software\Policies\Microsoft\Windows\Explorer - StartLayoutFile
eben nicht.
Das wird auch bei Dir nicht als normaler User funktionieren. Nur als Admin
Mitglied: support-m
support-m 16.09.2020 aktualisiert um 17:25:47 Uhr
Goto Top
Zitat von @stoepsu77:

ja schon nur den Schlüssel
HKCU\Software\Policies\Microsoft\Windows\Explorer - StartLayoutFile
eben nicht.
Das wird auch bei Dir nicht als normaler User funktionieren. Nur als Admin
Hm, ja, stimmt, das wusste ich nicht.


Zitat von @stoepsu77:

Der Hintergrund ist, dass wenn sich ein User nicht an seinem Gerät sondern an einem anderen Gerät anmeldet, bekommt der das Servergespeicherte Profil. Da Win 10 aber die Profile nicht mehr nur im Roaming Teil hat, zerreisst es jedes mal das Startmenü. Meist nur die Kacheln.
Wenn ich da nun aber das Startlayout hinterlege, welches an einem anderen Ort liegt, o Wunder ist das Startmenü wieder heil.
Das kann ich aber nicht bei jedem User von Hand machen. Also wollte ich das automatisieren.
Ich glaube, ich verstehe es aber immer noch nicht. Wieso unterscheidest du zwischen "seinem Gerät" und "servergespeichertes Profil"? Bekommt er auf "seinem Gerät" nicht auch das servergespeicherte Profil?
Wieso muss dieser "Switch" dabei sein, reicht es nicht, wenn dem Benutzer generell der Pfad zur StartLayoutFile hinterlegt wird?

Ich fürchte, weiter kann ich nicht helfen, sorry.

MfG
Mitglied: erikro
erikro 16.09.2020 um 21:24:51 Uhr
Goto Top
Moin,

mach mal die Kuller in "Unabhängig von der Benutzeranmeldung ausführen". Dann führt er es auch aus, wenn sich ein beliebiger User anmeldet. Sonst nur dann, wenn sich der Benutzer anmeldet, unter dessen Rechten das ausgeführt wird. Hier also Admin.

hth

Erik
Mitglied: Doskias
Doskias 17.09.2020 um 07:38:34 Uhr
Goto Top
Moin.

Da kommen wir der Sache doch nun schon näher, was du überhaupt willst

ich könnte das Startlayout natürlich direkt in der GPO angeben, ja.
was spricht dagegen?

Gibt es noch eine andere Möglichkeit eine cmd oder ps1 über GPO auszuführen, wo das dann sicher mit Adminrechten geht ausser eben beim Start oder via Task?
ja gibt es

Für Maschine: https://gpsearch.azurewebsites.net/#10868
Für User: https://gpsearch.azurewebsites.net/#10695

Da steht alles drin was du wissen musst. face-smile

Wenn ich deine Anforderung richtig verstanden habe:
Beim Abmelden via Export-StartLayout die XML-Datei in einen vom benutzerabhängigen Serverpfad speichern.
In der GPO \\Server\Share\Layout.xml als eben diesen benutzerabhängigen Serverpfad angeben.

Effekt: Beim Abmelden wird das Layout exportiert, beim Anmelden wird es importiert. Wenn ich dich richtig verstanden habe, sollte dir das weiterhelfen.

Gruß
Doskias
Mitglied: stoepsu77
stoepsu77 17.09.2020 um 08:22:06 Uhr
Goto Top
@support-it

Es geht lediglich darum das Startmenü mit den Kacheln richtig anzuzeigen.
Wenn Du Dich als User mit einem servergespeicherten Profil (ganz normal wie vor Win10) an mehreren PCs im Netz anmeldest wird immer das Servergespeicherte Profil geladen inkl. dem in der GPO angegebenen Startlayout unter "Startmenü und Taskleiste"
Nur in der Praxis bekommen die User zwar den Roaming Bereich und das Startlayout geliefert und trotzdem zerreist es an einem zweit oder dritt PC das Startmenü.
Also sobald du dich an einem andern PC anmeldest.
Beispiel:
Person 1 hat einen PC zugeteilt bekommen PC 1 (Startmenü und Layout bestens)
Person 1 muss aber nun in einem anderen Büro arbeiten und meldet sich an PC 2 an. -er bekommt das bereits bestehende servergespeicherte Profil und das GPO Startlayout. Startmenü verschossen. keine oder nur wenige Kacheln. Programmliste meist ebenfalls nicht gut.
Das kann man vermeiden, wenn das selbe Startlayout.xml nicht fix hinterlegt ist. Sondern der Name des Layouts sowie der Speicherort ändert. Inhalt ist der selbe.
Warum das klappt, keine Ahnung. Aber so repariere ich im Moment die zerschossenen Startmenüs.
Bei 450 Usern ist das aber mühsam und im Moment Coronabedingt müssen die Mitarbeitenden oft PC wechseln.
Also sollte es automatisiert ablaufen.
Person 1 an PC 1 = LayoutA
Person 1 an PC 2 = LayoutB
Person 1 an PC 3 = LayoutA
Person 1 an PC 1 = LayoutB (den vorhandenen Profilen auf den PCs passiert nichts und bleiben sauber)


@Doskias
Danke für Deine Links.
Damit habe ich gearbeitet, bevor mir bewusst wurde, dass das Layout immer wechseln muss.
Das kann ich da ja nicht automatisieren. Oder wie hast Du das gemeint.


@erikro
Danke für den Hinweis.
Ich werde heute mal mit der Task Möglichkeit noch etwas rumspielen.

Meine Anforderungen würden vermutlich auch funktionieren, wenn ich das cmd-schript oder auch Powershellscript als Admin ausführen könnte
sowas wir RunAs oder so.
Damit bin ich aber bis jetzt nicht klar gekommen.
DrittanbieterTools dürfen nicht eingesetzt werden.

Hat noch wer eine Idee?
wie gesagt beide Varianten ob cmd oder ps1 funktionieren in sich super, wenn Adminrechte vorhanden sind.

Danke Euch
Mitglied: Doskias
Doskias 17.09.2020 um 08:44:20 Uhr
Goto Top
Zitat von @stoepsu77:
Bei 450 Usern ist das aber mühsam und im Moment Coronabedingt müssen die Mitarbeitenden oft PC wechseln.

Genau Falsch rum in meinen Augen. Coronabedingt sollten die Mitarbeiter möglichst nicht mit anderen den PC teilen.

Danke für Deine Links.
Damit habe ich gearbeitet, bevor mir bewusst wurde, dass das Layout immer wechseln muss.
Das kann ich da ja nicht automatisieren. Oder wie hast Du das gemeint.

Ich habe noch nicht ganz verstanden, wieso mal Layout A und mal Layout B an EINEM PC verwendet werden muss. Das Layout legt die Kacheln fest. Wieso sollen bei der ersten Anmeldung an PC1 andere Kacheln angezeigt werden wie bei der zweiten? Wieso sollten die Kacheln an der Stelle anders aussehen und angeordnet sein? Das ergibt keinen Sinn. Es ergibt durchaus sinn, dass an PC1 und 3 LayoutA und an PC 2 Layout B verwendet werden soll. Aber wieso der Wechsel zwischen LayoutA und LayoutB an einem PC?
Mitglied: stoepsu77
stoepsu77 17.09.2020 um 09:00:40 Uhr
Goto Top
Danke

Die Mitarbeitenden dürfen nur in einer bestimmten Anzahl in einem Büro sein.
Die meisten Arbeiten 50% im Büro und 50% zu Hause.
Je nach anstehenden Aufgaben sind entsprechend Personen da, die sich auf die Arbeitsplätze verteilen müssen.
Deinen Einwand verstehe ich natürlich, geht aber nicht anders. Die Arbeitsplätze werden jeden Tag desinfiziert inkl. Tastatur.
Ist nicht mein Gebiet.

Es spielt keine Rolle an welchem PC ich welches Layout bekomme. Es muss nur wechseln.
Egal ob es da schon eine saubere Kopie des Profils gibt oder nicht.
Den sauberen Profilen passiert nichts, aber es korrigiert die Startmenüs.
Die Kacheln sind nicht anders angeordnet. Das Layout ist absolut das selbe. gleicher Inhalt. Nur heisst es einmal StartLayout.xml und einmal LayoutModification.xml
Und der Ablageort ist unterschiedlich. Ev. würde schon nur der Ablageort wechseln reichen, damit das Startmenü wieder OK ist.
Mitglied: Doskias
Doskias 17.09.2020 um 09:15:34 Uhr
Goto Top
Was spricht dann dagegen immer StartLayout.xml zu importieren, wenn es das selbe ist?
Mitglied: stoepsu77
stoepsu77 17.09.2020 um 09:21:05 Uhr
Goto Top
Nichts, wenn es unter Win10 funktionieren würde.
Tut es aber nicht.
Wenn die Information bereits in er natuser.dat steht, wird das Startmenü verschossen.
geb ich eine andere Information (Layout) wird es beim Starten neu verarbeitet und somit korrekt dargestellt.
Mitglied: NordicMike
NordicMike 17.09.2020 um 09:30:13 Uhr
Goto Top
Irgendwie ein interessantes Thema, nur den Hintergrund habe ich noch nicht erfasst warum es bei jedem Login wechseln soll. Was hat das für einen Grund, dass ein Anwender immer ein geändertes Startmenü sieht? A-B-A-B, einmal ist sein Eintrag da, dann wieder nicht, dann wieder da. Wenn es das ganze Profil ist, ändert sich auch sein Hintergrundbild, mal da, wieder nicht, wieder da... Wird er nicht durcheinander gebracht und verliert das Vertrauen in ein stabiles System?

Wenn es rein um den Ablageort geht, kannst du den Pfad des Ablageorts mit einer Variable versehen und musst sonst gar nichts ändern. Das beschleunigt dann auch die Anmeldung, ohne, dass das Profil neu gezogen werden muss.

c:\%variable%\
Mitglied: floriletterman
floriletterman 17.09.2020 um 09:45:07 Uhr
Goto Top
Guten Morgen zusammen,

das Profil ist in A und B identisch. Somit wechselt für den User nichts.
Lediglich für Windows sind es bei der Anmeldung verschiedene Profile, wodurch diese bei jeder Anmeldung neu geladen und korrekt verarbeitet werden. Somit ist das Startmenü immer funktional.

So habe ich es verstanden.

Gruß
Florian
Mitglied: Doskias
Doskias 17.09.2020 um 09:47:43 Uhr
Goto Top
Also wir nutzen das Startlayout. Die User bekommen (bei Windows 10, weil woanders greift die GPO gar nicht) ein Layout wie gewünscht und einmal definiert vorgegeben. Das Start-Layout ist damit immer das selbe und (wie in der GPO beschrieben) können es die User nicht anpassen. Unsere User sind es gewohnt über die Taskleiste und dort angeheftete Programme zu arbeiten.

Ansonsten kannst du noch versuchen mittels test-path in PS zu ermitteln ob es die natuser.dat schon gibt und dann entsprechend via PS mit einem import-startlayout die gewünschte Datei zu importieren.

Du solltest ggf. einmal folgende Punkte dazu prüfen:
Computerrichtlinie Beim Neustart immer auf Anmeldung warten: aktiv
Anmeldeskriptverzögerung: deaktivieren

letztere ist wichtig, da Anmeldeskripte sonst immer erst 5 Minuten nach der Anmeldung ausgeführt werden. Da ist der User dann ja schon am Arbeiten und die Settings können nicht mehr greifen. Wenn du die Verzögerung aktivierst werden die Skripte geladen bevor der User was machen kann. Das führt zwar zu einer längeren Anmeldezeit (je nach Anzahl der Skripte bei euch von einigen Sekunden) aber ein versuch ist es wert.
Mitglied: NordicMike
NordicMike 17.09.2020 aktualisiert um 09:57:48 Uhr
Goto Top
das Profil ist in A und B identisch. Somit wechselt für den User nichts.
Der User ändert aber einiges, und wenn auch nur seinen Standarddrucker oder Hintergrundbild. Ausserdem gibt es genügend Fehlermeldungen im Netz, dass Profile nicht mehr geladen werden können und ein temporäres Profil gestartet wurde. Das klingt nach einer unstabilen Lösung. Ich würde es eher an der Wurzel anpacken was er damit überhaupt bezweckt. Es scheint, als ob er Kacheln mit Ablageorten besitzt, das bei jeder Anmeldung den Ablageort wechselt, quasi eine

1) Verteilung seiner ausgearbeiteten Daten an zwei verschiedene Orte, um das Team oder den Dienst dahinter zu entlasten.

oder umgekehrt:

2) Er bekommt seine Arbeit von diesen zwei Ablageorten und soll sie gleichmäßig abarbeiten.
Mitglied: stoepsu77
stoepsu77 17.09.2020 um 10:55:35 Uhr
Goto Top
@NordicMike

es kann den user nichts verwirren, weil es für Ihn immer gleich aussieht.
Sobald auf einem der PCs das servergespeicherte Profil schon mal geladen wurde und die Anzeige im Startmenü Ok ist, bleibt das auch so, egal welches (identische) Startlayout gezogen wird.
Die Kacheln sind immer am selben Ort. Die Taskleiste, Desktop und Hintergrundbild werden dabei nicht verändert.

@floritetterman
genau so ist es.


Es betrifft nur das Startmenü.
Nur das Startmenü soll an einem anderen PC neu geladen werden und nicht aus der ntuser.dat gezogen werden.
Dazu muss ich diesen gesperrten registry-Eintrag als Admin automatisiert ändern können.
Das ist wirklich alles.
Ich hab manuell nun sicher schon 50 Startmenüs so repariert.
ich möchte das bloss automatisieren