Access-based Enumeration und Windows 2008 R2

Vor bald drei Jahren habe ich mal einen Artikel über Access-based Enumeration bei eine Windows 2003 Server geschrieben.
Letzthin habe ich im Geschäft einen Windows 2008 R2 Fileserver in Betrieb genommen und wollte dort auch wieder ABE einschalten. Das ganze geht nun recht einfach und ohne die Installation von zusätzlicher Software.
Dazu öffnet man eine Management Console (Start -> Ausführen -> MMC) und fügt dort das Snap-in "Share and Storage Management" hinzu. In der Liste wählt man nun den Share, auf dem man die ABE einschalten will und klickt dann auf Advanced. In diesem Fenster kann man nun die ABE einschalten.
http://images.t-error.ch/blog/1325/abe.jpg

Dateien mit zu langem Namen löschen

Letzhin hatte ich wieder das Problem, dass ich eine Datei im Windows nicht löschen konnte, weil der Name zu lang ist. Dann kann man die Datei weder löschen noch umbenennen. Auch in der CMD kommt der folgende Fehler:
Der Dateiname oder die Erweiterung ist zu lang.

Eine Lösung ist den Pfad als separates Laufwerk einzubinden und schon kann man die Datei löschen. Dies geht mit dem Befehl subst.
Zu beachten ist, dass der Pfad am besten in Anführungszeichen geschrieben wird, dann gibt es auch keine Probleme mit Abständen im Pfad. In diesem Beispiel wird der Pfad als Laufwerk s: eingebunden, man kann natürlich jedes nicht benutzte Laufwerk verwenden.
subst s: "pfad"
s:
del "datei"

Die Dateien kann man nun natürlich auch über den Datei-Explorer löschen.
Zum Schluss kann man das Laufwerk wieder aushängen:
subst s: /d

Grub 2 nach Windowsinstallation wiederherstellen

Ich nutze auf dem Computer zuhause schon seit längerem Untuntu und bin sehr zufrieden damit. Einige Dinge (GPS, Spiele) laufen unter Ubuntu aber nicht darum habe ich paralell noch ein Windows XP installiert. Mit dem Grub Bootloader ist das ja kein Problem. Neulich musste ich aber mein Windows neu installieren, was ja ansich auch kein Problem ist. Bei der Installation überschreibt Windows aber den Bootloader und so kann man Linux nicht mehr booten. Hier darum eine kleine Anleitung wie man den Grub wieder installiert, so dass man Linux und Windows booten kann. Dazu benötigt man einfach eine Ubuntu Installations CD. Ich habe das ganze mit Ubuntu 9.10 durchgespielt.

Als erstes legt man die Ubuntu CD ins Laufwerk und bootet davon im Live Modus. So hat man ein Linux zur Verfügung, ohne dass man etwas ander Festplatte verändert. Das Problem ist aber, dass die Live CD den Grub 1 verwendet, die Installation aber Grub 2, aber das ist ein lösbares Problem.
Darum schreibt man nun als erstes den (alten) Grub in den MBR (Master Boot Record) der Festplatte. Da zu muss man die UUID der Bootpartition sowie der Name der Festplatte wissen. Am besten hängt man die Boot Partition über das GUI ein und gibt danach in der Shell den Befehl mount ein. Dort sieht man, wie die Partition eingebunden ist und auch die UUID der Partition. Wir brauchen wie gesagt die UUID der Partition und der Name der Festplatte. Ist die Parition die /dev/sda6 ist die Platte die /dev/sda. Im Normalfall ist eine IDE Platte die /dev/hda und eine SATA/SCSI die /dev/sda. Den Bootloader schreiben wir nun mit dem folgenden Befehl ({UUID} durch die entsprechende UUID ersetzen.
sudo grub-install --root-directory=/media/{UUID} /dev/sda

Bevor wir den Computer nun neustarten, müssen wir noch wissen, welche Parition die Root Partition ist. Also die Partition, die schlussendlich als / genutz werden soll. Gleiches vorgehen wie vorhin. Schnell einhängen und mit mount die Partition auslesen.
Jetzt können wir den Computer neustarten und die CD aus dem Laufwerk auslesen.

Beim neustart kommt nun der Grub im Konsolen Modus. Also keine Auswahl sondern nur eine Aufforderung etwas einzugeben. Nun müssen wir das System ein erstes mal "von Hand" booten. Zum Glück gibt es eine Autovervollständigung, die das ganze etwas einfacher macht. Als erstes gibt man die folgende Zeile ein:
linux /vmlinuz-2.6.31-20-generic root=/dev/sda6 ro quiet splash

Am einfachsten ist es nur linux /vmlinuz einzutippen und sich dann mit dem Tabulator die verschiedenen Kernel anzeigen zu lassen, so erwischt man auch immer den aktuellsten. /dev/sda6/ ist hier die Root Partition, dessen Name wir vorhin ausgelesen haben. (Das Tastaturlayout ist Englisch. Die Bindestriche und Slashes nimmt man am besten vom Numlock, das Gleichzeichen ist gleich links vom Backspace)
boot linux /vmlinuz-2.6.31-20-generic root=/dev/sda6 ro quiet splash

Nun ist der Kernel geladen und wir müssen nur noch Booten. Das geht mit demselben Befehl, nur noch mit einem boot davor.
boot linux /vmlinuz-2.6.31-20-generic root=/dev/sda6 ro quiet splash

Jetzt sollte das System wieder booten wie vor der Windows installation. Damit man das aber nicht bei jedem Start machen muss, muss man nun noch die neuste Version vom Grub installieren. Das geht recht simpel mit dem folgenden Befehl:
sudo gub-install --root-directory=/ /dev/sda

Wenn man das Windows nachträglich installiert, oder bei der Neuinstallation die Windows Partition komplett gelöscht und neu erstellt hat, muss man das Configfile vom Grub anpassen, damit auch Windows wieder gebootet werden kann. Das geht mit dem folgenden Befehl schnell und vollautomatisch:
sudo grub-mkconfig -o /boot/grub/grub.cfg

Beim nächsten Neustart sollte man nun wieder den Grub 2 mit der Auswahl Linux und Windows haben.

Energieoptionen über die Shell verwalten

Die Energieoptionen in Windows kann man zum einen über Gruppenrichtlinien verwalten, oder auch über die Shell. Das ganze funktioniert mit dem Befehl powercfg. Um zum Beispiel zu konfigurieren nach welcher Zeit der Bildschirm ausgeschaltet wird, gibt man den folgenden Befehl ein:
powercfg -CHANGE Desktop -monitor-timeout-ac 20
Desktop steht hier für das Schema das geändert werden soll. In Windows XP muss dieser Wert angegeben werden, in Windows 7 wird das aktuelle Schema verwendet, wenn dieser Parameter fehlt. -monitor-timeout-ac definiert die Zeit nach der der Bildschirm im Netzbetrieb ausgeschaltet werden soll. Für den Akkubetrieb muss man -monitor-timeout-dc verwenden. Wenn der Bildschirm nicht ausgeschaltet werden soll, kann man 0 als wert angeben. Wenn man will, dass der Bildschirm nach 20 Minuten ausschaltet, die Festplatte und der ganze Computer im weiter läuft, kann man das folgendermassen konfigurieren:
powercfg -CHANGE Desktop -monitor-timeout-ac 20
powercfg -CHANGE Desktop -disk-timeout-ac 0
powercfg -CHANGE Desktop -standby-timeout-ac 0
powercfg -CHANGE Desktop -hibernate-timeout-ac 0

Energieoptionen über Gruppenrichtlinie verwalten

In gewissen Fällen kann es sinnvoll sein, wenn man die Energieoptionen von Windowscomputern zentral über Gruppenrichtlinien verwalten kann. Mit den Bordmitteln von Windows ist das nicht möglich, also muss man auf andere Hilfsmittel zurückgreifen.
Eine Möglichkeit ist der Import eines ADM-Templates in die Gruppenrichtlinie. Dadurch kann man die Energieoptionen dann über die Gruppenrichtlinien verwalten.

http://images.t-error.ch/news/1181/import.jpgDas ADM-template kann man bei Terra Novum herunterladen. Um das Template zu importieren öffnet man den Gruppenrichtlinieneditor, klickt mit der rechten Maustaste auf die Administrativen Vorlagen und dort auf Vorlagen hinzufügen / entfernen. Nun kann man die .adm Datei auswählen und hat die neuen Konfigurationsmöglichgkeiten schon importiert.

Jetzt hat man vier Einstellungen zur Verfügung.
  • Base Options: Die Verwaltung der Enegieoptionen (de)aktivieren
  • Options: Einige Einstellungen
  • AC Profile Scheme: Einstellungen für den Netzbetrieb
  • DC Profile Scheme: Einstellungen für den Batteriebetrieb
Bei den Base Options muss man fast nichts einstellen. Wenn man die Verwaltung der Energieoptionen verwenden will, muss die Einstellung nur Aktivieren, die restlichen Optionen sollte man so belassen wie sie sind.
http://images.t-error.ch/news/1181/base_options.jpg


Bei den Options kann man zum Bsp. konfigurieren, ob die per GPO konfigurierte Richtlinie die Benutzereinstellungen überschreiben soll.
http://images.t-error.ch/news/1181/options.jpg


Schlussendlich gibt es noch die Einstellungen AC- und DC Profile Scheme. Hier konfiguriert man, wie lange es dauert bis der Bildschirm in den Standby geht, die Festplatten ausschalten, oder der ganze Computer in den Standby geht. Die Einstellungen im AC Profile sind für den Netz- und die im DC Profile für den Batteriebetrieb.
http://images.t-error.ch/news/1181/ac.jpg

Ordner mit einem Batch-File leeren

Wer unter Windows XP und aufwärts einen Ordner leeren möchte, wird sicher auf die Befehle del und rd stolpern, dann aber merken, dass keiner der Befehle in der Lage ist einen Ordner nur zu leeren.
Während del nur Dateien und keine Unterordner löscht, löscht rd gleich den ganzen Ordner und nicht nur die Files und Unterordner. So muss man zu einem kleinen Trick und einer Kombination von del und rd greifen.
Das sieht dann so aus:
For /F "Tokens=*" %%i IN ('Dir /AD /B "C:\ordner\"') DO RD /Q /S "c:\ordner\%%~i"
Del /Q /F "c:\ordner\*.*"

Tasks mit "at" planen

Bei Windows kann man Tasks ja bekanntlich über die Geplanten Tasks verwalten. Daneben kann man die Tasks aber auch über die CMD mit dem Befehl "at" verwalten. Ein Aufruf von at /? gibt eine kleine Hilfe aus.
Der grosse Vorteil von at ist in meiner Meinung, dass man so auch Tasks auf andern Computern erstellen kann. Dazu gibt man als ersten Parameter den fremden Computer an und wenn die Berechtigungen stimmen, wird der Task erstellt.
at \\computer 23:30 /every:MO "c:\script.bat"


Wenn man nur den fremden Computer als Parameter angibt, erhält man eine Übersicht mit den Tasks, die über at erstellt wurden.
at \\computer
Status-ID   Tag           Zeit          Befehlszeile
-----------------------------------------------------
        1   Jeden Mo      23:30         c:\script.bat

Problem mit CD-Laufwerk: Code 39

Heute hatte ich den Computer von einem Arbeitskollegen bei mir. Das Problem von der Kiste war, dass Windows das CD Laufwerk nicht richtig erkannt. Anfangs war ein defektes CD Laufwerk drin, welches gegen ein neus getauscht wurde und eben dieses wurde von Windows nicht richtig erkannt. Im Gerätemanager war das gerät zwar zu sehen, allerdings wurde dort die folgende Fehlermeldung angezeigt:
Der Gerätetreiber für diese Hardware kann nicht geladen werden. Der Treiber ist möglicherweise beschädigt oder nicht vorhanden (Code 39)

Das Problem kann man in der Registry recht einfach beheben. Zuerst muss man zum folgenden Schlüssel navigieren:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E965-E325-11CE-BFC1-08002BE10318}

Dort muss man nun die Einträge LowerFilter und UpperFilter löschen. Nach dem Neustart des Computers wird das Laufwerk nun richtig erkannt und funktioniert wie es soll.

Alte Dateien mit delage32 löschen

Wir haben bei uns im Geschäft auf dem Server einen Share, welcher als temporäre Dateiablage gedacht ist. Anstatt sich intern grosse Files zuzusenden, kann man die Datei dort ablegen und die andere Person kann sie dort holen. Wie das halt so ist sind die Dateien dort dann aber nicht temporär sonder bleiben einfach dort liegen, weil sie niemand löscht.
Ich habe nun ein kleines Script gemacht, welches Dateien, die älter als 7 Tage sind automatisch löscht. Das Script wird jeden Abend als automatischen Task gestartet. Das Script basiert auf dem Tool delage32 von Horst Schäffer. Damit kann man recht simpel alte Daten löschen.
Meine datei sieht nun so aus:
@echo off
delage32 "D:\GROUP\TEMP\*" 7 /created /includeH /includeRO /recurse /rd

Das funktioniert ganz gut, hat aber leider ein Problem. Wenn eine Datei auf den Share verschoben wird, bleiben die Timestamps vom created und modified gleich wie zuvor. Wenn ich also eine Datei, die ich vor 2 Wochen erstellt habe auf den Share verschiebe, wird sie gleich beim nächsten Start des Scripts gelöscht und nicht nach sieben Tagen, wie es sein sollte. Dagagen kann man aber leider nichts machen und wenn man eine Datei kopiert funktioniert es wieder.

Outlook Signaturen sichern

Wer die Signaturen vom Outlook auf einen neuen Computer kopieren, oder einfach ein Backup davon erstellen will, findet sie im folgenden Ordner:
C:\Windows\Profiles\[user]\Anwendungsdaten\Microsoft\Signatures
In diesem Ordner liegt von jeder Signatur ein Plaintext, ein Richtext und ein Wordfile. Diese Files kann man auf dem neuen Computer kopieren und Outlook erkennt die Signaturen danach automatisch.