Archive for the ‘ Windows 2003 ’ Category

Windows 2003: dhcp client – access denied

So wie es aussieht, versucht der Conficker oder ein anderer Virus momentan auf einigen Maschinen den DHCP Dienst zu deaktivieren, indem er in der Registry dem “Network Service” die Berechtigung nimmt, Informationen aus dem Schlüssel HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Dhcp\Parameters\ zu lesen. Das Ergebniss ist, dass der DHCP Client nicht mehr startet und sich der Server somit nicht mehr korrekt im DNS registriert. Der Dienst lässt sich auch nicht mehr maneull starten.

Man kann nun die Registry Berechtigungen manuell korrigieren, aber dies ist bei mehreren Server relativ aufwendig. Daher habe ich eine Batch Datei geschrieben, die prüft ob der dhcp client läuft, wenn nicht werden die Berechtigungen korrigiert und der Dienst neu gestartet.

@echo off

REM ########################################################
REM ## checking dhcp service permission
REM ########################################################
del %temp%\dhcpservice.log
echo reading registry permission for DHCP Client service...
sc query "DHCP" | find /i "state" >nul 2>nul
\\vmd.vlrad.loc\NETLOGON\subinacl.exe /nostatistic /noverbose /outputlog=%temp%\dhcpservice.log /keyreg HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Dhcp\Parameters /display

:: recognize os language
echo %USERPROFILE% |find /i "Documents" >nul 2>nul
if %errorlevel%==0  goto englisch_os

echo %USERPROFILE% |find /i "Dokumente" >nul 2>nul
if %errorlevel%==0  goto german_os

goto exit

:englisch_os
echo englisch os detected...
type %temp%\dhcpservice.log |find /i "network service" >nul 2>nul
if %errorlevel% NEQ 1 goto good_perm
goto e_set_perm

:german_os
echo german os detected...
type %temp%\dhcpservice.log |find /i "netzwerkdienst" >nul 2>nul
if %errorlevel% NEQ 1 goto good_perm
goto g_set_perm

:e_set_perm
echo reparing enlgisch os permissions...
\\vmd.vlrad.loc\NETLOGON\subinacl.exe /noverbose /subkeyreg HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Dhcp\Parameters /grant="network service"=F >nul 2>nul
echo starting dhcp service
sc start dhcp
goto exit

:g_set_perm
echo reparing german os permissions...
\\vmd.vlrad.loc\NETLOGON\subinacl.exe /noverbose /subkeyreg HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Dhcp\Parameters /grant="netzwerkdienst"=F >nul 2>nul
echo starting dhcp service
sc start dhcp
goto exit

:good_perm
echo permissions are correct. Nothing changed...
goto exit

:exit

Active Directory: Rechte Delegation

Nicht immer muss ein Administrator Domain Admin sein, um die täglichen Aufgaben im AD zu erledigt zu können. Die Konsole “Active Directory Users and Computers” bietet die Möglichkeit bestimmte Tätigkeiten zu delegieren, jedoch sind die Möglichkeiten hier relativ begrenzt.

Wer eine komplexe Rechte Delegationen vornehmen möchte, muss sich tiefer mit den Sicherheitsberechtigungen auseinandersetzten. Um aber überhaupt erstmal an die Sicherheitseinstellungen zu kommen, müssen in der Konsole die Advanced Features aktiviert werden.

Nach dem aktivieren dieser Option werden weitere Ordner in der AD Konsole angezeigt. In den Eigenschaften der einzelnen Objekte sind nun auch weitere Registerkarten verfügbar, unter anderem die Registerkarte Security.

Innerhalb der Registerkarte Security kommt man über Advanced an die erweiterten Sicherheitsoptionen. Hier kann man nun die Rechte für den ensprechenden Benutzer oder die entsprechende Gruppe einstellen. Nachfolgend drei Beispiele wir eine entsprechende Rechtedelegation aussehen kann.

Kontakte erstellen/löschen

Allow, youruser, Create/Delete Contact Objects, <not inherited>, this object and all child objects
Allow, youruser, Full Control, <not inherited>, Contact objects

Computer Konten erstellen/löschen

Allow, youruser, Write All Properties, <not inherited>, This object and all child objects
Allow, youruser, Write All Properties, <not inherited>, Computer objects
Allow, youruser, Create/Delete Computer Objects, <not inherited>, This object and all child objects

Gruppen erstellen/löschen

Allow, youruser, Create/Delete Group Objects, <not inherited>, this object and all child objects
Allow, youruser, Full Control, <not inherited>, Group objects

Windows Vista/7: Kommandozeile als Administrator aufrufen

Für einige Befehle auf der Kommandozeile ist es notwendig, die cmd als Administrator zu starten. Hierfür gibt es zwei Möglichkeiten, entweder man geht über das Startmenü und wählt klickt die Vreknüpfung zur cmd mit der rechten Maustaste an und wählt dort als “Als Administrator ausführen”

oder man nutz die Suchfunktion im Startmenü. Tippt man dort den auszuführenden Befehl ein und drückt anstelle von [Enter] einfach [Strg] + [Shift] + [Enter] wird dieser Befehel direkt als Administrator ausgeführt.

Windows 2003: Schattenkopien per cmd verwalten

Windows 2003 ermöglich es dem Administrator durch Schattenkopier dateien zu sichern die sich dennoch im Zugriff befinden.

Microsoft bietet im VSS SDK einige Tools an um Schattenkopien per cmd zu erstellen und zu verwalten. Nach der Installation des VSS SDKs gibt es ein %programfiles%\Microsoft\VSSSDK72\Tools\VSSReports die notwendigen Tools.

Erstellen einer Schattenkopie

%programfiles%\Microsoft\VSSSDK72\Tools\VSSReports>vshadow -p c:
VSHADOW.EXE 2.2 - Volume Shadow Copy sample client
Copyright (C) 2005 Microsoft Corporation. All rights reserved.
(Option: Persistent shadow copy)
(Option: Create shadow copy set)
- Setting the VSS context to: 0x00000009
(Gathering writer metadata...)
(Waiting for the asynchronous operation to finish...)
Initialize writer metadata ...
Discover directly excluded components ...
Discover components that reside outside the shadow set ...
Discover all excluded components ...
Discover excluded writers ...
Discover explicitly included components ...
Verifying explicitly specified writers/components ...
Select explicitly included components ...
 * Writer 'System Writer':
   - Add component \System Files
 * Writer 'MSDEWriter':
   - Add component \server123\MS_ADMT\ADMT
   - Add component \server123\MS_ADMT\master
   - Add component \server123\MS_ADMT\model
   - Add component \server123\MS_ADMT\msdb
 * Writer 'WMI Writer':
   - Add component \WMI
 * Writer 'Registry Writer':
   - Add component \Registry
 * Writer 'Event Log Writer':
   - Add component \Event Logs
 * Writer 'IIS Metabase Writer':
   - Add component \IISMETABASE
 * Writer 'COM+ REGDB Writer':
   - Add component \COM+ REGDB
Creating shadow set {51248111-4e3c-45fa-bb47-a97a37e2f27a} ...
- Adding volume \\?\Volume{bf857546-1817-11dc-b831-806e6f6e6963}\ [C:\] to the s
hadow set...
Preparing for backup ...
(Waiting for the asynchronous operation to finish...)
(Waiting for the asynchronous operation to finish...)
Creating the shadow (DoSnapshotSet) ...
(Waiting for the asynchronous operation to finish...)
(Waiting for the asynchronous operation to finish...)
Shadow copy set succesfully created.
List of created shadow copies:
Querying all shadow copies with the SnapshotSetID {51248111-4e3c-45fa-bb47-a97a3
7e2f27a} ...
* SNAPSHOT ID = {ac41b3b6-a61a-47a8-bb7f-161a05900c3b} ...
   - Shadow copy Set: {51248111-4e3c-45fa-bb47-a97a37e2f27a}
   - Original count of shadow copies = 1
   - Original Volume name: \\?\Volume{bf857546-1817-11dc-b831-806e6f6e6963}\ [C:
\]
   - Creation Time: 25.06.2009 08:40:41
   - Shadow copy device name: \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy1
   - Originating machine: server123.domain.local
   - Service machine: server123.domain.local
   - Not Exposed
   - Provider id: {b5946137-7b9f-4925-af80-51abd60b20d5}
   - Attributes:  No_Auto_Release Persistent Differential
- Mark all writers as succesfully backed up...
Completing the backup (BackupComplete) ...
(Waiting for the asynchronous operation to finish...)
(Waiting for the asynchronous operation to finish...)
Snapshot creation done.

Mit diesem Befehl wird eine Schattenkopie der Laufwerk c: erstellt. Der Parameter -p sorgt dafür, dass die Kopie persistent ist. Das Bedeutet, dass die Kopie nach dem beenden von vshadow nicht gelöscht wird. Dies müssen wenn notwendig manuell geschehen.

Anzeigen der Schattenkopie

%programfiles%\\Microsoft\VSSSDK72\Tools\VSSReports>vshadow -q
VSHADOW.EXE 2.2 - Volume Shadow Copy sample client
Copyright (C) 2005 Microsoft Corporation. All rights reserved.
(Option: Query all shadow copies)
- Setting the VSS context to: 0xffffffff
Querying all shadow copies in the system ...
* SNAPSHOT ID = {ac41b3b6-a61a-47a8-bb7f-161a05900c3b} ...
   - Shadow copy Set: {51248111-4e3c-45fa-bb47-a97a37e2f27a}
   - Original count of shadow copies = 1
   - Original Volume name: \\?\Volume{bf857546-1817-11dc-b831-806e6f6e6963}\ [C:
\]
   - Creation Time: 25.06.2009 08:40:41
   - Shadow copy device name: \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy1
   - Originating machine: server123.domain.tld
   - Service machine: server123.domain.tld
   - Not Exposed
   - Provider id: {b5946137-7b9f-4925-af80-51abd60b20d5}
   - Attributes:  No_Auto_Release Persistent Differential

In der Übersicht der shadow copies ist eindeutig zu erkennen, dass diese Kopie Persistent angelegt wurde.

shadowcopy mounten

vshadow bietet weiter die Möglichkeit, einzelne Shadow Kopien direkt zu mounten….

md c:\vsmount
C:\>vshadow -el={ac41b3b6-a61a-47a8-bb7f-161a05900c3b},c:\vsmount
VSHADOW.EXE 2.2 - Volume Shadow Copy sample client
Copyright (C) 2005 Microsoft Corporation. All rights reserved.
(Option: Expose a shadow copy)
- Setting the VSS context to: 0xffffffff
- Exposing shadow copy {ac41b3b6-a61a-47a8-bb7f-161a05900c3b} under the path 'c:
\vsmount'
- Checking if 'c:\vsmount\' is a valid empty directory ...
- Shadow copy exposed as 'c:\vsmount\'

shadowcopy dismounten

… jedoch kann vshadow gemountete Kopie nicht wieder dismounten. Hier muss der Umweg über mountvol zur Datenträgerverwaltung gegangen werden.

mountvol c:\vsmount /P

shadowcopy löschen

Wie bei der Erstellung der shadow copy erwähnt, muss die angelegte Kopie manuell gelöscht werden…

vshadow -ds={ac41b3b6-a61a-47a8-bb7f-161a05900c3b}
VSHADOW.EXE 2.2 - Volume Shadow Copy sample client
Copyright (C) 2005 Microsoft Corporation. All rights reserved.
(Option: Delete a shadow copy)
- Setting the VSS context to: 0xffffffff
- Deleting shadow copy {ac41b3b6-a61a-47a8-bb7f-161a05900c3b} ...

Windows 2003: protect objects from accidental deletion

Windows 2008 hat im Bezug auf OUs ein neues nettes Feature das verhindert, dass ein Administrator versehentlich eine komplette OU löscht. Beim erstellen und auch später kann in den Eigenschaften einer OU folgende Option gesetzt werden.

w2k8_accidental_delection

Dieser Haken macht nichts anderes, als der Gruppe “Jeder” das löschen dieser OU zu verweigern. Unter Windows 2003 kann diese Berechtigung per Kommandozeile gesetzt werden

Dsacls OU=testou,DC=domain,DC=local /D Jeder:SDDT

Wer diese Berechtigung nun jedoch auf die OU testou gesetzt hat wird sich wundern, dass er diese dennoch löschen kann. Dieses Phänomen ist eine Windows 2003 Eigenart. Um die OU testou vor dem löschen zu schützen, muss ich ein Objekt innerhalb/unterhalb dieser OU vor dem löschen schützen, nur dann kann die Übergeordnete OU nicht mehr gelöscht werden.

w2k3_accidental_delection

Um zum Beispiel die OU Miami vor dem löschen zu schützen muss eine Untergeordnete OU mit dem deny Recht versehen werden.