Benutzernamen per Script setzen

Bereich für allgemeine Beiträge.
HeikoR
Beiträge: 45
Registriert: Di 26. Mai 2020, 11:47

Benutzernamen per Script setzen

Beitrag von HeikoR »

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
WernerB
Beiträge: 112
Registriert: Mo 20. Jul 2009, 07:41

Re: Benutzernamen per Script setzen

Beitrag von WernerB »

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):

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
Dabei gibt es folgendes zu beachten:
  • 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)
HeikoR
Beiträge: 45
Registriert: Di 26. Mai 2020, 11:47

Re: Benutzernamen per Script setzen

Beitrag von HeikoR »

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?
WernerB
Beiträge: 112
Registriert: Mo 20. Jul 2009, 07:41

Re: Benutzernamen per Script setzen

Beitrag von WernerB »

Den Benutzernamen sieht man unter Lizenzmanagement/[Softwarename]/Installiert auf in der zweiten Spalte. Und zwar ist dies der, der sich zuletzt angemeldet hat.
HeikoR
Beiträge: 45
Registriert: Di 26. Mai 2020, 11:47

Re: Benutzernamen per Script setzen

Beitrag von HeikoR »

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 :?
WernerB
Beiträge: 112
Registriert: Mo 20. Jul 2009, 07:41

Re: Benutzernamen per Script setzen

Beitrag von WernerB »

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
HeikoR
Beiträge: 45
Registriert: Di 26. Mai 2020, 11:47

Re: Benutzernamen per Script setzen

Beitrag von HeikoR »

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. :roll:
WernerB
Beiträge: 112
Registriert: Mo 20. Jul 2009, 07:41

Re: Benutzernamen per Script setzen

Beitrag von WernerB »

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?
HeikoR
Beiträge: 45
Registriert: Di 26. Mai 2020, 11:47

Re: Benutzernamen per Script setzen

Beitrag von HeikoR »

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:
rxInventory - [rxInventory_Lizenzmanagement.jpg
rxInventory - [rxInventory_Lizenzmanagement.jpg (24.56 KiB) 25366 mal betrachtet
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 :roll: - das ganze dann am besten noch mit einem Blatt Papier vor sich wo man das ganze Krams abhakt.
WernerB
Beiträge: 112
Registriert: Mo 20. Jul 2009, 07:41

Re: Benutzernamen per Script setzen

Beitrag von WernerB »

Das ist komisch. Gerade nochmal geprüft. Mit Version 3.10.29 erscheint unter "Installiert auf" die Spalte "Gerätebeschreibung" (im Screenshot leer):
screenshot.png
screenshot.png (21.52 KiB) 25361 mal betrachtet
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
In das SQL-Feld folgendes eingeben und "Submit" drücken:

Code: Alles auswählen

delete from RX_VERSION
Beim nächsten Start von rxInventory werden die Tabellen auf den Stand der gestarteten Version aktualisiert.
Antworten