Benutzernamen per Script setzen
Benutzernamen per Script setzen
Wie stelle ich es an die Felder "Benutzername" und "Vollständiger Benutzername" eines Windows-Rechners per Script zu setzen?
Hintergrund: wir inventarisieren über rxScan.exe wenn noch niemand angemeldet ist - außerdem haben wir in der Registry Dinge wie den Benutzernamen und Vor-und Nachnamen. Diese kann ich dann per Script auslese und eben in "Benutzername" in rxInventory übertragen.
Vielen Dank
Hintergrund: wir inventarisieren über rxScan.exe wenn noch niemand angemeldet ist - außerdem haben wir in der Registry Dinge wie den Benutzernamen und Vor-und Nachnamen. Diese kann ich dann per Script auslese und eben in "Benutzername" in rxInventory übertragen.
Vielen Dank
Re: Benutzernamen per Script setzen
Eigentlich ist das Setzen des Benutzernamen nicht vorgesehen, weil dieser intern auf spezielle Art verwaltet wird. Mit folgendem Skript könnte es funktionieren (ohne Gewähr):
Dabei gibt es folgendes zu beachten:
Code: Alles auswählen
Function AfterScan()
StartUserItem "MYDOMAIN\MyUser", "USER", 1
SetItemProperty "NAME", "MyUser"
SetItemProperty "DOMAIN", "MYDOMAIN"
SetItemProperty "FULLNAME", "Mein voller Name"
EndItem
End Function
- Die Felder NAME und DOMAIN sollten möglichst zu dem String passen, der nach StartUserItem angegeben wurde. DOMAIN ist bei einem lokalen Anwender gleich dem Gerätenamen.
- Sollte gerade der Benutzer angemeldet sein, der durch das Skript gesetzt wird, werden die gescannten Werte einfach durch das Skript überschrieben. Dies passiert bei AfterScan(). Bei BeforeScan() ist dies nicht der Fall.
- Einmal gescannte Benutzerinformationen bleiben erhalten, damit man eine Historie der angemeldeten Benutzer hat. Um einen Benutzereintrag zu entfernen, gibt es im Moment nur die Möglichkeit das Gerät komplett zu löschen oder in der Datenbank den entsprechenden Datensatz zu löschen. (Tabelle RD_USER und eventuell RD_USERLOGON, RD_USERREMOTEPRINTER, RD_USERREMOTEDRIVE, RD_SCRIPTEDUSER)
Re: Benutzernamen per Script setzen
Vielen Dank - das funktioniert Dass die Einträge mehr werden macht auch nichts - damit kann man dann sogar nachvollziehen wenn ein PC einen neuen Besitzer bekommt.
Unter dem Strich könnte ich Benutzer / Name / Vorname auch per gescripteter Eigenschaft einbringen - für die normalen Berichte wäre das voll ausreichend.
Interessanter wird es bei der Software/Lizenzverwaltung. Hier ist es schon fast zwingend die Benutzer sehen zu können.
Oder habe ich eine Funktion übersehen mit der man die Benutzer bzw gescriptete Eigenschaften mit in die Ansichten von "Software/[Softwarename]" bzw unter "Lizenzmanagement/[Softwarename]/Installiert auf" bringen könnte?
Unter dem Strich könnte ich Benutzer / Name / Vorname auch per gescripteter Eigenschaft einbringen - für die normalen Berichte wäre das voll ausreichend.
Interessanter wird es bei der Software/Lizenzverwaltung. Hier ist es schon fast zwingend die Benutzer sehen zu können.
Oder habe ich eine Funktion übersehen mit der man die Benutzer bzw gescriptete Eigenschaften mit in die Ansichten von "Software/[Softwarename]" bzw unter "Lizenzmanagement/[Softwarename]/Installiert auf" bringen könnte?
Re: Benutzernamen per Script setzen
Den Benutzernamen sieht man unter Lizenzmanagement/[Softwarename]/Installiert auf in der zweiten Spalte. Und zwar ist dies der, der sich zuletzt angemeldet hat.
Re: Benutzernamen per Script setzen
So richtig funktioniert das leider nicht.
Erst einmal muss ich den Benutzerscan unter "Erweitert" eh anschalten - sonst werden keine Benutzerdaten erfasst.
Dann überschreibe ich diese Daten mit meinem eigenen Angaben. Diese tauchen dann auch unter "Geräte/Workstation/Benutzer" auf. Allerdings dann auch der "echte" Benutzer mit Datum letzter Benutzeranmeldung.
Dieser "echte" Benutzer (den ich ja nicht haben möchte) findet sich dann auch unter "Benutzername" in der "Lizenzverwaltung/Instaliert auf" wieder. Nicht jedoch der gescriptete Benutzer (mit lebarem Klarnamen).
Entweder hier gibt es noch einen Trick - oder ich komme wieder auf meine Anregung zurück dass man eigene Spalten im Lizenzverwaltung hinzufügen kann. Hier werde ich schon gedrängt dass man mit einer Lizenzauswertung ohne Mitarbeiternamen nicht viel anfangen kann
Erst einmal muss ich den Benutzerscan unter "Erweitert" eh anschalten - sonst werden keine Benutzerdaten erfasst.
Dann überschreibe ich diese Daten mit meinem eigenen Angaben. Diese tauchen dann auch unter "Geräte/Workstation/Benutzer" auf. Allerdings dann auch der "echte" Benutzer mit Datum letzter Benutzeranmeldung.
Dieser "echte" Benutzer (den ich ja nicht haben möchte) findet sich dann auch unter "Benutzername" in der "Lizenzverwaltung/Instaliert auf" wieder. Nicht jedoch der gescriptete Benutzer (mit lebarem Klarnamen).
Entweder hier gibt es noch einen Trick - oder ich komme wieder auf meine Anregung zurück dass man eigene Spalten im Lizenzverwaltung hinzufügen kann. Hier werde ich schon gedrängt dass man mit einer Lizenzauswertung ohne Mitarbeiternamen nicht viel anfangen kann
Re: Benutzernamen per Script setzen
Ok, daran hatte ich nicht gedacht. Schaltet man in der Oberfläche das Erfassen von Benutzerdaten aus, dann werden alle Benutzerdaten (die aktuellen und die historischen) aus der Datenbank gelöscht. Es gibt jetzt die Möglichkeit, die Option in der Oberfläche nicht zu aktivieren und dafür im Scanprozess selbst. (Mir ist unabhängig davon auch aufgefallen, dass die CONSOLEUSERID gesetzt sein sollte.):
Code: Alles auswählen
Function BeforeScan()
SetParameter "NOUSERS", "yes"
End Function
Function AfterScan()
StartUserItem "MYDOMAIN\MyUser", "USER", 1
SetItemProperty "NAME", "MyUser"
SetItemProperty "DOMAIN", "MYDOMAIN"
SetItemProperty "FULLNAME", "Mein voller Name"
EndItem
SetDeviceProperty "CONSOLEUSERID", "MYDOMAIN\MyUser"
End Function
Re: Benutzernamen per Script setzen
Das werde ich mal versuchen - danke schon einmal.
Mittlerweile haben wir aber (für andere Zwecke) die Benutzererfassung im Windows-Scan wieder angeschaltet.
Ich dachte damit hätte sich das Problem dieses Forumeintrages dann eh erledigt - leider auch nicht so ganz.
Wie schon erwähnt: wir scannen unsere Rechner lokal 5min nach dem Einschalten - dies geschieht morgens zentral über WakeOnLan. Sprich: zu dem Zeitpunkt ist kaum jemand angemeldet. Wer über den Tag den PC noch einmal startet generiert natürlich einen weiteren Scan - was aber nicht störend ist. Die meisten machen aber eben ihren Scan ohne Benutzeranmeldung.
Wenn ich nun aber in die Lizenzverwaltung / Software-Ansicht reinsehe wird hier wohl unter "Benutzername" immer der aktuell angemeldete Benutzer aufgeführt. Das führt dann dazu dass von 450 Rechnern unter 100 überhaupt einen Benutzernamen anführen (meist unsere Notebooks da dort kein WakeOnLAN ausgeführt wird) - beim Rest ist es dann eher unklar.
Bei der Software-Ansicht ist mir das mittlerweile nicht mehr so wichtig - hier schreiben wir den Benutzer eh schon in die Gerätebeschreibung mit hinein - und diese ist ja per Default vorhanden
Nur eben die leidige Lizenzverwaltung ist immer noch recht uninformativ (bis auf die Stückzahlen - das funktioniert gut).
Und ich denke mal dass Ihre Anpassung von oben auch nur den "Angemeldeten Benutzer" berührt - und der ist eben zum Scanzeitpunkt in den allermeisten Fällen nicht zu ermitteln weil nicht existent.
Mittlerweile haben wir aber (für andere Zwecke) die Benutzererfassung im Windows-Scan wieder angeschaltet.
Ich dachte damit hätte sich das Problem dieses Forumeintrages dann eh erledigt - leider auch nicht so ganz.
Wie schon erwähnt: wir scannen unsere Rechner lokal 5min nach dem Einschalten - dies geschieht morgens zentral über WakeOnLan. Sprich: zu dem Zeitpunkt ist kaum jemand angemeldet. Wer über den Tag den PC noch einmal startet generiert natürlich einen weiteren Scan - was aber nicht störend ist. Die meisten machen aber eben ihren Scan ohne Benutzeranmeldung.
Wenn ich nun aber in die Lizenzverwaltung / Software-Ansicht reinsehe wird hier wohl unter "Benutzername" immer der aktuell angemeldete Benutzer aufgeführt. Das führt dann dazu dass von 450 Rechnern unter 100 überhaupt einen Benutzernamen anführen (meist unsere Notebooks da dort kein WakeOnLAN ausgeführt wird) - beim Rest ist es dann eher unklar.
Bei der Software-Ansicht ist mir das mittlerweile nicht mehr so wichtig - hier schreiben wir den Benutzer eh schon in die Gerätebeschreibung mit hinein - und diese ist ja per Default vorhanden
Nur eben die leidige Lizenzverwaltung ist immer noch recht uninformativ (bis auf die Stückzahlen - das funktioniert gut).
Und ich denke mal dass Ihre Anpassung von oben auch nur den "Angemeldeten Benutzer" berührt - und der ist eben zum Scanzeitpunkt in den allermeisten Fällen nicht zu ermitteln weil nicht existent.
Re: Benutzernamen per Script setzen
Seit Version 3.10 (Build 29) wird die Gerätebeschreibung als eigene Spalte in der "Installiert auf"-Liste angezeigt. Sollte das nicht helfen, wenn der Hauptbenutzer des Computers dort eingetragen ist?
Re: Benutzernamen per Script setzen
Seit der letzten Version gibt es "Gerätebeschreibung" (funktionell) unter [Software/Windows-Programme > Details]
> hier reicht das zur Not aus da wir u.a. den Benutzer mit in die Gerätebeschreibung genommen haben
> > schöner wären hinzufügbare anwenderdefinierte Spalten
Aber unter [Lizenzmanagement/Softwarename/Installiert auf] gibt es nur Gerätename + Benutzername + Lizenzdetails
> hier ist das leider ungenügend. Am Gerätenamen können wir keine Lizenzen festmachen und der Benutzername ist meist leer weil wir außerhalb der Arbeitszeiten scannen
Siehe hier: Ich weiß ja dass ich hier etwas nerve - aber versuchen Sie mal eine Lizenzkontrolle auf einen Blick bei 50 PCs durchzuführen wenn Sie nur kryptische PC-Namen wie "fyax1l15" haben (und die vorhandenen Benutzernamen auch nicht besser aussehen). Dann muss man für die 50 auch 50 x von links nach rechts jeweils in die Suchmaske eines anderes Programms rein und zusehen dass man den Real-Namen hinter so etwas wie "yf12hxy" findet - das ganze dann am besten noch mit einem Blatt Papier vor sich wo man das ganze Krams abhakt.
> hier reicht das zur Not aus da wir u.a. den Benutzer mit in die Gerätebeschreibung genommen haben
> > schöner wären hinzufügbare anwenderdefinierte Spalten
Aber unter [Lizenzmanagement/Softwarename/Installiert auf] gibt es nur Gerätename + Benutzername + Lizenzdetails
> hier ist das leider ungenügend. Am Gerätenamen können wir keine Lizenzen festmachen und der Benutzername ist meist leer weil wir außerhalb der Arbeitszeiten scannen
Siehe hier: Ich weiß ja dass ich hier etwas nerve - aber versuchen Sie mal eine Lizenzkontrolle auf einen Blick bei 50 PCs durchzuführen wenn Sie nur kryptische PC-Namen wie "fyax1l15" haben (und die vorhandenen Benutzernamen auch nicht besser aussehen). Dann muss man für die 50 auch 50 x von links nach rechts jeweils in die Suchmaske eines anderes Programms rein und zusehen dass man den Real-Namen hinter so etwas wie "yf12hxy" findet - das ganze dann am besten noch mit einem Blatt Papier vor sich wo man das ganze Krams abhakt.
Re: Benutzernamen per Script setzen
Das ist komisch. Gerade nochmal geprüft. Mit Version 3.10.29 erscheint unter "Installiert auf" die Spalte "Gerätebeschreibung" (im Screenshot leer):
Möglicherweise hat das Update nicht korrekt funktioniert. Um das Update zu erzwingen, kann man die Tabelle RX_VERSION löschen. Dazu im Installationsverzeichnis folgendes starten:
In das SQL-Feld folgendes eingeben und "Submit" drücken:
Beim nächsten Start von rxInventory werden die Tabellen auf den Stand der gestarteten Version aktualisiert.
Möglicherweise hat das Update nicht korrekt funktioniert. Um das Update zu erzwingen, kann man die Tabelle RX_VERSION löschen. Dazu im Installationsverzeichnis folgendes starten:
Code: Alles auswählen
invcmd -sqldesigner
Code: Alles auswählen
delete from RX_VERSION