Jump to content

Zuordnung des Anmeldebildes zum Benutzer


Sarek
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

C:\ProgramData\Microsoft\User Account Pictures

 

Da kann ich problemlos ein Standarduser-Bild (user.bmp) reinkopieren, das alle User bekommen, für die kein eigenes Bild definiert wurde. Oder wenn ich für einen Domänenbenutzer ein Bld manuell zuordne, wird dort eine .DAT-Datei angelegt, die ich per GPP oder Script auf andere Rechner verteilen könnte.

 

Aber wenn ich für den lokalen Administrator das Benutzerbild ändere, tut sich in dem Verzeichnis User Account Pictures leider gar nichts :mad:  ...  die Information muß also woanders gepeichert sein. In der Registry offenbar auch nicht, zumindest nicht im Klartext. Ich habe dem Administrator testweise ein Bild mit einem recht exotischen Dateinamen zugeordnet, und den dann in der Registry gesucht - leider erfolglos :mad:

bearbeitet von Sarek
Link zu diesem Kommentar

 

Nein ... da wird ja nur beschrieben, wie man es per Mausklick macht.

 

 

 

Das klingt interessanter. Das muß ich mir mal mit Hilfe meines Wörterbuchs genauer durchlesen und dann ausprobieren. Mit Powershell habe ich noch nicht gearbeitet. Ist das in Windows 7 Professional standardmäßig integriert, oder müßte ich das dort erst nachinstallieren, damit ein entsprechendes Script verarbeitet würde?

Link zu diesem Kommentar

Das klingt interessanter. Das muß ich mir mal mit Hilfe meines Wörterbuchs genauer durchlesen und dann ausprobieren. Mit Powershell habe ich noch nicht gearbeitet. Ist das in Windows 7 Professional standardmäßig integriert, oder müßte ich das dort erst nachinstallieren, damit ein entsprechendes Script verarbeitet würde?

Lt. http://de.wikipedia.org/wiki/Windows_PowerShell ist die Version 2.0 in W7 enthalten. Scripte die das AD betreffen würde ich aber auf einem DC ausführen.

Link zu diesem Kommentar

Ich zitier mal aus dem Artikel:

 

Accounts Default Picture Location

 

All - Default Pictures C:\ProgramData\Microsoft\User Account Pictures\Default Pictures

 

Standard - Administrator C:\ProgramData\Microsoft\User Account Pictures\user.bmp

 

Guest C:\ProgramData\Microsoft\User Account Pictures\guest.bmp

 

The user account picture is stored in the hidden folder below as (username).bmp.

C:\Users\(username)\AppData\Local\Temp

Link zu diesem Kommentar

Hallo Daniel,
 
 

Accounts Default Picture Location
All - Default Pictures C:\ProgramData\Microsoft\User Account Pictures\Default Pictures
Standard - Administrator C:\ProgramData\Microsoft\User Account Pictures\user.bmp
Guest C:\ProgramData\Microsoft\User Account Pictures\guest.bmp

 
Das stimmt nur bedingt. Die C:\ProgramData\Microsoft\User Account Pictures\user.bmp habe ich sowieso schon geändert. Das ist aber das Standard-Bild für alle Benutzer, denen man nicht explizit ein Bild zugewiesen hat. Wenn ich jetzt speziell das Bild für den lokalen Administrator ändern möchte, dann bringt mich das nicht weiter.
 
 

The user account picture is stored in the hidden folder below as (username).bmp.
C:\Users\(username)\AppData\Local\Temp

 
Das kann aber nicht der eigentliche Speicherort sein, dann wäre das Bild ja futsch, wenn man den Temp-Ordner leert, was man ja von Zeit zu Zeit mal macht.
 
Mit Deinem TechNet-Artikel komme ich vermutlich auch nicht weiter, da es mir um den lokalen Administrator geht, und der findet sich nicht als Benutzer im AD.
 
Irgendwo habe ich gelesen, daß das Bild wohl in der Registry gespeichert wird, und zwar im Bereich HKLM\SAM\SAM. Da habe ich auch schon mal nachgeschaut und unter HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\000001F4\UserTile tatsächlich was gefunden (auf 000001F4 bin ich gekommen, indem ich per ProcessExplorer geschaut habe, wo im SAM-Bereich sich etwas ändert, wenn ich das Userbild für den Admin per Mausklick ändere). Es handelt sich um einen längeren Eintrag, vermutlich ist dort keine Referenz, sondern das Bild selbst gespeichert. Aber keine Ahnung in welchem Dateiformat. Der Eintrag beginnt bei mir so:
 

[HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\000001F4]
"UserTile"=hex:01,00,00,00,03,00,00,00,01,00,00,00,58,7c,00,00,42,4d,58,7c,00,\
  00,00,00,00,00,50,00,00,00,28,00,00,00,7e,00,00,00,7e,00,00,00,01,00,10,00,\
  03,00,00,00,08,7c,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
  f8,00,00,e0,07,00,00,1f,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
  d1,73,70,63,50,63,2f,5b,50,63,4f,63,6f,63,6f,63,8f,6b,8f,6b,af,6b,ae,6b,af,\
  6b,ae,6b,cf,73,cf,6b,cf,6b,8f,63,8f,63,8f,63,af,6b,8f,63,90,6b,8f,6b,b0,6b,\
  af,6b,d0,73,f0,73,11,7c,11,7c,31,84,10,7c,31,84,10,7c,f0,7b,d0,73,d1,73,b0,\
  6b,90,6b,4f,6b,70,6b,4f,63,4f,6b,2e,63,2e,63,cc,52,8b,4a,2a,42,09,3a,a7,31,\
  87,31,46,29,45,29,04,19,04,21,c3,18,e3,18,c3,18,04,21,04,19,25,21,24,21,45,\
  29,45,29,65,29,65,29,86,31,66,29,87,31,86,29,a7,31,86,29,87,31,a6,31,a7,31,\
...


Edit 11:45 Uhr:

Ich habe das ganze jetzt mal in eine Datei geparst. Die würde ich gerne hier posten; vielleicht erkennt ja jemand, was das für ein Dateiformat ist. Aber ich kann das leider nicht hochladen, ich bekomme immer die Meldung Du hast keine Berechtigung, diese Art von Dateien hochzuladen :-(

 

 

Edit 12:00 Uhr:

Jetzt habe ich es auf einer öffentlichen Upload-Seite hochgeladen:

http://www.file-upload.net/download-8672396/usertile.xyz.html
 

bearbeitet von Sarek
Link zu diesem Kommentar

Über welche Windows-Version reden wir denn? Was genau willst Du per Batch anpassen? Kannst Du das etwas detaillierter sagen?

 

Also, die Rechner laufen unter Windows 7 Professional und sind Mitglied einer Domäne.

 

Angepaßt werden soll aber das Benutzerbild des lokalen Administrators. Das Bild selber ist bereits im auf dem Rechner und heißt C:\ProgramData\Microsoft\User Account Pictures\Default Pictures\icon_administrator.bmp. Dieses Bild soll dem Administrator (und nur dem) als UserTile zugewiesen werden.

 

Das ganze wird Teil einer "prepare.bat", mit der ich auf neuen PCs ein paar Grundeinstellungen vornehme (z.B. Setzen der OEM-Informationen, Registrierung einiger OCX-Dateien usw.) 

bearbeitet von Sarek
Link zu diesem Kommentar

Welche Grösse und Farbtiefe hat denn das Bild?

 

So wie es sein soll: 128 x 128 Pixel bei 16,7 Millionen Farben.

 

 

Aktivierst Du den Administrator-Account im Rahmen des Rollouts (der ist standardmäßig deaktiviert)?

 

Ja, der Admin ist aktiv.

 

 

Vielleicht kannst Du damit was anfangen:

http://joco.name/2010/12/06/i-discovered-the-new-windows-user-tile-api/

 

Offenbar hat dieser "Joco" herausgefunden, wie es geht. Aber ich habe von C++ keine Ahnung, so daß ich mit seinem Codefragment nichts anfangen kann. Und um das ganze in Basic umzusetzen, habe ich zu wenig verstanden. So gut ist erstens mein Englisch nicht und zweitens habe ich keine große Ahnung von API-Aufrufen.

Link zu diesem Kommentar

Ich habe Dir die Ansteuerung über die shell32.dll mal auf die Schnelle als PowerShell-Skript reingetackert. Du musst dafür auf dem lokalen PC die Ausführung von lokalen Skripten vorher erlauben. Dazu die PowerShell mit administrativen Rechten starten und eingeben:

Set-ExecutionPolicy RemoteSigned

Wenn Du dann die PowerShell startest, kannst Du sicherheitshalber nochmal abfragen, ob das geklappt hat:

Get-ExecutionPolicy

Dann benutzt Du folgendes Skript:

############################################################# 
# Set-UserTile (with a little help from Set-UserTileFromAD) # 
# 2014 daniel<dot>melanchthon<at>microsoft<dot>com          # 
# Lizenz: MSDN-Nutzungsbedingungen                          # 
#         msdn.microsoft.com/de-de/cc300389.aspx            # 
############################################################# 
 
$code = @" 
[DllImport("shell32.dll", EntryPoint = "#262", CharSet = CharSet.Unicode, PreserveSig = false)] 
 public static extern void SetUserTile(string username, int whatever, string picpath); 
 
public static void ChangeUserPicture(string username, string picpath) { 
    SetUserTile(username, 0, picpath); 
} 
"@ 
 
#Get current logged in user 
$User = (Get-WmiObject Win32_ComputerSystem).UserName 
 
#Check logged on user is a local account 
$computername = $env:computername 
$local = $User.StartsWith($computername) 
If($local -eq $True){ 
         
        exit} 
 
#If local user, then configure pic as tile 
    Else{ 
     
        #get username 
        $Username = $env:username 
 
        #Set JPG temp file 
        $ImageFile = "$ENV:AppData\Microsoft\Windows\Templates\$Username.bmp" 
 
        #Configure tile image 
        Add-Type -MemberDefinition $code -NameSpace NEW -Name ChangeUserTile 
        [NEW.ChangeUserTile]::ChangeUserPicture($User,$ImageFile) 
    } 

Das einzubindene Bild legst Du vorher in den Ordner %APPDATA%\Microsoft\Windows\Templates mit dem Namen des Anwenders als Dateinamen und der Endung .bmp. Den Pfad kannst Du frei wählen und das Bild auch von einem Netzwerkpfad oder aus dem ADThumbnail-Attribut abholen.

 

In Deinem Deploymentprozess müßtest Du das Skript im Kontext des lokalen Admins einmal ausführen. Ich habe es DIr einmal als Set-UserTile.ps1-DAtei angehängt. Einfach die Endung .txt wegnehmen - ich konnte die PowerShell-Datei nicht direkt anhängen.

 

Have fun!
Daniel

 

Haftungsausschluss

Die Beispielskripts werden nicht durch die Standardsupportprogramme und -dienste von Microsoft unterstützt. Die Beispielskripts werden im gegenwärtigen Zustand und ohne jegliche Gewährleistung zur Verfügung gestellt. Microsoft schließt darüber hinaus jede konkludente Gewährleistung aus, einschließlich und ohne Einschränkung jeglicher konkludenten Gewährleistung der Handelsüblichkeit oder Eignung für einen bestimmten Zweck. Alle Risiken, die aus der Verwendung oder Ausführung der Beispielskripts und der Dokumentation entstehen, unterliegen vollständig Ihrer Verantwortung. In keinem Fall können Microsoft, ihre Autoren oder andere an der Erstellung, Produktion oder Bereitstellung der Skripts Beteiligte für irgendwelche Schäden haftbar gemacht werden (einschließlich und ohne Einschränkung aller Schäden durch Geschäftsverluste, Geschäftsausfälle, den Verlust von Geschäftsinformationen oder andere finanzielle Verluste), die aus der Verwendung oder der Nichteignung zur Verwendung der Beispielskripts oder der Dokumentation entstehen, auch wenn Microsoft über die Möglichkeit solcher Schäden unterrichtet worden ist.

Set-UserTile.ps1.txt

bearbeitet von Daniel -MSFT-
Link zu diesem Kommentar

Vielleicht kannst Du damit was anfangen:

http://joco.name/2010/12/06/i-discovered-the-new-windows-user-tile-api/

 

Offenbar hat dieser "Joco" herausgefunden, wie es geht. Aber ich habe von C++ keine Ahnung, so daß ich mit seinem Codefragment nichts anfangen kann.

Evtl. hilft es dir den Code in VB.Net zu konvertieren. http://www.developerfusion.com/tools/convert/csharp-to-vb/

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...