Neues Feature beim IML-Backup: Hooks
Nachdem vor 2 Wochen das Prune und Verify separat ausführbar und konfigurierbar wurden, gibt es nun ein weiteres Feature: Hooks.
Das Backup läuft wie folgt ab
- Initialisierung
- Start der Backups der lokalen Datenbanken (z.B. Mysql, Sqlite)
- Backup der definierten lokalen Verzeichnisse
- Prune (Ausdünnen und Löschen alter Backup-Daten)
- Verify
Die Hooks dienen zum Starten von eigenen Skripten … vor dem Start des Backups und danach sowie auch an mehreren Punkten während des Backups.
Es gibt initial diese Verzeichnisse, die du Skripte ablegen kannst, um sie zu definierten Zeitpunkten zu starten:
> tree -d hooks/ hooks/ |-- 10-before-backup | `-- always |-- 12-before-db-service | `-- always |-- 14-before-db-dump (UNUSED) | `-- always |-- 16-after-db-dump (UNUSED) | |-- always | |-- on-error | `-- on-ok |-- 18-after-db-service | |-- always | |-- on-error | `-- on-ok |-- 20-before-transfer | `-- always |-- 22-before-folder-transfer | `-- always |-- 24-after-folder-transfer | |-- always | |-- on-error | `-- on-ok |-- 26-after-prune | |-- always | |-- on-error | `-- on-ok |-- 28-after-verify | |-- always | |-- on-error | `-- on-ok `-- 30-post-backup |-- always |-- on-error `-- on-ok 34 directories
Als am ehesten einleuchtende Beispiele:
- Vor dem Start des Backups kann man Sachen lokal synchronisieren, die ebenfalls ins Backup einfliessen sollen.
- Nach dem Backup kann man beispielsweise Notifikationen ins Monitoring oder per E-mail auslösen.
Bei “nach einer Aktion” zu startenden Hooks kann man jeweils getrennte Sets von Skripten starten, sobald eine Aktion OK war … oder aber fehlerhaft … oder aber auch immer (unabhängig vom Status).
Und wie ist es implementiert? Schauen wir mal auf die Bash-Interna.
Es gibt zu den definierten Zeitpunkten im Skript einen Aufruf einer Hook-Funktion - mit dem Hook-Verzeichnis als Namen als Parameter 1 und für “nach einer Aktion” zu startende Hooks den Exitcode als optionalen 2. Parameter. Als willkürliches Beispiel:
_j_runHooks "24-after-folder-transfer" "$myrc"
Die Hookfunktion ruft bei Exitcode 0 die Skripte im “on-ok” Untrverzeichnis - und bei Exitcode > 0 jene vom “on-error”. Anschliessend (oder bei Aufruf ohne einen Exitcode) werden vom jeweiligen Hook die Skripte im Unterverzeichnis “always” verarbeitet.
Die Ausführung der Skripte erfolgt in alphabetischer Reihenfolge - mit der Benamung kann man also die Abfolge der Abarbeitung mehrerer Skripte beeinflussen.
Die Hookfunktion sieht so aus (genaugenommen erschreckend einfach):
... # ------------------------------------------------------------ # execute hook skripts in a given directory in alphabetic order # param string name of hook directory # param string optional: integer of existcode or "" for non-on-result hook # ------------------------------------------------------------ function _j_runHooks(){ local _hookbase="$1" local _exitcode="$2" local _hookdir="$( dirname $0 )/hooks/$_hookbase" if [ -z "$_exitcode" ]; then _hookdir="$_hookdir/always" elif [ "$_exitcode" = "0" ]; then _hookdir="$_hookdir/on-ok" else _hookdir="$_hookdir/on-error" fi for hookscript in $( ls -1a "$_hookdir" | grep -v "^." | sort ) do if [ -x "$_hookdir/$hookscript" ]; then h3 "HOOK: start $_hookdir/$hookscript ..." $_hookdir/$hookscript else h3 "HOOK: SKIP $_hookdir/$hookscript (not executable) ..." fi done # if an exitcode was given as param then run hooks without exitcode # (in subdir "always") if [ -n "$_exitcode" ]; then _j_runHooks "$_hookbase" fi echo } ...
weiterführende Links:
Restic client auf 64 Bit Linux installieren
Restic [1] ist ein in Go geschriebenes Backup-Tool für die Kommandozeile … oder zum Skripten. Es besteht aus einem einzigen Binary und hat keinerlei Abhängigkeiten zu Libs, Paketen oder irgendwas. Es erzeugt dedulizierte Backups: initial wird ein Vollbackup gemacht und dann nie wieder - es braucht dann nur noch inkrementelle Backups. Restic gibt es für Windows/ Mac/ Linux und diverse Plattformen (BSD, Solaris, Mips, … - siehe Releases (dort etwas scrollen :-) [2]).
Das hat was.
Daheim werfe ich gerade einen Http-Server als Backup-Endpoint auf die Synology [3].
Auf Systeme am Institut habe ich grob 150 Linux-Systeme - mit altem und neuen Linux Varianten verschiedener Distributionen. Ich habe ein Bash Skript geschrieben, das mit wget das Binary des Restic Client holt, entpackt und ins /usr/bin legt. Wer es für ein anderes OS oder Architektur braucht, müsste den Suffix “_linux_amd64” ersetzen … oder aber auch dynamisch machen (mit
uname -a
könnte man hinkommen).
#!/usr/bin/env bash # ------------------------------------------------------ # CONFIG # ------------------------------------------------------ resticversion=0.12.0 doLink=0 installdir=/usr/bin resticfile=restic_${resticversion}_linux_amd64 downloadfile=${resticfile}.bz2 downloadurl=https://github.com/restic/restic/releases/download/v${resticversion}/${downloadfile} # ------------------------------------------------------ # MAIN # ------------------------------------------------------ echo echo "##### INSTALL RESTIC CLIENT into $installdir #####" echo echo ----- DOWNLOAD if [ ! -f "${downloadfile}" ]; then wget -O "${downloadfile}.running" -S "${downloadurl}" && mv "${downloadfile}.running" "${downloadfile}" else echo SKIP download fi echo echo ----- UNCOMPRESS bzip2 -d "${downloadfile}" echo echo ----- INSTALL mv "${resticfile}" "${installdir}" chmod 755 "${installdir}/${resticfile}" rm -f "${installdir}/restic" 2>/dev/null test $doLink -eq 0 || ln -s "${installdir}/${resticfile}" "${installdir}/restic" test $doLink -eq 0 && mv "${installdir}/${resticfile}" "${installdir}/restic" echo echo ----- SELF-UPDATE restic self-update echo echo ----- RESULT: test $doLink -eq 0 || ls -l "${installdir}/${resticfile}" ls -l "${installdir}/restic" echo echo ----- CURRENT VERSION: restic version echo echo ----- DONE
weiterführende Links:
Aomei - Backupsets zurückholen
Mein Windows 10 war auf dem Stand 1804 und streikte beim Upgrade auf einen neueren Release. Ich habe irgendwann aufgegeben. Auf meinen Multiboot USB Stick kam das Windows 10 ISO und ich habe darüber ein “Update” gemacht. Das bisherige Windows, Programme und Benuterdaten landen in einem Ordner namens “Windows.old” - und man bekommt ein frisches Windows 10 drauf. Inkl. neuem Benutzer, ohne installierte Programme.
Man kann im “Windows.OLD” etwas spicken, welche Programme drauf waren und auch seine Benutzerdaten, Dokumente, whatever kopieren.
Als Backup nutze ich AOMEI Backup. Nach dessen Installation gab es keinerlei Backup-Sets. Falls auch wer mal sucht … man wird fündig unter im Windows.old\Users\All Users\AomeiBR\. Dieser Ordner ist zu kopieren nach
C:\Users\All Users\AomeiBR\
Beim nächsten Start von AOMEI Backup sind die alten Backup-Regeln wieder da.
weiterführende Links:
Virtualbox für eine Entwicklungs-Umgebung verwenden
Wenn man auf seiner lokalen Maschine entwickelt - aber seinen Code auf mehreren Betriebsystemen - oder unterschiedlichen Software-Versionen - sei es z.B. Programmiersprache (Ruby, NodeJs, PHP) oder Datenbankversion - dann braucht man verschiedene Testsysteme. Der eine mag Docker bevorzugen … ich beschreibe die Variante mit Virtualbox, weil dies über Linux und Windows für Clients als auch Ziel-VMs durchmischt funktioniert.
— Virtualbox.
Virtualbox ist kostenlos und OpenSource. Es existiert für Windows, Mac, Linux und Solaris.
In der Virtualbox habe ich je 1 VM mit einer Linux-Instanzen installiert (Debian, CentOS). In der VM ist das Setting installiert, was ich zum Testen heranziehen möchte.
- Zum einen SSH, damit ich von der Konsole auf die VM komme - ohne dass ich über das “Fenster” der VM gehen muss.
- Und dann Webserver, Programmiersprache, Module, Libraries … und was es sonst auf dem Zielsystem braucht.
— Dateien der Applikation
Was hingegen NICHT in der VM ist, ist die Applikation / Webseite: diese ist lokal bei mir auf dem Rechner. Ich nenne es mal abstrakt: web1.example.com.
[meine Webs] <<< Basisverzeichnis aller meiner Webseiten | +-- ... +-- web1.example.com <<< Verzeichnis ist Name der Webseite/ Applikation | | | +-- ... | +-- public_html <<< jenes public_html ist DOCUMENT_ROOT der Webseite | +-- ... +-- ...
Um diese Struktur in einer Virtualbox VM verfügbar zu machen, hat Virtualbox ein Feature der Shared Folders. Das lokale Verzeichnis meiner Webdaten wird dann automatisch ins Linux reingemountet und ist unter /media/sf_[Name]/ sichtbar.
Man könnte nun im Apache Httpd das Web als VHost einrichten und Document_root auf das /media Verzeichnis zeigen lassen. Ich mag es aber, wenn es an einem schönen Ort liegt. Daher lege ich unter /var/www einen Softlink namens web1.example.com an, der auf /media/sf_[Name]/web1.example.com/ zeigt.
Wenn man Linux-Systeme zum Testen braucht - z.B. Debian und CentOS - dann kann man die Apache Config auch lokal halten … und einen Softlink als /etc/apache2/sites-enabled bzw. /etc/httpd/conf.d anlegen.
Mit der lokal installierten IDE meiner Wahl kann ich dann lokal meine Dateien bearbeiten - und mit Speichern habe ich es 1:1 in einer gestarteten VM.
— Dienste
Zum Zugriff per SSH … oder auf das Web muss ich jede laufende VM ansprechen können - auf deren Port 80/ 443 resp 22.
Virtualbox kennt dazu in den Netzwerkeinstellungen der VM das Portmapping.
Es braucht eindeutige Ports, wenn man mehrere VMs laufen lassen und diese parallel ansprechen wollte, z.B. VM 1 leitet SSH von 8022 auf 22 um, VM 2 geht 1000 Ports hoch und leitet 9022 auf 22 um; Port 80 und andere analog SSH Login auf VM 2:
ssh -p 9022 localhost
Und beim Webbrowser? Und mehreren VHosts in der jeweiligen VM?
Man kann sich mit der /etc/hosts behelfen und die Namen der Domain auf 127.0.0.1 zeigen lassen
web1.example.com 127.0.0.1
Im Browser gibt man mit http://web1.example.com:[Port] das jeweilige Web an … und der Port steuert die Anfrage zur gewünschten VM.
Grafisch sieht das Ganze etwa so aus:
Viel Spass beim Nachbauen!
weiterführende Links:
- www.virtualbox.org/ (en)
Bash: Ausführungszeit eines Kommandos in Millisekunden messen
Wenn man im Monitoring einen Check schreiben will, der die Antwort-Zeit einer Aktion oder Response eines Servers messen will, sind sekundengenaue Angaben zu grob. Mit dem Kommando
time [Kommando]
kann man sehen, wie lange das jeweilige Kommando brauchte:
$ time ls [... Liste von Dateien ...] real 0m0,022s user 0m0,000s sys 0m0,015s
Die Gesamtzeit ist in der Zeile real enthalten. Angegeben sind die Minuten, ein “m” und danach die Sekunden mit 3 Nachkommastellen. Wobei die Tausendstel je nach System/ Sprache mit Punkt oder Komma getrennt sein könnten.
Aha, nun muss man “nur” noch die Zeile mit der Angabe “real” in den letzten 3 Zeilen der gesamten Ausgabe suchen und das Ganze parsen.
Als kleines Demo anbei einmal mundgerecht als Funktion (es läuft unter Linux und mit CYGWIN unter MS Windows):
#!/usr/bin/env bash # ------ FUNCTION # measure time in ms # @param string command to execute / measure function getExecTime(){ local sCommand=$1 local tmpfile=$( mktemp ) ( time eval $sCommand ) >$tmpfile 2>&1 local sRealtime=`cat $tmpfile | tail -3 | grep "^real" | awk '{ print $2 }'` rm -f $tmpfile local iMin=`echo $sRealtime | cut -f 1 -d "m" ` local iMillisec=`echo $sRealtime | cut -f 2 -d "m" | sed "s#[.,s]##g" | sed "s#^0*##g" ` typeset -i local iTime=$iMin*60000+$iMillisec echo $iTime } # ------ MAIN echo echo "ZEITMESSUNG IN MILLISEKUNDEN" echo mytime=`getExecTime 'ls -ltr'` echo Dauer: ${mytime} ms
Xampp: Port 3306 belegt - durch Firefox
Schon komisch: ein Programm krallt sich einen Port. Ich dachte, das wäre die Domäne von Skype.
Abhilfe:
- Firefox beenden
- Mysql im Xampp starten
- Firefox starten
Virtualbox: Protocol error beim Mounten der Shared Folders
In meiner Virtualbox 6.0(.x) Instanz habe ich ein lokales Webentwicklungsverzeichnis mit mehreren Domains von Entwicklungsumgebungen als Shared Folder in eine CentOS VM geteilt. In jener sind die Verzeichnisse als Apache Webroots via /var/www/[Domainname]/public_html/ angesprochen.
Und wie das so bei Computern ist: von einem Tag auf den anderen funktioniert irgendwas nicht mehr. Heute: das Mounten der Verzeichnisse.
Versuch 1:
Ein Reboot der VM … brachte nichts.
Versuch 2:
Shared Folders funktionieren nur, wenn die Gästetools installiert sind. Es hätte ja durch ein OS-Update der VM einen neuen Kernel gegeben haben. Diese habe ich nochmals installiert. Es wurde ein neuer Kernel compiliert… was einen weiteren Reboot brauchte … es geht aber nicht.
Versuch 3:
So kommt man dem Problem dann näher:
Man öffnet die Logs - das geht via dem Icon rechts einer VM (oh, ich hatte beim Umstellung von Virtualbox 5 auf V 6 lange die Sicherungspunkte gesucht :-)) - hier Logs auswählen. Dann erscheinen mehrere Tabs - das erste davon brauchen wir - die VBox.log.
Darin taucht ein Fehler auf:
00:36:51.618960 ASSERT_GUEST_LOGREL F:\tinderbox\win-rel\src\VBox\HostServices\SharedFolders\mappings.cpp(762) ... int __cdecl vbsfMapFolder(struct _SHFLCLIENTDATA *,struct _SHFLSTRING *,unsigned short,bool,unsigned int *): ... pFolderMapping->cMappings == 0 || pFolderMapping->fGuestCaseSensitive == fCaseSensitive 00:36:51.618981 Incompatible case sensitivity setting: C:\data\htdocs: 2 mappings, insenitive, requested senitive! 00:36:51.619183 VMMDev: Guest Log: 06:57:31.461002 automount Error: vbsvcAutomounterMountIt: Failed to mount ... 'htdocs' on '/media/sf_htdocs': Protocol error (-1,71)
Nach jenem
automount Error: vbsvcAutomounterMountIt: Failed to mount ‘htdocs’ on ‘/media/sf_htdocs’: Protocol error (-1,71)
kann man im Internet micht der Suchmaschine seiner Wahl suchen. Leider wurde ich trotz des Fehlercodes und Wortlaut der Meldung nicht fündig. Das fand ich unlustig. Ich bin also der erste Mensch auf der Welt, der dieses Problem hat :-)
Schauen wir bei den gemeinsamen Ordnern - das hatte ich eingestellt:
Was aber klappte:
Ich habe die Shared Folder Defintion gelöscht … rechts das Order Symbol mit dem X … im Log erschien
00:39:53.656135 SharedFolders host service: Removing host mapping 'htdocs' 00:39:53.743943 GUI: UIMediumEnumerator: Medium-enumeration finished!
Dann wurde das zuvor Gelöschte 1:1 wieder eingerichtet.
00:40:26.398568 SharedFolders host service: Adding host mapping 00:40:26.398589 Host path 'C:\data\htdocs', map name 'htdocs', writable, automount=true, automntpnt=, create_symlinks=false, missing=false 00:40:26.452420 GUI: UIMediumEnumerator: Medium-enumeration finished! 00:40:27.403966 VMMDev: Guest Log: 07:01:07.246159 automount vbsvcAutomounterMountIt: Successfully mounted 'htdocs' on '/media/sf_htdocs'
Dies hat er eingerichtet - und sofort war es auch in der VM ohne weiteres Zutun gemountet.
Last but not least habe ich die VM nochmals rebootet, um zu schauen, ob es auch nach einem Neustart noch funktioniert … yep, auch dies ging.
Aomai Backup - Avira meldet darin Adware.Gen2
Nach dem Upgrade von Aomei Backup Pro V3.x auf 4.0 meldete Avira “Adware.Gen2” in der Backupper.exe.
Hm, in einer Freeware mag ja sein, dass da Hersteller so ihren Unfug treiben, um Banner einzublenden oder Sonstwas im System zu verbiegen - aber in der bezahlten Pro-Version?
Wie schafft man Abhilfe?
Auf der Website https://www.virustotal.com habe ich die Exe-Datei hochgeladen - dort wird sie von zig (ca. 60) Virenscannern untersucht.
In dem Fall scheint es ein False Positive - also ein Fehlalarm - zu sein! Also wurde eine Ausnahmeregel definiert.
Ich habe in Avira:
- unter Echtzeit-Scanner -> Konfiguration -> Echtzeit-Scanner -> Ausnahmen: das Aomei Backup Verzeichnis C:\Program Files (x86)\AOMEI Backupper\ als Ausnahme hinzugefügt
- unter Quarantäne: bei der Backupper.exe rechte Maustaste und “Objekt wiederherstellen” gewählt.
- unter Echtzeit-Scanner -> Konfiguration -> Echtzeit-Scanner -> Ausnahmen: das Aomei Backup Verzeichnis C:\Program Files (x86)\AOMEI Backupper\ als Ausnahme entfernt
- … und die C:\Program Files (x86)\AOMEI Backupper\Backupper.exe als Ausnahme hinzugefügt (also statt des gesamten Verzeichnisses zuvor nur diese eine Datei)
weiterführende Links:
Chocolatey - veraltete Programm-Einträge löschen
Problem:
Ich habe mit Chocolatey Programme deinstalliert, z.B.
C:\Users\Axel>choco uninstall Quicktime
Aber dennoch verbleiben einige in der Liste der lokalen Anwendungen:
C:\Users\Axel>choco list -lo 7zip.commandline 16.01 7zip.install 16.01 AdobeAIR 20.0.0.233 autohotkey.portable 1.1.23.07 avirafreeantivirus 14.0.6.552 chocolatey 0.9.9.12 ChocolateyGUI 0.13.2 ConEmu 16.5.15.0 Far 3.0.4242 ffmpeg 3.0.1 flashplayeractivex 21.0.0.242 flashplayerplugin 14.0.0.179 javaruntime 8.0.73 jre8 8.0.91 netbeans-php 8.0 PDFXChangeViewer 2.5.317 Pencil 2.0.3 PowerShell 5.0.10586.20151218 Quicktime 7.7.5 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<< SwissFileKnife 1.6.9 sysinternals 2016.04.28 virtualbox 5.0.20.106931 VirtualBox.ExtensionPack 5.0.20.106931 23 packages installed.
Lösung
Man gehe in das Lib Verzeichnis von Chocolatey
C:\Users\Axel>cd "C:\ProgramData\chocolatey\lib" C:\Program\Data\chocolatey\lib>dir Datenträger in Laufwerk C: ist A Volumeseriennummer: 4C76-01F1 Verzeichnis von C:\ProgramData\chocolatey\lib 23.05.2016 21:11 <DIR> . 23.05.2016 21:11 <DIR> .. 21.05.2016 13:14 <DIR> 7zip.commandline 21.05.2016 14:30 <DIR> 7zip.install 31.03.2016 23:40 <DIR> AdobeAIR 21.05.2016 13:15 <DIR> autohotkey.portable 13.08.2014 20:33 <DIR> avirafreeantivirus.14.0.6.552 31.03.2016 23:48 <DIR> chocolatey 17.11.2014 00:21 <DIR> chocolatey.0.9.8.28 23.05.2016 21:08 <DIR> ChocolateyGUI 21.05.2016 13:15 <DIR> ConEmu 16.05.2015 10:32 <DIR> Far 21.05.2016 13:16 <DIR> ffmpeg 21.05.2016 13:17 <DIR> flashplayeractivex 23.05.2016 21:11 <DIR> flashplayerplugin 21.05.2016 13:20 <DIR> javaruntime 21.05.2016 14:38 <DIR> jre8 13.08.2014 21:08 <DIR> netbeans-php.8.0 21.05.2016 13:20 <DIR> PDFXChangeViewer 21.05.2016 14:34 <DIR> Pencil 23.05.2016 21:08 <DIR> PowerShell 21.05.2016 15:14 <DIR> Quicktime <<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 16.05.2015 11:06 <DIR> SwissFileKnife 21.05.2016 13:21 <DIR> sysinternals 21.05.2016 14:27 <DIR> virtualbox 21.05.2016 14:29 <DIR> VirtualBox.ExtensionPack 0 Datei(en), 0 Bytes 26 Verzeichnis(se), 337'768'534'016 Bytes frei
Hier habe ich das gleichnamige Verzeichnis gelöscht
C:\ProgramData\chocolatey\lib>del /S Quicktime Möchten Sie "C:\ProgramData\chocolatey\lib\Quicktime*" löschen (J/N)? J Datei wurde gelöscht - C:\ProgramData\chocolatey\lib\Quicktime\Quicktime.7.7.5.nupkg
Anm:
ohne Garantie … ggf. in ein anderes Verzeichnis Verschieben, statt zu löschen.
… aber dann ist Quicktime bei mir auch weg gewesen:
C:\ProgramData\chocolatey\lib>choco list -lo 7zip.commandline 16.01 7zip.install 16.01 AdobeAIR 20.0.0.233 autohotkey.portable 1.1.23.07 avirafreeantivirus 14.0.6.552 chocolatey 0.9.9.12 ChocolateyGUI 0.13.2 ConEmu 16.5.15.0 Far 3.0.4242 ffmpeg 3.0.1 flashplayeractivex 21.0.0.242 flashplayerplugin 14.0.0.179 javaruntime 8.0.73 jre8 8.0.91 netbeans-php 8.0 PDFXChangeViewer 2.5.317 Pencil 2.0.3 PowerShell 5.0.10586.20151218 SwissFileKnife 1.6.9 sysinternals 2016.04.28 virtualbox 5.0.20.106931 VirtualBox.ExtensionPack 5.0.20.106931 22 packages installed.
weiterführende Links:
Sicherheitswarnung bei Programmverknüpfungen nach Win10 Update
Irgendwie nervt es. Es gibt diese Symbolleiste “Links” wo man Favouriten als Programmverknüpfungen ablegen kann.
Mit IE-Update, mit Windows 10 Upgrade und jetzt wieder mit einem Windows10 Update kommen die Sicherheitsdialoge immer wieder aufs Neue und fragen höflich “Datei öffnen - Sicherheitswarnung … Möchten Sie diese Datei öffnen? …”
Das, was ich zu einer früheren Windows einmal erfolgreich praktizierte (icacls-Aufruf), funktioniert seit Windows 10 scheinbar nicht mehr. Dass der Order mal Links oder aber Favouriten heisst, ist an der Stelle nicht einmal das Problem. Die Methode geht einfach nicht mehr.
Schnelle Lösungen, die ich gefunden habe …
Für eine einzelne Verknüpfung die nachfolgende Variante:
(1)
Icon aus der Links Leiste einfach mit gedrückter linker Maustaste auf den Desktop ziehen und dort fallenlassen.
(3)
Das Icon auf dem Desktop dann zurück in die Links-Leiste mit gedrückter linker Maustaste plus Shift-Taste ziehen.
Icon nun aus der Link-Symbolleiste anklicken, um das Programm zu starten - der Sicherheitsdialog ist weg. Freu :-)
Um es für alle Verknüpfungen gleichzeitig zu machen, hab ich eine andere Lösung.
Man findet jenen Ordner für die Links im Explorer (Windows-Taste + E), wenn man %USERPROFILE%\Favorites\Links in die Adresszeile eingibt:
Wenn man
- einen neuen Ordner irgendwo anlegt
- die Dateien aus \Favorites\Links in den Zwischen-Ordner verschiebt
- dann zurück-kopiert
… ist der Sicherheitsdialog ebenfalls weg.
Ach ja, den Zwischenordner kann man dann löschen.
Ja und sowas wiederum kann man automatisieren und eine Bat-Datei schreiben - quick and dirty einmal so:
set linkdir=%USERPROFILE%\Favorites%\Links set tmpdir=%TEMP%\Links mkdir "%tmpdir%" move "%linkdir%*.*" "%tmpdir%" dir "%linkdir%" "%tmpdir%" pause copy "%tmpdir%*.*" "%linkdir%" dir "%linkdir%" "%tmpdir%" pause rmdir /s /q "%tmpdir%"
Update vom 12.08.2017
Und mal wieder funktionierte der Trick nicht mehr … aber ich habe etwas gefunden (s.a. Screenshots unten):
- Im Explorer zu C:\Users\[Benutzername]\ navigieren und auf “Favoriten” die rechte Maustaste und Eigenschaften wählen.
- Im Tab Sicherheit waren “komische” unbekannte User (mit einer SID Nummer). Mit [erweitert] den Editor für die Berechtigungen wählen.
- Hier die falschen Benutzer entfernen. Und [Übernehmen] … und [OK]. Durch die aktive Vererbung werden sie in den Unterelementen, zu denen auch der Links-Ordner gehört, ebenfalls entfernt
- Das Skript starten, das Links temporär wegschiebt und dann zurückkopiert (entspricht der Beschreibung oben)
- Falls die Icons nach dem Zurückkopieren nicht da sind: Die Symbolleiste “Links” ausblenden (rechte Maustaste in der Taskbar -> Symbolleisten -> Links anklicken) … und dann wieder einblenden.
Viel Glück!
weiterführende Links: