Wert in der Registry warten
Norbert
- programmiertechnik
Hallo,
in einem Key der Registry soll ein Wert eingefuegt, umbenannt oder geloescht werden.
Derzeit mache ich das von Hand, aber das nervt ...
Nun vermute ich mal, dass man dazu auch eine *.inf-Datei verwenden koennte. Oder hat jemand eine noch einfachere Idee, einen bestimmten Key auf allen PC's eines LAN's zu verwalten.
Gruss und Dank
Norbert
Hallo Norbert,
in einem Key der Registry soll ein Wert eingefuegt, umbenannt oder geloescht werden.
Derzeit mache ich das von Hand, aber das nervt ...
kann ich nachvollziehen. ;-)
Nun vermute ich mal, dass man dazu auch eine *.inf-Datei verwenden koennte.
Das muss auch möglich sein, mit inf-Dateien kann man eine Menge anstellen. So viel, dass ich bisher noch gezögert habe, tiefer in das Thema einzusteigen.
Oder hat jemand eine noch einfachere Idee, einen bestimmten Key auf allen PC's eines LAN's zu verwalten.
Ja, sogar zwei.
Die einfache Lösung wäre eine reg-Datei, die zentral im Netzwerk abgelegt und von allen Clients z.B. beim Systemstart eingelesen wird. Mit dieser reg-Datei können leicht Schlüssel und Werte hinzugefügt bzw. überschrieben werden, aber -was weniger bekannt ist- auch gelöscht werden. Dazu schreibt man einfach ein Minuszeichen vor den Schlüsselnamen (AFAIK können auf diese Weise nur komplette Schlüssel mit all ihren Werten gelöscht werden, keine einzelnen Einträge).
Die zweite Lösung, die mir einfällt, wäre der Remote-Registryzugriff. Wer auf einem Windows-PC Administratorrechte hat, kann auch übers Netzwerk dessen Registry bearbeiten. Dazu hat regedit extra den Menübefehl "Mit Remote-Registrierung verbinden". Voraussetzung ist, dass auf den Clients, die so verwaltet werden sollen, der Remote Registry Service installiert und aktiv ist, der AFAIK nicht zum Standard-Lieferumfang von Windows gehört. Weitere Hürde: Das geht natürlich auch nur, solange der zu bearbeitende Client-PC an ist, logisch. Die erste Lösung (mit der reg-Datei) lässt sich dagegen so automatisieren, dass sie auf jedem Client automatisch beim Systemstart übernommen wird (aber nicht im laufenden Betrieb).
So long,
Martin
Hallo
Ja, sogar zwei.
Die einfache Lösung wäre eine reg-Datei, die zentral im Netzwerk abgelegt und von allen Clients z.B. beim Systemstart eingelesen wird [...]
Die zweite Lösung, die mir einfällt, wäre der Remote-Registryzugriff [...]
ich biete noch eine dritte Lösung an (die in etwa Deiner ersten entspricht, aber wesentlich eleganter die Möglichkeiten einer Windows-Domäne ausnutzt).
Unter der Voraussetzung, dass sich die Rechner in einer Windows-Domäne befinden und die Änderung nur bei einem Rechnerneustart oder bei der Neuanmeldung eines Benutzers erforderlich ist, könnte man dies einfach mit einer Gruppenrichtlinie regeln.
Freundliche Grüße
Vinzenz
Hallo Vinzenz,
Unter der Voraussetzung, dass sich die Rechner in einer Windows-Domäne befinden und die Änderung nur bei einem Rechnerneustart oder bei der Neuanmeldung eines Benutzers erforderlich ist, könnte man dies einfach mit einer Gruppenrichtlinie regeln.
klar, das wäre auch eine Möglichkeit, und in größeren, zentral administrierten Netzwerken sicher sinnvoll. Aber ich frage mich, was einfacher ist. In einem kleinen LAN wahrscheinlich die Variante, die ich mir vorgestellt hatte, also auf allen Clients *einmalig*
[HKLM\Software\Microsoft\Windows\CurrentVersion\Run]
autoreg="regedit.exe \share\config.reg /s"
einzutragen und dann eine zentrale reg-Datei zu pflegen. Gruppenrichtlinien müsste man erstmal einrichten, was in kleinen Netzwerken IMHO ein Overkill wäre. Eine Windows-Domäne ist dazu übrigens nicht einmal erforderlich; mit einer Handvoll Peer-To-Peer-PCs im LAN (theoretisch sogar auf einem einzelnen Rechner) geht das auch schon.
Ciao,
Martin
Hallo,
stellt Euch einfach ein Dutzend PC's und einen WLAN-DSL-Router vor.
Mehr jibbet hier nicht, keinen Server keinen Administrator und auch kein Login nicht, also beim booten der PC's muss man sich nirgendwo anmelden. Ach-ja, und ich moechte nur die PC's ohne grossen Aufwand auseinanderhalten, also bekommt jeder einen Key in die Registry und gut ist's.
Also bitte eine einfachere Variante - danke ...
Gruss und Dank
Norbert
Hallo Norbert,
stellt Euch einfach ein Dutzend PC's und einen WLAN-DSL-Router vor.
sowas in der Größenordnung hatte ich mir schon gedacht. Deshalb hatte ich meinen ersten Vorschlag auch für ausreichend befunden. Viel einfacher kann ich's mir eigentlich kaum vorstellen.
Ach-ja, und ich moechte nur die PC's ohne grossen Aufwand auseinanderhalten, also bekommt jeder einen Key in die Registry und gut ist's.
Äh, Moment ... DAFÜR reicht doch eigentlich schon der Rechnername, oder was hast du mit der Unterscheidung im Sinn? Ich hatte gedacht, du willst bestimmte System- oder Programmeinstellungen, die sich von Zeit zu Zeit ändern können, auf allen Rechnern einheitlich haben.
Ciao,
Martin
Hallo,
Ach-ja, und ich moechte nur die PC's ohne grossen Aufwand auseinanderhalten, also bekommt jeder einen Key in die Registry und gut ist's.
Äh, Moment ... DAFÜR reicht doch eigentlich schon der Rechnername, oder was hast du mit der Unterscheidung im Sinn?
klar,
der Rechnername waere absolut hinreichend!
Und genau den, oder ein Synonym, moechte ich in einem anderen Key hinterlegen. Das hat die Wirkung, dass der Rechnername an den User-Agent angehaengt wird, und dies wiederum erlaubt mir, zu erkennen, welche Zwergnase gerade auf der Firmenwebseite rumsurft.
Hoffe mich klar ausgedrueckt zu haben ...
Gruss und Dank
Norbert
Hi Norbert,
klar,
der Rechnername waere absolut hinreichend!
[...] Das hat die Wirkung, dass der Rechnername an den User-Agent angehaengt wird, und dies wiederum erlaubt mir, zu erkennen, welche Zwergnase gerade auf der Firmenwebseite rumsurft.
Aaaah ja, jetzt wird's Tag!
Welchen Browser benutzen die Zwergnasen denn? Sowohl beim IE als auch beim Firefox ist es kein Problem, dem UA einen eindeutigen Schlüssel anzuhängen.
Beim IE kann man ihn sogar fast völlig frei eingeben. Beispiel:
[HKLM\Software\Microsoft\Windows\CurrentVersion\Internet Settings\5.0\User Agent]
@="Mozilla/4.0"
Compatible="compatible"
Platform="Win32"
Version="Microsoft Internet Explorer"
PostPlatform="Identifier"
Daraus generiert der IE intern den User Agent
"Mozilla/4.0 (compatible; Microsoft Internet Explorer; Win32; Identifier)"
und speichert den kompletten String zusätzlich in
[HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings]
User Agent="..."
Lass dich nicht durch die Nummer "5.0" im Schlüsselnamen oben irritieren; die gilt für den IE6 ebenso.
Beim Firefox findest du entsprechende Einträge auf der about:config-Seite, wenn du nach "useragent" filtern lässt. Der FF ist nicht ganz so offen, was die Definition des UA-Strings betrifft, aber um eine zusätzliche eindeutige Kennung unterzubringen, reicht es allemal.
Hilft dir das nun weiter?
So long,
Martin
Hi,
Der FF ist nicht ganz so offen, was die Definition des UA-Strings betrifft
???
general.useragent.override erlaubt einen beliebigen String als User-Agent im Firefox. Wesentlich offener geht es doch wohl nicht ...
cu,
Andreas
Hallo Andreas,
Der FF ist nicht ganz so offen, was die Definition des UA-Strings betrifft
general.useragent.override erlaubt einen beliebigen String als User-Agent im Firefox. Wesentlich offener geht es doch wohl nicht ...
da hast du wohl Recht. Ich kann aber nur von den Einträgen ausgehen, die bei meinem Firefox auch _existieren_. Das ist ja ähnlich wie in der Windows-Registry: Viele Einträge werden zwar interpretiert, wenn sie vorhanden sind; aber wenn nicht, wird einfach ein Defaultwert genommen und keiner weiß, dass man eigentlich etwas verstellen _könnte_.
Es hat ja wenig Sinn, wenn ich mir einfach neue ausdenke, zumal die meisten dieser Einstellungen relativ schlecht dokumentiert sind. Ich vermisse zum Beispiel eine Angabe, ab welcher Firefox-Version bestimmte Settings unterstützt werden. Als ich die Liste vor einigen Monaten das letzte Mal angesehen habe, gab es general.useragent.override beispielsweise noch nicht.
Ciao,
Martin
Hi Martin,
Aaaah ja, jetzt wird's Tag!
super ...
Konkret werden die Namen der Werte dieses Schluessels
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\User Agent\Post Platform
dem Userg-Agent-String hinzugefuegt.
Die Fragestellung war jedoch, wie man so einen Eintrag am einfachsten warten kann. Also moeglichst wenig Handwerkelei dabei ausfuehren ...
Gruss und Dank
Norbert
Hallo Norbert,
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\User Agent\Post Platform
dem Userg-Agent-String hinzugefuegt.Die Fragestellung war jedoch, wie man so einen Eintrag am einfachsten warten kann. Also moeglichst wenig Handwerkelei dabei ausfuehren ...
Wo ist Dein Problem?
Das superknifflige Skript hat also folgendes zu tun:
Lese den Dir bekannten Registryeintrag aus
Wenn dieser Eintrag noch nicht dem User-Agent-String hinzugefügt wurde
Füge diesen dem User-Agent-String hinzu
Ende Wenn
Wie Du diese Aufgabe angehen könntest, kannst Du z.B. in der MSDN nachlesen.
Zu Deinem Thema "back to the roots" möchte ich Dir den Abschnitt Tipps für Fragende der Forumscharta ans Herz legen. Hättest Du in Deinem Ausgangsposting die Randbedingungen und genaue Problemstellung bekanntgegeben, statt Dir diese aus der Nase ziehen zu lassen, hätten wir Dir viel schneller und konkreter helfen können.
Freundliche Grüße
Vinzenz
Hallo Vinzenz,
Wo ist Dein Problem?
hmm, merkt man das nicht - ich habe keine Ahnung ...
Das ist uebrigens die erste Grundbedingung um hier Fragen zu stellen!
Wenn ich naemlich alles schon ordentlich und vollstaendig aufschreiben koennte,
braeuchte ich Dich nicht, da mir die Loesung dann von alleine ins Gesicht springt.
Das superknifflige Skript hat also folgendes zu tun:
Lese den Dir bekannten Registryeintrag aus
und wie willst Du das machen:
PS:
Das man prinzipiell alles irgendwo nachlesen kann, ist auch mir nicht unbekannt.
Leider weiss ich nicht immer wo, aber nun weiss ich ja,
dass man deswegen nicht gleich hier eine Frage stelle darf.
Vielen Dank fuer diese Belehrung.
Norbert
Hallo Norbert,
hmm, merkt man das nicht - ich habe keine Ahnung ...
das kannst Du ändern - wenn Du willst.
Das ist uebrigens die erste Grundbedingung um hier Fragen zu stellen!
Nein. Hier kann man Fragen stellen, wenn man noch keine Ahnung hat, hier kann man genauso gut Fragen stellen, wenn man Ahnung hat. Wichtig ist, dass der Fragesteller die Problemstellung vermitteln kann.
Wenn ich naemlich alles schon ordentlich und vollstaendig aufschreiben koennte,
braeuchte ich Dich nicht, da mir die Loesung dann von alleine ins Gesicht springt.
Weißt Du, manchmal ist man auch betriebsblind, manchmal ist die scheinbar offensichtliche Lösung keine wirkliche Lösung. Es gibt viele Gründe, Fragen zu stellen.
Das superknifflige Skript hat also folgendes zu tun:
Lese den Dir bekannten Registryeintrag aus
und wie willst Du das machen:
- der Eintrag ist unbekannt,
- man kann nur nach Schluessel und Namen suchen
- den Schluessel haben hier alle falsch angegeben und der Name ist unbekannt
- loeschen kann man einen Wert, falls man ihn kennt - siehe oben
Ich versuche nochmals zusammenzufassen - und hoffe, dass ich die Dir vorliegende Problemstellung richtig hinbekomme:
Was mir immer noch unklar ist:
Wo Du in der Registry den Rechnernamen findest, das habe ich Dir für Windows XP Professional bereits gepostet. Der steht dort. Du könntest den Rechnernamen auch noch auf andere Arten herausbekommen. Willst Du etwas anderes verwenden, dann nenne uns bitte das, was Du verwenden willst - und wo das steht.
Da Du ein reines Peer-to-Peer-Netzwerk hast, musst Du jedem Rechner beibringen, dass er Dein Skript ausführen soll. Dieses muss für jeden Rechner erreichbar sein. Du hast die Möglichkeit, das Skript in einer Netzwerkfreigabe unterzubringen, Du könntest Dein Skript aber auch auf einem Webserver zur Verfügung stellen ...
Was Du beim Netzwerkzugriff unter Windows XP zu beachten hast - insbesondere wenn keine Passwörter verwendet werden - das kannst Du bei Microsoft nachlesen.
Nach dieser Vorlage sollte es Dir nicht schwer fallen, Deine Problemstellung genau zu beschreiben - und genau die Punkte herauszustellen, wo Du Schwierigkeiten hast.
Freundliche Grüße
Vinzenz
Hallo Norbert,
stellt Euch einfach ein Dutzend PC's und einen WLAN-DSL-Router vor.
Eine Firma? Windows-PCs? Welche Windowsversionen?
Mehr jibbet hier nicht, keinen Server keinen Administrator und auch kein Login nicht, also beim booten der PC's muss man sich nirgendwo anmelden.
Eine Firma? Oh je.
Ach-ja, und ich moechte nur die PC's ohne grossen Aufwand auseinanderhalten,
Muss ich das verstehen? Was möchtest Du genau. Ist das Dein Ziel? Die Rechner haben doch Namen. Damit lassen sie sich wundervoll auseinanderhalten. Wo ist das Problem?
also bekommt jeder einen Key in die Registry und gut ist's.
Könntest Du das bitte näher erläutern. Der Registryschlüssel ist dazu da, um die Rechner auseinanderzuhalten? Wozu denn das? Solche Schlüssel sind doch schon vorhanden.
Schau Dir doch bitte einmal (Windows XP Professional) folgendes an:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ComputerName\ActiveComputerName
Falls ich Dich jetzt missverstanden haben sollte, dann kann ich Dir nur sagen, dass die Idee von Martin das einfachste ist, was ich mir vorstellen kann.
Freundliche Grüße
Vinzenz
Hallo Martin,
klar, das wäre auch eine Möglichkeit, und in größeren, zentral administrierten Netzwerken sicher sinnvoll.
ich bin der Ansicht, dass dies bei jeder Windows-Domäne sinnvoll ist :-)
Aber ich frage mich, was einfacher ist. In einem kleinen LAN wahrscheinlich die Variante, die ich mir vorgestellt hatte, also auf allen Clients *einmalig*
[HKLM\Software\Microsoft\Windows\CurrentVersion\Run]
autoreg="regedit.exe \share\config.reg /s"einzutragen und dann eine zentrale reg-Datei zu pflegen.
Gruppenrichtlinien müsste man erstmal einrichten,
Natürlich die Gruppenrichtlinie, ist doch klar. Sie hat den Vorteil, dass ich diese ein einziges Mal zentral einrichte und dann den entsprechenden Eintrag zentral pflege. Die Clients muss ich gar nicht erst anfassen, auch keinen neuen oder neu installierten. Das finde ich sehr praktisch.
was in kleinen Netzwerken IMHO ein Overkill wäre.
es ist keine Frage der Netzwerkgröße, sondern im Gegensatz zu dem was Du schreibst eine Frage des Vorhandenseins einer Windows-Domäne. Wenn ich eine habe, dann nutze ich selbstverständlich auch Gruppenrichtlinien - es entsteht somit kein zusätzlicher Aufwand als der, den entsprechenden Eintrag vorzunehmen. Gruppenrichtlinien auf Clientebene zu konfigurieren ist meiner Meinung nach in den seltensten Fällen eine gute Idee. Sowas macht man zentral.
Wenn die Windows-Domäne nicht vorhanden ist, geht die ganze Eleganz flöten, da ich ja wieder jeden Client anfassen und konfigurieren muss. Dann ist Dein Vorschlag besser. Genau aus diesem Grund habe ich als Voraussetzung für meinen Vorschlag die Domäne genannt, da die Gruppenrichtlinie einmalig im Active Directory angelegt wird.
Freundliche Grüße
Vinzenz
Hallo,
klar, das wäre auch eine Möglichkeit, und in größeren, zentral administrierten Netzwerken sicher sinnvoll.
ich bin der Ansicht, dass dies bei jeder Windows-Domäne sinnvoll ist :-)
okay, stimme ich zu. Dann formuliere ich es anders: Die Einrichtung einer Domäne ergibt an sich erst ab einer gewissen Größe des Netzwerks einen Sinn. In meinem kleinen Heim-LAN mit derzeit vier Windows-PCs wäre das mit Kanonen auf Spatzen geschis^H^Hossen.
was in kleinen Netzwerken IMHO ein Overkill wäre.
es ist keine Frage der Netzwerkgröße, sondern im Gegensatz zu dem was Du schreibst eine Frage des Vorhandenseins einer Windows-Domäne.
Eben. Und so einen Moloch würde ich bei einer überschaubaren Anzahl von Clients nur widerwillig einrichten - der Aufwand wäre mir einfach zu groß. Ganz abgesehen davon, dass es meiner Weltanschauung widerspricht, nach der jeder Client eigenständig und unabhängig von restlichen Netz sein sollte, und nur bei Bedarf auf die im Netz angebotenen Dienste zugreift.
Gruppenrichtlinien auf Clientebene zu konfigurieren ist meiner Meinung nach in den seltensten Fällen eine gute Idee. Sowas macht man zentral.
Sehe ich auch so. Aber du hast es so hingestellt, als sei eine Windows-Domäne eine zwingende Voraussetzung für das Einrichten von Gruppenrichtlinien.
Schönen Sonntag noch,
Martin
Hallo Martin,
Gruppenrichtlinien auf Clientebene zu konfigurieren ist meiner Meinung nach in den seltensten Fällen eine gute Idee. Sowas macht man zentral.
Sehe ich auch so. Aber du hast es so hingestellt, als sei eine Windows-Domäne eine zwingende Voraussetzung für das Einrichten von Gruppenrichtlinien.
äh nein. Ganz gewiß nicht. Ich zitiere mich selbst:
ich biete noch eine dritte Lösung an (die in etwa Deiner ersten entspricht, aber wesentlich eleganter die Möglichkeiten einer Windows-Domäne ausnutzt).
Das Vorhandensein einer Windows-Domäne ermöglicht eine elegantere Lösung. Dass Gruppenrichtlinien _nur_ bei Vorhandensein einer Domäne genutzt werden können, habe ich nicht behauptet - und sollte auch nicht durchklingen, da dies prinzipiell gesehen falsch ist.
Selbstverständlich bleibe ich bei meinem einleitenden Satz in diesem Posting, dass ich den Einsatz von Gruppenrichtlinien nur in einer Domäne für sinnvoll halte. Um auf die Situation des OP zurückzukommen. Bei einem Firmennetzwerk dieser Größe halte ich persönlich den Einsatz eines Servers für sinnvoll. Welches Betriebssystem auf diesem Server läuft, das ist wiederum eine andere Frage.
Und so einen Moloch würde ich bei einer überschaubaren Anzahl von Clients nur widerwillig einrichten - der Aufwand wäre mir einfach zu groß.
Ich halte einerseits einen Server unter einem Windows-Betriebssystem nicht für einen Moloch, andererseits einen Server auch bei einer Benutzerzahl von ca. 5 aufwärts bereits für sinnvoll.
Ganz abgesehen davon, dass es meiner Weltanschauung widerspricht, nach der jeder Client eigenständig und unabhängig von restlichen Netz sein sollte, und nur bei Bedarf auf die im Netz angebotenen Dienste zugreift.
Ja, ich kenne und respektiere Deine Ansicht in dieser Hinsicht; ich bitte Dich zu respektieren, dass ich diese Ansicht nicht teile.
Freundliche Grüße
Vinzenz
Hallo Vinzenz,
äh nein. Ganz gewiß nicht. Ich zitiere mich selbst: [...]
Dann zitiere ich nochmal den für mich missverständlichen Teil:
Unter der Voraussetzung, dass sich die Rechner in einer Windows-Domäne befinden [...], könnte man dies einfach mit einer Gruppenrichtlinie regeln.
Das hörte sich für mich an wie "dann und nur dann".
[...] und sollte auch nicht durchklingen, da dies prinzipiell gesehen falsch ist.
Gut, dann sind wir uns ja wenigstens in diesem Punkt einig.
Ich halte einerseits einen Server unter einem Windows-Betriebssystem nicht für einen Moloch, andererseits einen Server auch bei einer Benutzerzahl von ca. 5 aufwärts bereits für sinnvoll.
Ah, ich sehe schon den Unterschied: Du zählst Benutzer, ich dagegen die Maschinen. ;-)
Ja, ich kenne und respektiere Deine Ansicht in dieser Hinsicht; ich bitte Dich zu respektieren, dass ich diese Ansicht nicht teile.
Kein Problem, selbstverständlich.
Schönen Sonntag noch,
Martin
Hallo Martin,
Dann zitiere ich nochmal den für mich missverständlichen Teil:
Unter der Voraussetzung, dass sich die Rechner in einer Windows-Domäne befinden [...], könnte man dies einfach mit einer Gruppenrichtlinie regeln.
Das hörte sich für mich an wie "dann und nur dann".
Hmm. Ich hatte ganz bewußt in meinem ersten Absatz erwähnt, dass Windows-Domänen eine elegante Lösung ermöglichen - und in diesem Satz stand für mich die Domäne als Voraussetzung für eine _einfache_ Lösung. Nicht grundsätzlich für eine Lösung. Beide Absätze zielten auf *elegant und einfach* ab. Schade, dass es so missverständlich herüberkam.
Ah, ich sehe schon den Unterschied: Du zählst Benutzer, ich dagegen die Maschinen. ;-)
Ich zähle auch Maschinen, aber die Benutzer stehen für mich im Vordergrund. Es ist eine sehr wichtige Aufgabe, den Benutzern den Zugriff auf ihre Programme und ihre Daten zu ermöglichen. Idealerweise sogar so, dass die Benutzer noch nicht einmal merken, dass die Maschine zwischendurch ausgetauscht wurde. Die Benutzer sehen zu Recht den Computer und ihre Programme als notwendige Werkzeuge, die ihnen helfen, ihre Arbeit zu erledigen. Wenn manche Benutzer den Computer eher als notwendiges Übel ansehen, so habe ich dafür durchaus Verständnis.
Freundliche Grüße
Vinzenz