Ich möchte eigentlich nur kurz festhalten, dass man sehr einfach an bestimmte Teile eines Pfadstrings kommt. Dafür gibt es in der DOS Sprache vordefinierte Operatoren. Der Aufbau ist eigentlich recht einfach. Mit einer for Schleife wird eine Variable oder auch eine Liste von Elementen abgearbeitet und mit
%[%]~[option][element]
wird der gewünschte Part angesprochen.
Am besten erklärt sich das sicher mit Beispielen:
set path=D:\Daten\Backup\test.bat
:: nur der Dateiname (ohne .ext) - die Option "~n" (Name der Datei oder des Ordners) wird angesprochen, %% weil Ausführung aus einem Script heraus, a am Ende ist das Element der for Schleife
for %%a in (%path%) do set 1=%%~na
:: -> test
:: Dateiname und Erweiterung - mehrere Optionen werden einfach aneinandergereiht, %% (Scriptausführung) "~nx" (n für Name und x für Erweiterungen), b das Schleifenelement
for %%b in (%path%) do set 1=%%~nxb
:: -> test.bat
:: Pfad ohne Datei oder letzten Ordner - d für den Laufwerksbuchstaben, p für den Pfad ohne Datei/letzten Ordner
for %%c in (%path%) do set 2=%%~dpc
:: -> D:\Daten\Backup\
:: d für den Laufwerksbuchstaben, p für den Pfad ohne Datei/letzten Ordner, n für den Namen, x für die Erweitung, was kommt bei raus??
for %%d in (%path%) do set 3=%%~dpnxd
:: -> D:\Daten\Backup\test.bat
Das Windows 7 Mobilitätscenter ist eine echt gute Neuerung, die eigentlich für mobile Computer gedacht ist. Hier werden wichtige Windows Funktionen in einem PopUp gebündelt. Dieser schnelle Zugriff ist aber auch für Desktop PCs sinnvoll. An einem Desktop PC bekommt man allerdings den Fehler „Windows-Mobilitätscenter ist nur auf Laptops verfügbar“. Aktivieren? Gerne!
Dank des kurzen Beitrags im Winside Blog ist das Mobilitätscenter schnell aktiviert und kann mit
mblctr
gestartet werden (da es im Startmenü nicht angezeigt wird).
Ich habe die nötigen Registry Änderungen mal in eine .reg Datei gepackt: mblctr [.reg] Rechtsklick -> Speichern unter…
Für die Änderungen sind keine Admin-Rechte erforderlich, einfach per Doppelklick ausführen und die Meldungen bestätigen.
Und nochmal schnell schriftlich: Unter
HKEY_CURRENT_USER\Software\Microsoft\
einen neuen Schlüssel „MobilePC“ anlegen. 2 weitere Unterschlüssel in MobilePC anlegen: „AdaptableSettings“ und „MobilityCenter“. In „MobilityCenter“ kommt ein 32bit DWORD „RunOnDesktop“ mit dem Wert 1 und bei „AdaptableSettings“ kommt ein 32bit DWORD „SkipBatteryCheck“ ebenfalls mit dem Wert 1. Letzterer aktiviert das Mobility Center auf einigen problematischen Laptops, der RunOnDesktop ist selbstsprechend.
Gleich im Anschluss, ohne Neustart, ist das Mobilitätscenter aktiv.
Folgenden Artikel habe ich für das Online-Magazin Hakin9 geschrieben.
Manuelle und automatisierte Administration einer Active Directory Domäne und Grundlagen der Gruppenrichtlinien
Einleitung
Kaum ein größeres Unternehmen kommt heutzutage noch ohne ein komplexes Computernetzwerk aus. Die Überwachung, Steuerung und Verwaltung eines solchen Netzwerkes erfordert neben dem umfangreichen Fachwissen des verantwortlichen IT-Administrators auch ein elaboriertes Netzwerksystem. In diesem Artikel wird die grundlegende Administration eines Windows Netzwerkes basierend auf einer Active Directory Domäne erklärt und veranschaulicht.
In diesem Artikel erfahren Sie…
Grundlegendes zu Active Directory Domänen,
wie Sie mit einem beliebigen Client die Domäne administrieren können,
welche Objekte mit welchen Einstellungen enthalten sind,
welche administrativen Tools zur Vergügung stehen und
welche Möglichkeiten Gruppenrichtlinien in einer Domäne bieten.
Was Sie vorher wissen sollten…
Eine bestehende Active Directory Domäne ist nützlich, weil praxisnahe Tipps jederzeit nachvollzogen werden können.
Inhalt
Seite 1: Das Active Directory
Seite 1: Administrationstools einrichten
Seite 3: Domänenadministration – Namenskonvention
Seite 3: Domänenadministration – Objekte und Struktur
Seite 4: Grafische Darstellung der Domänenstruktur
Seite 4: Domänenadministration – automatisierte Administration
Seite 4: Abfragen mit CSVDE
Seite 5: Abfragen mit PowerShell
Seite 6: Gruppenrichtlinien – Überblick
Seite 7: Gruppenrichtlinien – Einstellungen
Download
Dieser Artikel erschien in der Hakin9 Ausgabe 8/2011. Da es mein Artikel ist stelle ich ihn aber auch seperat zur Verfügung. Download -> Hakin9 8/2011 Download -> nur der Artikel
Gewinnspiel
Hakin9 verkündete gerade im Newsletter ein Gewinnspiel, hier der Auszug: Beantworten Sie nur unsere Frage: Aus welchem Artikel kommt der u.a. Satz? „Die Namenskonventionen sollten die hierarchischen Ebenen verdeutlichen, diese sind somit allein aufgrund des Namens in die Struktur exakt einzuordnen.“ Die ersten fünf Personen, die die richtige Antwort zuschicken, bekommen von uns das Buch von Sachar Paulus „Basiswissen Sichere Software“. Sie sollen nennen: die Ausgabe, den Autor, den Titel, die Seite. Die Antwort schicken Sie an karolina.sokolowska@software.com.pl an, aber erst ab 17.08.2011, ab 10 Uhr. Ich machs euch mal leicht, hier die Antwort für meine Leser 😉: dieser Satz stammt aus meinem Artikel, Ausgabe 8/2011, Seite 18. Schreibt der Dame morgen früh eine Mail und holt euch das Buch zum Thema Sichere Software.
Folgende Fehler haben mich jetzt echt lange aufgehalten:
.vbs per Doppelklick: Skriptmodul „VBScript“ für Skript „C:\test.vbs“ wurde nicht gefunden. Can’t find script engine „VBScript“ for script „C:\test.vbs“.
.vbs per CMD: CScript-Fehler: Skriptmodul „VBScript“ für Skript „C:\test.vbs“ wurde nicht gefunden.
.wsf: Immer ein Fehler in Zeile 0.
6 Lösungsmöglichkeiten!
1) Die einfachste Lösung, die auf so ziemlich jeder Internetseite steht, ist ein Set aus 3 CMD Befehlen:
regsvr32.exe VBScript
,
regsvr32.exe jscript.dll
und/oder
regsvr32.exe jscript.dll
. Darauf folgt jeweils ein Popup, die Komponente sei erfolgreich registriert werden o.Ä.
2) Von diesen 6 hier präsentierten Lösungsmöglichkeiten hat nur dieser hier bei mir funktioniert, also, lesen! In der Registry wurde dieser Schlüssel
und keine Änderungen waren ohne Weiteres erlaubt. Deswegen konnte regsvr32 diesen Key nicht updaten.
Also Rechtsklick auf InprocServer32 -> Berechtigungen und dem aktuellem Nutzer oder Jeder Vollzugriff geben. Den Wert auf
C:\Windows\system32\vbscript.dll
setzen und die Berechtigungen wieder normalisieren.
Fertig! Ein Hoch auf die einzigen 2 Webseiten im Netz auf denen ich diesen Lösungsansatz gefunden habe: 1 und 2 !
3) Schaut in eurem Windows\system32\ Ordner nach der vbscript.dll. Merkt euch Dateigröße; die exakte Größe in Bytes(!) findet ihr in den Eigenschaften der Datei. Schaut auf einem Vergleichssystem (selbes OS, funktionierendes VBScript) nach dieser Datei und vergleicht Größe und Daten. Wenn sie auffällig unterschiedlich sind ersetzt ihr die Datei auf dem fehlerhaften System mit der Datei auf dem fehlerfreien System (selber OS!). Wiederholt Schritt 1). Downloadet euch alternativ Windows Script 5.7, entpackt die .exe und nutzt die darin enthaltenen .dll Dateien. Allerdings ist der Download nur für Windows XP Systeme, keine Garantie, dass das funktioniert!
4) In den Internet Optionen kann man im Scripting Bereich noch die 2 Einstellungen von Active Scripting and Java Applets überprüfen, sollten beide Enabled sein.
5) Mir fiel noch ein Tool aus meinem vorletzten Windows 7 Seminar ein: sfc.exe! Das System File Checker Programm scannt alle wichtigen Systemdateien nach Änderungen und kann korrupte Dateien auf den Standard wiederherstellen. Dafür nutzt es die Windows Resource Protection, die Änderungen an Systemdateien mit speziellen DACLs und ACLs erkennt. Also:
sfc.exe /scannow
und abwarten. Möglicherweise werden keine „Integritätsverletzungen“ festgestellt, möglicherweise wurden welche festgestellt und konnten behoben werden, vielleicht wurden auch welche festgestellt und konnten nicht behoben werden. Dann hilft der Befehl
um alle nicht reparierbaren Fälle in eine neue .txt Datei zu filtern. Mehr zu sfc
6) Windows XP User können testweise Windows Script neu installieren. „Windows Script 5.7“ für Windows XP gibt es hier als Download. Windows Vista/7 Nutzer brauchen es gar nicht erst zu probieren, die Installation lässt sich auch mit Kompatibilitätseinstellungen nicht durchführen. Aber die .exe kann man mit fähigen Programmen entpacken. Enthalten sind viele wichtige .dll und .exe Dateien, die nützlich sein könnten.
Ich hoffe einer dieser Tipps hat für euch funktioniert und eure .vbs und .wsf Scripte funktionieren wieder. Bei mir hat Punk 3) zumindest für beide Scripttypen die Lösung gebracht.
Windows 7 kann meine Aufgaben nicht ausführen… versteh‘ ich nicht. Glücklicherweise gibt’s Hilfe: „Fehlerwert: 2147943645“ („Error Value: 2147943645“) meldet die Aufgabenplanung. Aha! Hauptsache keine kurze Fehlermeldung sondern komische Codes. „ERROR_NOT_LOGGED_ON: not logged on to the network. The specified service does not exist.“ wäre auch zu informativ gewesen, bloß nicht da reinschreiben.
ERROR_NOT_LOGGED_ON hilft uns aber den Fehler zu finden. Am Computer ist nämlich immer ein eingeschränkter Nutzer angemeldet, der nie ausgeloggt wird. Die Aufgabe soll aber als Administrator ausgeführt werden, weil nur dieser die Rechte dafür hat. Logischerweise kann der eingeloggte User nicht einfach so eine Aufgabe des Administrators starten.
Aufgabe öffnen, „Unabhängig von der Benutzeranmeldung ausführen“ auswählen, [OK] und Nutzerdaten eingeben. Fertig!
Error Value: 2147943726
Dieser Fehlerwert (auch wenn es nicht mehr zur eigentlichen Überschrift passt) zeigt an, dass es Probleme mit den Benutzerdaten des Tasks gibt. Also nochmal einen Blick in den „Allgemein“ Tab der Aufgabe geworfen. Ich hatte z.B. mal den Computernamen eines PCs geändert und alle Aufgaben, die mit Computername\Administrator gestartet wurden, fanden natürlich den Administrator nicht mehr, den Computernamen gab es ja nicht mehr. Also Benutzer korrekt wählen, „Unabhängig von der Benutzeranmeldung ausführen“ wenn gewollt, [OK] und Passwort eingeben.
Auch ich habe am Wochenende mit meinem Beitrag gearbeitet. Auf meinem Tisch stand ein Thinkpad T60. Dieser sollte mit Windows XP bespielt werden und damit es – wie so oft im Leben – nicht zu einfach wird kam bei der Windows Installation natürlich dieser Output: „Es konnten keine installierten Festplattenlaufwerke gefunden werden. Stellen Sie sicher, dass alle Festplattenlaufwerke eingeschaltet und richtig mit dem Computer verbunden sind […]“
Na gut, dann wollen wir mal.
Diesen Thinkpad T60 neugestartet, Windows XP CD in eingelegt, Winfuture XP ISO Builder heruntergeladen, Windows CD eingelesen (wird lokal kopiert) und die einzelnen Schritte durchgegangen.
Wichtig wird es jetzt bei den Controllertreibern, die bei der Windows XP Installation die Festplatten erkennen sollen. Benötigt wird eine txtsetup.oem, die irgendwelche Treiber enthält. Okay, auf der Thinkpad Support Seite des Thinkpad T60 Models gibt es im „Hard Drive“ Bereich einen „Intel Matrix Storage Manager“. Dieser wird bestimmt alle Festplattentreiber beinhalten. Heruntergeladen, entpackt, tatsächlich eine txtsetup.oem enthalten. Zusätzlich dazu habe ich noch den Festplattentyp des T60 herausgefunden und auf der Herstellerseite noch ein 2. Paket geladen und ebenfalls hinzugefügt. Resultat: Treiber rein, Winfuture Update Pack rein, Windows Einstellungen gemacht, das ganze HickHack halt. ISO erstellt, gebrannt und rein in den T60.
Reboot und:
Eine Windows XP mit Treibern, Einstellungen und Updates. Mal wieder erweist sich der XP ISO Builder als ein Wundertool!
Klingt einfach, mit Batch die IP Adresse des Rechners auslesen und speichern. Hat mich erstaunlich lange aufgehalten eine Lösung zu finden. Die meisten Tipps bei Google nutzen den Output von ipconfig, suchen nach einem „IP“ ähnlichen String, bearbeiten diesen und filtern die IP. Beispiel:
:: FUNKTIONIERT NICHT!! BEI AKTUELLEREN SYSTEMEN,SIEHE UNTEN
IPCONFIG |FIND "IP" > %temp%\TEMPIP.txt
FOR /F "tokens=2 delims=:" %%a in (%temp%\TEMPIP.txt) do set IP=%%a
del %temp%\TEMPIP.txt
set IP=%IP:~1%
echo %IP% >%temp%\ip.txt
Seit Windows Vista und IPv6 funktioniert das aber nicht mehr. Ein falscher String wird abgespeichert. Den String aus der ipconfig zu fischen ist ziemlich ungelenk, eine aktuelle und bessere Lösung zu finden ist nicht so einfach.
Lösung:
for /f "skip=1 tokens=2 delims=[]" %%* in ('ping.exe -n 1 -4 %computername%') Do (set "IP=%%*")
Mit dieser Zeile wird die IPv4 Adresse des aktuellen primären Interfaces gespeichert. Mit dem Parameter
-6
statt
-4
wird die primäre IPv6 Adresse in der Variable abgelegt. Funktioniert auch in Win XP, Win 7 und Server 2008. Ich liebe Einzeiler und finde diese Lösung damit umso charmanter.
Update: Memo an mich, einzelne Bytes der IP extrahieren:
for /f "skip=1 tokens=2 delims=[]" %%* in ('ping.exe -n 1 -4 %computername%') Do (set "IP=%%*")
echo %IP%
:: 145.123.2.31
for /f "tokens=1,2,3,4 delims=." %%a in ("%IP%") do set IPb1=%%a&set IPb2=%%b&set IPb3=%%c&set IPb4=%%d
echo %IPb4%
:: 31
Alle Bytes der IP Adresse sind jetzt ansprechbar. via