Dieses Informationsfenster platziere ich freiwillig und unentgeldlich zur Unterstützung meiner Schwester bei ihrem Jobwechsel. Es wird nur für eine begrenzte Zeit angezeigt und kann ausgeblendet werden. Ich hoffe, dass die Aktion keinen meiner Leser zu sehr stört. Zum Ausblenden werden Cookies benutzt, diese müssen aktiviert und für diese Seite erlaubt werden. Werden die Cookies gelöscht oder die Seite auf einem anderen Gerät betrachtet, erscheint das Informationsfenster wieder und muss erneut geschlossen werden.

Information

Katja Schurig sucht neue berufliche Herausforderungen!

Liebe Leser, ich habe hier einen Geheimtipp für euch:
Katja Schurig
Katja Schurig, berufserfahren und kampferprobt in den Bereichen Veranstaltungsmanagement und -verkauf, Personalwesen, Sales & Marketing sowie Tourismus, will sich neuen beruflichen Herausforderungen stellen. Wer mit viel Energie umgehen kann und auf der Suche nach einer professionellen Fachkraft ist (oder jemanden kennt, der jemanden kennt), der findet ihr Profil nebst Kontaktdaten auf: Xing
Edit Comment
IT-Stuff, Tutorials, Software, Internet, Unterhaltung Willkommen auf IMA

Ich traf heute auf ein spezielles Problem in Excel 2007.

Einleitung – Bilder in Excel

Beim Kopieren von Inhalten mit Bildern nach Excel, zum Beispiel Tabellen mit Icons von einer Webseite, werden Textinhalte und Bilder in Excel eingefügt.
Der Inhalt wird als Zelleninhalt eingefügt, die Bilder werden separat und einzeln als Objekte eingefügt.
Bei einer Tabellen mit vielen kleinen Icons können dadurch in einem Dokument schnell hunderte Bild-Objekte entstehen, oder aber viele größere Bilder.
bilder-in-excel-step1

Hier also bereits aufpassen, dass sich das Dokument nicht zu sehr aufbläht.
Abhilfe: Wenn ihr die Bilder nicht braucht, fügt die Daten als Text-only ein, ohne Bilder. Das geht beispielsweise über Rechtsklick -> Inhalte einfügen… -> Nur Text.
Alternativ kann bereits auf der Webseite nur der Text ohne Bilder kopiert werden, beispielsweise mit entsprechenden Browser Erweiterungen wie “Copy Plain Text” für Chrome.

Das Problem

Beim Überschreiben der Zellen werden nicht die Bild-Objekte überschrieben oder gelöscht. Die Zelleninhalte werden überschrieben, die alten Bild-Objekte jedoch nicht; diese verschwinden nur hinter den neuen Inhalten und Icons, werden also verdeckt.
bilder-in-excel-step1bilder-in-excel-step2-ueberschreibenbilder-in-excel-step3-bilder

Links: Inhalte mit Grafiken eingefügt, Mitte: Neue Inhalte mit anderen Grafiken (aber selbe Position und Größe) eingefügt. Es sieht so aus, als wenn die Inhalte komplett überschrieben wurden. Aber: Rechts: Obersten Bilder verschoben, die alten Bilder sind noch darunter.

Wenn eine Tabelle mit 100 Icons oder eine Webseite mit etlichen Thumbnails mit neuen Inhalten überschrieben wird – die neuen Bilder befinden sich dabei jedoch an der selben Stelle und haben die selbe Größe -, werden die alten Bilder verdeckt aber es befinden sich nun doppelt so viele Icons/Bilder in der Tabelle.
Mit jedem Mal Überschreiben enthält das Dokument mehr Bild-Objekte und wird immer größer. Irgendwann wird Excel extrem langsam oder verweigert komplett jegliche Aktion und Interaktion.

Lösung

Eine Lösung steht oben schon: entweder Inhalte einfügen als “Nur Text”, ohne Bilder.
Alternativ können auch nachträglich alle Bilder entfernt werden, wenn Excel die Arbeit an dem Dokument noch nicht komplett verweitert. Dazu werden zuerst alle Objekte selektiert mit:
Office 2007++: Suchen und Auswählen -> Inhalte auswählen -> Objekte
Office 2003–: Bearbeiten -> Gehe zu -> Inhalte -> Objekte
und diese dann per [ENTF] Taste gelöscht. Vorsicht jedoch, solltet ihr noch andere Objekte außer Bilder verwenden.
bilder-in-excel-entfernen-step1-suchen-und-auswaehlen-inhaltebilder-in-excel-entfernen-step2-objekte-entfernen


Die meisten haben sicher schon gehört, dass Google an selbstfahrenden Autos arbeitet; und zwar schon seit einigen Jahren. Mittlerweile haben die “driverless cars” von Google über 1 Millionen Kilometer hinter sich gebracht und sind ziemlich weit entwickelt. Folgendes Video zeigt den aktuellen Stand im echten Straßenverkehr:
YouTube Preview Image

Die Technologie hat sicher noch viel Entwicklung vor sich, ist aber jetzt schon unglaublich gut. So gut, dass in Nevada und Florida bereits fahrerlose Autos erlaubt sind, in Kalifornien und Michigan ebenfalls noch mit Einschränkungen.
Diese Entwicklung wird die Welt in den kommenden Jahren (ggf. Jahrzehnt) stark verändern und viele Möglichkeiten eröffnen. Benachteiligte Personen könnten enorm profitieren. Wie der Blinde Steve Mahan die ersten Erfahrungen sammelte:
YouTube Preview Image

Dass die nötige Technik, die in dem Google Auto steckt um es von selbst fahren zu lassen, an die $150.000 kostet, mag einer der Nachteile sein. Aber ich hoffe, dass die Entwicklung schnell und positiv verlaufen wird; ich sehe hier viel Potenzial. Auch wenn es wieder viel länger dauern wird bis Deutschland die Technologie überdenkt oder sogar annimmt – so wie wir Hybrid lange ignoriert haben und jetzt kaum an den Mann kriegen.

via, via


Wie ihr eventuell in den News mitbekommen habt, wurden mal wieder E-Mail Adressen im großen Stil gehackt. 18 Millionen deutsche Adressen sollen ebenfalls betroffen sein. Das BSI bietet erneut an, E-Mail Adressen auf eine Gefährdung hin zu überprüfen.
bsi-mail-check-service
Ich kann empfehlen, dass jeder das für seine privaten Adressen einmal durchgeht.

Wenige E-Mails einzeln testen

Nach dem Absenden der Eingabe erhaltet ihr einen Code, bestehend aus 4 Zeichen. Speichert euch diesen Code!
Bei der Überprüfung wird die eingegebene Adresse mit der Liste gehackter Adressen abgeglichen und bei einer Übereinstimmung (also bei der Möglichkeit eines erfolgreichen Hacks!) eine Bestätigungsmail an diese Adresse versendet. In dieser Mail steht dann ebenfalls ein Code. Überprüft diese 2 Codes – wenn die Codes übereinstimmen ist die E-Mail Adresse vermutlich betroffen; wenn nicht handelt es sich ggf. um einen Hoax.

Viele E-Mails automatisiert testen

Als IT-Administrator bin ich natürlich auch für die Sicherheit aller E-Mail-Adressen des Unternehmens zuständig. Daher war es nötig, alle E-Mail-Adressen prüfen zu lassen. Da das BSI keine “Massenabfertigung” anbietet, musste eine Automatisierung her; keine Zeit dutzende Adressen von Hand dort einzugeben und den Code zu kopieren.
Ich habe mir innerhalb weniger Minuten ein AutoIt Skript gebastelt, dass diesen Job in kürzester Zeit erledigt.

Hier der Code:

;options
AutoItSetOption("SendKeyDelay", 100)
AutoItSetOption("SendKeyDownDelay", 50)
AutoItSetOption("MouseClickDelay", 20)

For $iCount = 1 To 45

   WinWaitActive("Microsoft Excel - ExportData.csv","")
   Send("{CTRLDOWN}c{CTRLUP}{ALTDOWN}{TAB}{ALTUP}")
   WinWaitActive("BSI-Sicherheitstest - Google Chrome","")
   Send("{CTRLDOWN}lv{CTRLUP}{ENTER}")
   MouseClick("left",1271, 168,1)
   Send("{TAB}{ALTDOWN}{TAB}{ALTUP}")
   WinWaitActive("Microsoft Excel - ExportData.csv","")
   Send("{TAB}{CTRLDOWN}c{CTRLUP}{ALTDOWN}{TAB}{ALTUP}")
   WinWaitActive("BSI-Sicherheitstest - Google Chrome","")
   Send("{CTRLDOWN}v{CTRLUP}{TAB}{SPACE}")
   MouseClick("left",1378, 355,2)
   Send("{CTRLDOWN}c{CTRLUP}{ALTDOWN}{TAB}{ALTUP}")
   WinWaitActive("Microsoft Excel - ExportData.csv","")
   Send("{TAB}{F2}{CTRLDOWN}v{CTRLUP}{ENTER}{LEFT}{LEFT}{CTRLDOWN}c{CTRLUP}")

Next

Ich denke das Prinzip wird klar. Ließe sich vielleicht optimieren aber Zeit und Nutzen stehen da nicht im Verhältnis.

Aufbau:
Ihr müsst

  1. Chrome benutzen oder die WinWaitActive Fenstertitel anpassen,
  2. auf einem Monitor mit 1920×1080 sowohl Excel als auch den Browser halbieren, Excel links, Browser rechts
  3. in der Excel Tabelle 2 Spalten haben: 1. Spalte der BSI-Link, 2. Spalte die Mail Adresse, in die dritte Spalte wird automatisch der Code eingetragen, je 1 Zeile für jede zu überprüfene E-Mail-Adresse
  4. diese Excel Datei ExportData.csv nennen oder den WinWaitActive Fenstertitel anpassen
  5. die 2 Click-Koordinaten nochmal überprüfen (nutzt dazu “AutoIt Window Info” – Au3Info.exe)

Grob sollte das reichen, ggf. müsst ihr noch Kleinigkeiten korrigieren aber ich denke damit sollte es schonmal grob laufen.

Hier das Video des laufenden Skripts:


Aus irgendwelchen Gründen kommt es bei Windows hin und wieder dazu, dass Dateien des Typs .vbs (Visual Basic Script) nicht mehr korrekt gelinkt sind. Beim Doppelklick werden diese nicht ausgeführt sondern folgender Fehler angezeigt:
Fehler-Für-die-Dateierweiterung-vbs-gibt-es-kein-Skriptmodul

Möglicherweise sind Antivirensysteme Schuld, ggf. auch deren unsaubere Deinstallation. Diese schreiben nämlich oftmals die Ausführung bestimmter Dateitypen um und überwachen diese dadurch irgendwie. Wenn die Verlinkung dann nicht mehr auf den Standard zurückgesetzt wird, sind die Dateien nicht mehr ausführbar.

Lösung

regedit -> HKEY_CLASSES_ROOT\.vbs -> (Standart) auf “VBSFile” setzen.
Dann geht alles wieder.
via


selbstständig-online-lernen-lecturio-banner

gettyimages.de

In immer mehr Bereichen und Branchen wird es immer wichtiger, sich selbstständig weiterzubilden. Vor allem schnelllebige Branchen, wie beispielsweise der komplette Webbereich in der IT, brauchen waschechte Autodidakten, die mit der verrückten Geschwindigkeit der Entwicklung Schritt halten können. Neues Wissen lässt sich auf viele Wege aneignen, das Internet bietet unzählige Quellen für informative Texte, Dokumente und Videos jeglicher Art. Aber spätestens bei hochkomplexen Themen oder einem gewissen Qualitätsanspruch hilft Youtube und Google nicht mehr weiter. Stattdessen sind gut aufbereitete, professionell vermittelte und interaktive Lernmethoden von Nöten.

An dieser Stelle setzt das eLearning Portal Lecturio an. Hier hat der Nutzer Zugriff auf über 5000 Fachvorträgen aus über 80 Themenbereichen, zusammengefasst in über 700 Kursen, die mehrere Fachvorträge vereinen. Die größten Kategorien – Business, Software, Jura und Medizin – verdeutlichen schon den Schwerpunkt des Portals. Der Fokus liegt auf professionellen und interaktiven Videos zu komplexen Wissensgebieten, bei denen die Qualität des Lernmaterials entscheidend ist. Aber auch in Kategorien wie Sprachen, Gesundheit und Freizeit finden sich schon viele Kurse mit Hunderten Vorträgen.
selbstständig-online-lernen-lecturio-kategorienselbstständig-online-lernen-lecturio-uebersicht-neu

Die Plattform besticht schon auf den ersten Blick mit einer sehr guten Übersichtlichkeit und Bedienbarkeit. Dies ist schon beim Einsteig in die Community bemerkbar; für die Registrierung wird einfach nur eine E-Mail Adresse gefordert. Noch schneller geht es direkt über Facebook oder Xing, wodurch auch direkt ein paar persönliche Informationen in das Lecturio Profil übernommen werden. Das war’s. Optionale Einstellungen lassen sich nachträglich jederzeit im Profilmenü finden und anpassen.
selbstständig-online-lernen-lecturio-registrierenselbstständig-online-lernen-lecturio-startseite

Als Dankeschön für die Anmeldung bekommt man auch direkt einen Fachvortrag für 12 Monate kostenlos spendiert. Also, direkt auf die Suche nach dem ersten Vortrag! Das Stöbern in den Kategorien, Kursen und Vorträgen ist einfach und macht Spaß. Neben den thematischen Kategorien kann man auch in den Bereichen NEU, Bestseller, Im Angebot, Flatrates und Aus der TV Werbung suchen. Die Themenkategorien lassen sich zudem nach Preis, Datum, Beliebtheit und Bewertung sortieren.
selbstständig-online-lernen-lecturio-uebersicht-sortierenselbstständig-online-lernen-lecturio-uebersicht-neu

An dieser Stelle vermisse ich jedoch, wie in so vielen Portalen, eine clevere Filterfunktion. Filtern nach Preis, Bewertung, Anzahl Vorträge, Gesamtlaufzeit, usw. Damit würde man noch schneller den richtigen Kurs für sich selbst finden. Je größer das Angebot von Lecturio wird, desto wichtiger würde ich eine solche Funktion finden.

Die Kurse sind ebenfalls übersichtlich dargestellt und alle wichtigen Informationen sind schnell erfasst. Ein Kurs ist eine thematisch-passende Kombination aus mehreren Fachvorträgen. Wenn es sehr viele Vorträge sind, werden diese oft in Vortrag-Sets zusammengesetzt. Es gibt auch Kurs-Pakete, in denen mehrere passende Kurse mitsamt aller Inhalte verfügbar sind. Alle diese Komponenten können als Ganzes oder einzeln gekauft werden. Der User kann also sehr genau seine gewünschten Inhalte heraussuchen. Jedoch ist man preislich eigentlich immer am besten dran, das größte Komplettpaket zu kaufen. Ein Kauf ist immer auf mindestens 12 Monate verpflichtend. Der Betrag kann als monatliches Abo oder Einmalzahlung (welche etwas günstiger ist als das Abo) gekauft werden.
Nach Ablauf der 12 Monate kann der Inhalt für 33% des originalen Monatspreises behalten werden.
selbstständig-online-lernen-lecturio-kaufoptionen-bezahlungselbstständig-online-lernen-lecturio-kaufoptionen

Obwohl das System so flexibel ist, muss ein Kauf immer für 12 Monate getätigt werden. Hier sehe ich eine große Schwachstelle. Es gibt auch Kurse mit 1-5 Vorträgen, mit nur einigen Minuten bis wenigen Stunden Material. Es ergibt für mich keinen Sinn Inhalte, die ich an einem Tag durcharbeiten könnte, für 12 Monate zu kaufen. Hier sind entweder Centbeträge nötig (ein 30-minütiger Vortrag sollte mich nicht 30€ kosten…) oder irgendeine Möglichkeit, auch Käufe für kürzere Zeiträume zu tätigen.

Die Fachvorträge werden in einem extra entwickeltem Player wiedergegeben. Der Player ermöglicht gewisse Interaktionen. Damit diese genutzt werden können, müssen die Vorträge von professionellen Personen extra für die Plattform aufbereitet und aufgenommen werden. Es gibt 2 Videobereiche und eine Kapitelübersicht, Folienwechsel werden in der Zeitleiste mit einem roten Strich markiert und mit Pfeiltasten kann schnell und einfach durch das Video gesprungen werden. Oftmals sind in einem Vortrag kleinere Quizfragen eingebaut, um das Gehörte zu testen. Fullscreen und HD optimieren die Ansicht bei kleinteiligen Videoinhalten wie Softwarescreenshots.
selbstständig-online-lernen-lecturio-player-quizfragenselbstständig-online-lernen-lecturio-vortrag-player

Natürlich dürfen mobile Apps nicht fehlen, lange Fahrten gehören für viele Menschen schon zum Arbeitsalltag und das Lernen bietet sich da ja an. Die Android App ist absolut minimalistisch aufgebaut; es gibt eigentlich nur den Punkt “Meine Inhalte”. Dort werden Kurse und Vorträge angezeigt und können gestartet werden. Der Player besteht hier aus einem einfachen Videofenster und einer Inhaltsübersicht, die beim Klick zu der entsprechenden Stelle im Video springt. Alles sehr einfach zu bedienen, kein Spielkram und verrückte Extras.

selbstständig-online-lernen-lecturio-android-app-meine-inhalteselbstständig-online-lernen-lecturio-android-app-kursselbstständig-online-lernen-lecturio-android-app-player

Leider hat die App noch viele Einschränkungen und Macken. Die Wiedergabe des Videos stoppt, wann immer die App nicht mehr aktiv im Vordergrund sichtbar ist. Sei es durch Wechsel in eine andere App oder Ausschalten des Bildschirms, schon ist Ruhe. Nach dem Zurückwechseln zur Lecturio App wird das Video mühsam erneut geladen, was recht lange dauert. Außerdem kommt es dann zu 90% vor, dass zwar der Ton weiterläuft, aber das Video hängen bleibt. Dann muss man den Kurs erst komplett verlassen um ihn dann wieder neu zu öffnen und an die Stelle zu springen, wo man war. Ein nerviger Fehler. Also wer die App verlässt oder den Bildschirm ausgehen lässt hat Pech gehabt und muss vermutlich den Kurs komplett neu starten, das geht natürlich gar nicht.
Außerdem wäre es extrem attraktiv die Kurse vorladen zu können. Nicht jeder hat genug Traffic unterwegs die Kurse einmal oder gar mehrfach zu laden. Also das Offline-Verfügbar-Machen von Kursen, beispielweise aus einem WLAN heraus, würde dem Datenverbrauch zugute kommen (man bräuchte einfach mal gar kein Internet mehr, auch gut für Zugfahrten), sowie die langen Ladezeiten verschwinden lassen.
Also hier bitte bitte weiter dran arbeiten, unterwegs lernen sollte möglich sein.

Fazit: Lecturio bietet ein umfangreiches Komplettpaket für das autodidaktische Lernen von zu Hause oder unterwegs. Webseite und Portal sind von hoher Qualität und schaffen eine fast makellose Nutzererfahrung. Die Auswahl der Lerninhalte ist bereits groß und wächst stätig. Mit den Kursen, die im Angebot sind, kann man auch ziemlich gutes Wissen für wenige Euro abgreifen, wenn man regelmäßig vorbeischaut. Auch das Portal wird ständig weiterentwickelt. Allein während ich diesen Artikel schrieb veränderten sich kleine Details und Funktionen, es wird also fleißig gearbeitet. An den Apps kann man sicher noch etwas arbeiten, damit dort neben den eigenen Inhalten auch etwas mehr machbar ist. Lecturio wird im eLearning Bereich sicher auch in Zukunft eine große Rolle spielen; vorerst als Top Player in Deutschland und auf dem guten Wege zum Top Global Player.


Das Passwort von Windows Accounts zu ändern ist eigentlich eine einfache Angelegenheit. Auch in der Konsole gibt es einen sehr einfachen Befehl:

net user [username] [passwort]

Ein sehr simples Skript zum Neusetzen eines Passworts könnte also so aussehen:

@echo off & setlocal & color 9f
set user=user
set newpw=muhuu123!
net user %user% %newpw%
endlocal

Aber an dieser Stelle geht es mir natürlich nicht um das Ändern eines einzelnen Passworts. Es geht um die Massenänderung eines Passworts, beispielsweise eines Administratorpassworts auf jedem Computer eines Netzwerks.
Nun kann es jedoch bei Dutzenden, Hunderten oder Tausenden Nutzern/Computern zu verschiedenen Problemen oder Nebeneffekten kommen. Der Nutzer könnte nicht existieren, deaktiviert sein oder ein Password mit Ablaufdatum besitzen. Diese Faktoren sollten bedacht werden.

Ich habe ein Skript geschrieben, welches alle diese Faktoren berücksichtigt:

@echo off & setlocal & color 9f
set wd=\\lea\Deployment\Sonstiges\change-admin-pw
set log=%wd%\change-admin-pw.log

REM ###### EDIT THIS ######
REM desired local user account
set user=user
REM is it an active directory domain user or a local user account; can be yes, 1, no, 0
set domainuser=no
REM needed if domain user
set domainparam=
REM desired new password, pay attention to password policies if activated
set newpw=my4w3s0mePW!
REM checks if the desired user account is activated on the machine; can be yes, 1, no, 0
set checkactive=yes
REM needed if active check is performed
set active=0
REM if the user is deactivated, should it get activated, can be yes, 1, no, 0
set reactivate=yes
REM checks if the old password has an expiration date, which would also get changed to a newer date; can be yes, 1, no, 0
set checkpwexpire=yes
REM needed if expiration check is performed
set expires=0
REM changes password though it has an expiration date; can be yes, 1, no, 0
set changeanyways=yes

REM check for empty variables
if "%user%"=="" goto end
if "%newpw%"=="" goto end

REM prepare domain usage
if "%domainuser%"=="yes" set domainparam=/domain
if "%domainuser%"=="1" set domainparam=/domain

REM check if user exists
net user %user% %domainparam%
if not %errorlevel%==0 echo %date% %time:~0,8% Nutzer %user% scheint nicht zu existieren >> %log% && goto end
goto active

:active
if "%checkactive%"=="0" goto expires
if "%checkactive%"=="no" goto expires
REM check if user is active
for /f "tokens=1-3" %%i in ('net user %user% %domainparam%') do ( if "%%i %%j"=="Konto aktiv" set active=%%k )
if "%active%"=="Ja" goto expires
if "%active%"=="Yes" goto expires
REM activate the user if wished
if "%reactivate%"=="yes" net user %user% %domainparam% /Active:YES
if "%reactivate%"=="1" net user %user% %domainparam% /Active:YES
echo %date% %time:~0,8% Nutzer %user% ist deaktiviert. Passwort wird trotzdem zurückgesetzt. >> %log%
goto expires

:expires
if "%checkpwexpire%"=="0" goto changepw
if "%checkpwexpire%"=="no" goto changepw
REM check if user password has an expiration date
for /f "tokens=1-4" %%i in ('net user %user% %domainparam%') do ( if "%%i %%j %%k"=="Kennwort läuft ab" set expires=%%l )
if "%expires%"=="Nie" goto changepw
if "%expires%"=="Never" goto changepw
if "%changeanyways%"=="yes" goto changepw
if "%changeanyways%"=="1" goto changepw
echo %date% %time:~0,8% Nutzer %user% hat ein zeitlich limitiertes Passwort, Passwortänderung wird abgebrochen. >> %log%
goto end

:changepw
net user %user% %newpw% %domainparam%
set pwEL=%errorlevel%
if %pwEL%==0 echo %date% %time:~0,8% Passwort geändert. User: %user% - Aktiviert: %active% - PW läuft ab: %expires% >> %log% && goto end
echo %date% %time:~0,8% Fehler beim Ändern des Passworts: %pwEL%. User: %user% - Aktiviert: %active% - PW läuft ab: %expires% >> %log%
REM Errorlevel 2 means that the chosen password doen't meet the password policy guidelines
goto end

:end
endlocal

Erläuterung:
Anhand der Variablen lässt sich das Verhalten des Skriptes in bestimmten Situationen steuern. Die Kommentare sollten eigentlich alles soweit klar machen.
Ich habe das Skript noch nicht ausführlich getestet, es sollte aber eigentlich keine Probleme geben.

Nun gibt es noch ein letztes Problem: ein solches Skript sollte niemals einfach so auf den Netzlaufwerken liegen, schließlich steht das Passwort dort im Klartext. Und die Ordner, in denen die Gruppenrichtlinienskripte liegen, sind oftmals für die Computer- oder Nutzerobjekte der Domäne lesbar. IT-erfahrene Nutzer könnten also das Skript finden und einsehen.

Es ist also wichtig das Passwort oder das komplette Skript zu verschlüsseln. Je nach Firma, Größe, Nutzergruppe, Sicherheitsrichtlinien usw. muss man in diesen Punkt mehr oder weniger Arbeit stecken.
Ich habe an dieser Stelle ein sehr einfaches Tool gefunden, welches Batch Skripte in .exe Dateien kompilieren kann und damit den Inhalt (für die meisten Menschen) unlesbar macht: Bat To Exe Converter von F2KO macht genau das, was der Name sagt. Außerdem kann die .exe Datei mit einem Passwort verschlüsselt, unsichtbar ausgeführt und mit einem Icon sowie vielen Metainformationen versehen werden.
change-reset-local-user-passwords-bat-to-exe-compiler

Also, Nutzer und endgültiges Passwort in das Skript eintragen, kompilieren und die .exe Datei auf das Netzlaufwerk legen und verteilen. Wenig später ist das Passwort überall neu gesetzt.


Der Leser Matthias Buchner fragte mich vor einiger Zeit, wie man mit Batch bestimmte Aktionen in allen Benutzerprofilen eines PCs ausführen kann. Die Lösung lieferte er später selbst und ich möchte euch das natürlich nicht vorenthalten. Mehr zu seiner Lösung in Schritt 4, vorher erstmal etwas Code-Kennenlernen und Basics.

Allgemein gesehen geht es darum Batch Aktionen in allen Unterordnern eines Ordners auszuführen. Dies lässt sich dann später auf das C:\Users\ Verzeichnis anwenden um den erwähnten Effekt zu erzielen.

Schritt 1: Unterordner eines Ordners ausgeben

Fangen wir klein an:

REM Achtung, Doppelbackslash Bug, siehe unten
setlocal
set rootdir=%cd%
set localusersdir=%systemdrive%\Users
for /d %%i in (%localusersdir%\*) do (
  echo %%i
)
pause
endlocal

Das Script gibt alle Unterordner eines Ordners aus. (linker Screenshot)
Erste mögliche Problemstelle: damit der Code funktioniert muss am Ende des Pfades \* stehen. Wenn die Pfadvariable jetzt bereits ein \ am Ende zu stehen hat (Laufwerksangabe z.B. per “C:\”), werden Pfade mit doppelten Backslashes ausgegeben. (rechter Screenshot) Das kann natürlich zu weiteren Problemen führen.
batch-execute-actions-in-each-subdir-simple batch-execute-actions-in-each-subdir-doublebackslash

Um das Problem zu beheben und unabhängig davon zu sein, wie der Pfad am Ende aussieht, habe ich folgenden Workaround gebastelt:

setlocal ENABLEDELAYEDEXPANSION
set rootdir=%cd%
set localusersdir=%systemdrive%\Users
for /d %%i in (%localusersdir%\*) do (
  set dir=%%i
  echo !dir:\\=\!
)
pause
endlocal

Bei der Verarbeitung auftretende Doppelbackslashes werden durch einfache Backslashes ersetzt.
batch-execute-actions-in-each-subdir-doublebackslash-fix

Schritt 2: Aktionen auf Elemente in Unterordnern ausführen

Damit lassen sich jetzt also Aktionen auf die direkten Unterordner eines Ordners ausführen. Das hilft jetzt aber selten.
Wichtiger ist es auf einen bestimmten Ordner oder eine Datei in jedem Unterordner Aktionen auszuführen.
Dazu wäre folgender Code eine Grundlage:

setlocal ENABLEDELAYEDEXPANSION
set localusersdir=%systemdrive%\Users
for /d %%i in (%localusersdir%\*) do (
  set dir=%%i
  del /q /f "!dir:\\=\!\Desktop\passwords.txt"
)
pause
endlocal

Der Code schaut in allen Benutzerprofilen auf dem Desktop nach einer passwords.txt und löscht diese, falls vorhanden. Funktioniert dank Workaround auch bei Doppelbackslashes.
batch-execute-actions-in-each-subdir-delete-edit-file-doublebackslash batch-execute-actions-in-each-subdir-delete-edit-file

Das Beispiel lässt sich jetzt beliebig ausbauen.

Schritt 3: mehrfache Verschachtelung

Dieser Fall kommt vielleicht seltener vor, war aber tatsächlich die Anfrage des Lesers: Bestimmte Aktionen in allen Benutzerprofilen ausführen; diese Aktion war eine Manipulation der Firefox Einstellungen, die wiederum in allen Firefox Profilen stattfinden soll.
Also [foreach] User -> [foreach] Firefox Browser Profile -> [do smth]
Dazu muss der oben gezeigte Code verschachtelt werden:

@echo off
setlocal ENABLEDELAYEDEXPANSION
set localusersdir=%systemdrive%\Users\
for /d %%i in (%localusersdir%\*) do (
  set dir=%%i
  echo User Profile: !dir!
  for /d %%j in ("!dir:\\=\!\AppData\Roaming\Mozilla\Firefox\Profiles\*") do (
    set deepdir=%%j
    echo Browser Profile: !deepdir!
    if "!deepdir:~-8!"==".default" (
      echo profile valid
      findstr /i /c:devtools.toolbox.selectedTool !deepdir!\prefs.js
      if not errorlevel 1 (
        echo prefs.js valid, rename it
        ren "!deepdir!\prefs.js" "prefs_backup.js"
      )
    )
  )
  echo.
)
pause
endlocal

Erläuterung: Jeder Firefox Profilordner aller lokalen Benutzer wird überprüft, ob er mit “.default” endet. Wenn das der Fall ist wird in dem Ordner in der Datei prefs.js nachgesehen, ob die Zeichenkette “devtools.toolbox.selectedTool” enthalten ist. Wenn ja wird die Datei in prefs_backup.js umbenannt, wodurch die Einstellungen des Firefox Profils zurückgesetzt werden (also seid vorsichtig mit dem Beispiel).

batch-execute-actions-in-each-subdir-nested-commands-complex
Der Screenshot zeigt die 4 unterschiedlichen Reaktionen:
User 1: Profil gefunden jedoch existiert keine prefs.js in dem Ordner (ungewöhnlich, hätte ich es nicht provoziert)
User 2: Profil gefunden, prefs.js gefunden, jedoch enthält sie den gesuchten String nicht
User 3: kein Firefox Profilordner gefunden
User 4: Profil gefunden, prefs.js gefunden, String gefunden (beim 2. Profil), Datei wird umbenannt

Das Beispiel soll nur zeigen, dass sich für eine Menge von Unterordnern, welche wiederum Unterordner eines Root Ordners sind, komplexe Überprüfungen und Befehle ausführen lassen. Jedoch hat auch das seine Grenzen. Beispielsweise können innerhalb der for Blöcke eine goto Sprungmarken benutzt werden. Es gibt sicher noch weitere Dinge, die in diesem Konstrukt nicht so funktionieren, wie sie es in Batch normalerweise tun, bisher ist mir nur das mit dem goto aufgefallen.

Schritt 4: Code komprimieren und optimieren

Ohne Überprüfungen, mögliche Fehler-Korrekturen, Variablen usw ist das Programm zwar weniger flexibel aber dafür sehr viel kürzer. Ich poste hier das konkrete Beispiel, dass mir Matthias Buchner per Mail geschickt hat:

FOR /D %%i IN (%systemdrive%\Users\*) Do FOR /D %%j IN (%%i\AppData\Roaming\Mozilla\Firefox\Profiles\*) Do (
 ren "%%j\prefs.js" "prefs_backup.js"
 findstr /v /i /c:Test "%%j\prefs_backup.js" >> "%%j\prefs.js"
 del /q/f "%%j\prefs_backup.js" 2>nul 1>nul
)

Alle Firefox Profile aller Nutzer werden nach der prefs.js durchsucht. Über einen typischen Batch Workaround werden aus der prefs.js einfach nur alle Zeilen, die den String “Test” enthalten, gelöscht.

Mehr Firefox Profile Manipulation mit Batch hier: Batch: Textzeile aus einer Datei herauslöschen/filtern (ist aber das gleiche wie in Schritt 4: bestimmte Zeilen entfernen)




Admin

Sie möchten hier werben oder Sponsor auf längere Zeit werden? Ich garantiere Ihnen unschlagbare Preise bei meinen Besucherzahlen. Egal ob Banner, Textlinks oder andere Werbeformen. Informieren Sie sich bei mir unter werbung@hannes-schurig.de