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

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

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.

Mit Windows 7 auf Samba-Shares zugreifen

Nach der Installation von Windows 7 hatte ich schon das erster Problemchen. Zwar konnte ich nicht mehr auf einen Sambashare zugreifen, das ganze scheiterte an der Authentifizierung.

Das Problem kann man allerdings mit einer Änderung an den lokalen Sicherheitsrichtlinie lösen. Zuerst öffnet man die Verwaltung über Start, Ausführen und dort secpol.msc

Nun Navigiert man nach Lokale Richtlinien und Sicherheitsoptionen. Dort stellt man die beiden folgenden Einträge um:

Netzwerksicherheit: LAN Manager-Authentifizierungsebene
auf
LM-und NTLM-Antworten senden

und
Netzwerksicherheit: Minimale Sitzungssicherheit für HTLM-SSP-basierte Clients (einschliesslich sicherer RPC-Clients)
auf
128-Bit-Verschlüsselung erfordern deaktivieren

Danach konnte ich wie gewohnt auf den Samba-Share zugreifen.

Datum in der CMD anders formatieren

Nochmal etwas aus der CMD-Trickkiste. Mit einem kleinen "Backup-Script" muss ich einen Ordner im Datums-Format YYYY-MM-DD erstellen. Mit der Umgebungsvariable %date% erhält man das Datum aber so zurück: 10.03.2009
Mit dem folgenden Trick kann man das Datum aber ins gewünschte Format umwandeln:
for /f "delims=. tokens=1,2,3" %%a in ('echo %date%') do set datum=%%c-%%b-%%a 

echo %datum%
Das gibt dann 2009-03-10 aus.