Sarek 11 Geschrieben 27. Februar 2014 Melden Teilen Geschrieben 27. Februar 2014 Hallo zusammen, weiß jemand, wo Windows speichert, welcher Benutzer welches Anmelde-Bild hat? Ich möchte das gerne per Batch-Datei anpassen. Danke im Voraus, Sarek Zitieren Link zu diesem Kommentar
Smidddi 3 Geschrieben 27. Februar 2014 Melden Teilen Geschrieben 27. Februar 2014 Hallo, ab Windows 7 hiier: C:\ProgramData\Microsoft\User Account Pictures Zitieren Link zu diesem Kommentar
Sarek 11 Geschrieben 27. Februar 2014 Autor Melden Teilen Geschrieben 27. Februar 2014 (bearbeitet) 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 28. Februar 2014 von Sarek Zitieren Link zu diesem Kommentar
Sarek 11 Geschrieben 1. März 2014 Autor Melden Teilen Geschrieben 1. März 2014 hm, hat keiner eine Idee dazu? Zitieren Link zu diesem Kommentar
Daniel -MSFT- 129 Geschrieben 1. März 2014 Melden Teilen Geschrieben 1. März 2014 Hilft das hier weiter? http://www.sevenforums.com/tutorials/5187-user-account-picture-change.html BTW: Du kannst auch ein Bild im AD beim Benutzer hinterlegen: http://social.technet.microsoft.com/wiki/contents/articles/19028.active-directory-add-or-update-a-user-picture-using-powershell.aspx Zitieren Link zu diesem Kommentar
Sarek 11 Geschrieben 1. März 2014 Autor Melden Teilen Geschrieben 1. März 2014 Hilft das hier weiter? http://www.sevenforums.com/tutorials/5187-user-account-picture-change.html Nein ... da wird ja nur beschrieben, wie man es per Mausklick macht. BTW: Du kannst auch ein Bild im AD beim Benutzer hinterlegen: http://social.technet.microsoft.com/wiki/contents/articles/19028.active-directory-add-or-update-a-user-picture-using-powershell.aspx 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? Zitieren Link zu diesem Kommentar
Sunny61 806 Geschrieben 1. März 2014 Melden Teilen Geschrieben 1. März 2014 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. Zitieren Link zu diesem Kommentar
Daniel -MSFT- 129 Geschrieben 1. März 2014 Melden Teilen Geschrieben 1. März 2014 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 Zitieren Link zu diesem Kommentar
Sarek 11 Geschrieben 2. März 2014 Autor Melden Teilen Geschrieben 2. März 2014 (bearbeitet) Hallo Daniel, Accounts Default Picture LocationAll - Default Pictures C:\ProgramData\Microsoft\User Account Pictures\Default PicturesStandard - Administrator C:\ProgramData\Microsoft\User Account Pictures\user.bmpGuest 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 2. März 2014 von Sarek Zitieren Link zu diesem Kommentar
Daniel -MSFT- 129 Geschrieben 2. März 2014 Melden Teilen Geschrieben 2. März 2014 Über welche Windows-Version reden wir denn? Was genau willst Du per Batch anpassen? Kannst Du das etwas detaillierter sagen? Zitieren Link zu diesem Kommentar
Sarek 11 Geschrieben 2. März 2014 Autor Melden Teilen Geschrieben 2. März 2014 (bearbeitet) Ü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 2. März 2014 von Sarek Zitieren Link zu diesem Kommentar
Daniel -MSFT- 129 Geschrieben 2. März 2014 Melden Teilen Geschrieben 2. März 2014 (bearbeitet) Welche Grösse und Farbtiefe hat denn das Bild? Aktivierst Du den Administrator-Account im Rahmen des Rollouts (der ist standardmäßig deaktiviert)? bearbeitet 2. März 2014 von Daniel -MSFT- Zitieren Link zu diesem Kommentar
Sarek 11 Geschrieben 2. März 2014 Autor Melden Teilen Geschrieben 2. März 2014 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. Zitieren Link zu diesem Kommentar
Daniel -MSFT- 129 Geschrieben 2. März 2014 Melden Teilen Geschrieben 2. März 2014 (bearbeitet) 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 2. März 2014 von Daniel -MSFT- Zitieren Link zu diesem Kommentar
Sunny61 806 Geschrieben 2. März 2014 Melden Teilen Geschrieben 2. März 2014 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/ Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.