Archiv der Kategorie: Windows 7

ADMINOMAT checkt Windows Defender Updates

Seit Version 2.08 hat die Software ADMINOMAT ein Tool an Board, das ohne jegliche Installation auf den Clients Informationen über den Status des Windows Defender auf den Endgeräten ausliest.

Es sind dies das Datum des letzten Scans, die Art des Scans (Quick vs Vollständig) sowie das Signature Datum der so genannten „Bedrohungsdefinition“.

 

Vorgangsweise:

  1. ADMINOMAT starten und gewünschte OU im Active Directory auswählen
  2. Menüband -> ANSICHT -> Detailfelder…
  3. „Microsoft Windows Defender“ anklicken
  4. –> es werden die Clients, die online sind, per WMI kontaktiert und die gewünschten Daten eingelesen
    (Hinweis: Dieser Vorgang kann etwas Zeit in Anspruch nehmen)

 

Defender_Check

Hinweis:
Durch Auswahl eines Clients in der Anzeige erscheint ein weiteres Fenster, in dem unter anderem (nebst sehr vielen anderen Funktionen) auch ein Scan bzw. ein Download der aktuellsten Signatur-Updates remote gestartet werden kann!

Start_Scan

Gebrauchte Lizenzen – eine echte Alternative zu Open Source

Bei steigender Budgetknappheit ist es nahe liegend, dass nebst der Kosten für Hardware und externes Consulting auch jene für Lizenzen in den Fokus rücken.

Selbstverständlich ist hier die Verwendung von OpenSource-Betriebssystemen eine veritable Alternative.
Meine jahrzehntelange Erfahrung im Bereich der Server-Administration, aber auch im direkten Kontakt mit Endbenutzern zeigen mir aber, dass die Kostenersparnis nur dann eintritt, wenn eine weitreichende Akzeptanz seitens der User vorhanden ist.

Dies inkludiert die Bereitschaft zur Aneignung neuer Kompetenzen in Eigenregie. Sobald diese Bereitschaft fehlt, kann der Schuss schnell nach hinten losgehen:
Die Schulungskosten steigen, die Motivation und Arbeitsleistung nimmt ab.

Oft scheitert die Idee des Umstiegs auf Linux-Betriebssysteme aber auch einfach an Spezialanwendungen, die Windows als Betriebssystem fordern.

Eine Lösung für die Problematik kann hier sicherlich in der Anschaffung von gebrauchten Lizenzen liegen.
Die Kosten der Anschaffung sinken – bei gleichzeitiger Akzeptanz der User, da sie mit der gewohnten Umgebung weiter arbeiten können.

Hinsichtlich der Legalität dieser Lösung gibt es bei Einhaltung einiger Tipps keinerlei Bedenken – es sind genügend Erkenntnisse der Höchstgerichte vorhanden!

Beachtet werden sollte lediglich, dass die Lizenzen von etablierten und seriösen Unternehmen erworben werden.

Empfohlen kann hier sicherlich die Firma USC mit Sitz in Deutschland werden, die sich seit Jahren als kompetenter Partner in Lizenzfragen einen guten Namen in der Fachpresse erworben hat.

Nebst dem übersichtlichen und umfangreichen Webshop für gebrauchte Software-Lizenzen finden sich auf der Website auch noch ein paar Tipps, wie man seriöse von unseriösen Angeboten unterscheiden kann.

Ein Blick auf deren Angebot sowie die Preisliste lohnt sich in jedem Fall!

PDF erstellen mit webPDF

 Problem: Häufige Updates  Adobe Acrobat Reader

Am 19. 6. 2016 wurde die aktuellste Version [15.016.20041] von Acobe Acrobat (Reader) DC als optionales Update released. Sollte man die automatischen Updates nicht deaktiviert haben, werden User durch entsprechende Meldungen auf Updates hingewiesen, was uns AdministratorInnen wiederum Arbeit beschert.

Seit Anfang 2016 wurden bis zum heutigen Tag (Stand: 22. 6. 2016) 6 Updates angeboten, was für SystemadministratorInnen einen – für mich zumindest – inakzeptablen Mehraufwand bedeutet, den es zu vermeiden gilt.

Die Deaktivierung der automatischen Updates bzw. Unterdrückung der Meldung bringt hier nur bedingten Erfolg, da die zu den Updates führenden Sicherheitsrisiken bzw. Bugs dadurch nicht behoben werden.

Mir erscheint als einzig tragbare und wartungsfreieste Lösung ein zentralisierter Ansatz sinnvoll, dh, eine Serverlösung, auf die Benutzer zugreifen.

Aus Sicht des Datenschutzes müssen dabei Lösungen, die als Service im Web angeboten werden, vermieden werden, da unternehmensinterne Daten keinesfalls aus der Hand gegeben werden dürfen!

Wünschenswert wäre es also, eine Lösung zu finden, die folgende 3 Kriterien erfüllt:

  1. Keine Clientinstallation (um die bereits bekannten Probleme wie Updates etc zu verhindern)
  2. Daten dürfen das Unternehmen nicht verlassen
  3. Intuitive Handhabung für die BenutzerInnen

Lösung: PDF erstellen mit webPDF

Ich wurde nun fündig anhand der Lösung von WebPDF. Hier wurden konsequent die oben gelisteten Forderungen umgesetzt.

Das Konzept im groben Überblick:

Es wird auf einem beliebigen (auch virtualisierten) Rechner innerhalb der Infrastruktur WebPDF installiert (Betriebssystem ab Windows XP Pro bzw. Server 2003 bis Server 2012 R2 bzw. Linux) – und das wars auch schon!
Die BenutzerInnen greifen mittels Weboberfläche auf den Service zu, wodurch eine Clientinstallation entfällt! Darüber hinaus kann dieser Dienst natürlich auch – zb via VPN oder SSL – an verschiedenen Unternehmensstandorten genutzt werden. Zeitraubende Updates auf den Clients gehören damit der Vergangenheit an!

Da ein Bild mehr als 1000 Worte sagt:

webpdf_technical_concept_deu_ph

WebPDF arbeitet mit allen gängigen Dateiformaten, von Office-Dateien über Bilddateien bis hin zu Websites oder Mails, und erstellt daraus ein PDF. Mit an Board ist eine weiters eine PDF-OCR Funktion sowie die Möglichkeit, PDF-Dateien zu signieren.

Darüber hinaus gibt es für Entwickler entsprechende Schnittstellen, sodass aus selbst erstellten Anwendungen auch direkt auf den zentralen Service zugegriffen werden kann. Eine Integration in SAP, Exchange etc ist ebenfalls einfachst zu realisieren.

Interessant für zertifizierte Unternehmen ist auch, dass der ISO-Standard 19005-2:2012 (PDF/A-3) eingehalten wird!

 

Java 8 Update 73 ausrollen via ADMINOMAT anstatt GPO

Problem:
Java lässt sich seit Version 8 nur mehr sehr mühsam mittels Gruppenrichtlinie (GPO) ausrollen.

Lösung:
Anstatt dem Rollout mittels .msi und GPO verteilen wir das JAVA-Update nun per silent Installation per psexec und ADMINOMAT.

Voraussetzungen:
Es muss ein funktionierendes Active Directory vorhanden sein – und ihr seid Mitglied der Domänen-Admins!
a) psexec von Mark Russinovich – download zum Beispiel hier
b) adminomat – download hier

Vorgangsweise:
die nachfolgenden Schritte können auf JEDEM Client in der Domäne durchgeführt werden!
Einzige Einschränkung: ihr müsst als Domänen-Admin angemeldet sein

1.) Adminomat.rar downloaden entpacken an beliebigen Ort (auch USB-Stick o. ä.). Von dort startet das Programm ohne installation – und zwar auf jedem Client [ab Windows XP] und Server [ab Windows Server 2003] !

2.) psexec downloaden und in den selben Ordner entpacken, in dem auch adminomat.exe gespeichert ist.
Dies kann auch ein Ordner auf einem Netzlaufwerk oder einem USB-Stick sein

3.) Download der aktuellen JAVA-Version als Offline-Setup, zum Beispiel hier

4.) Java-Installationsdatei (zb jre-8u73-windows-i586.exe) auf ein Netzlaufwerk kopieren, auf dem zumindest alle User LESEN dürfen

5.) ADMINOMAT starten, einlesen der MAC- und IP-Adressen vom Windows-DHCP-Server bestätigen

6.) Falls erwünscht, kann vorerst für eine gesamte OU eingelesen werden, welche JAVA-Version aktuell auf den Clients installiert ist:

a) Ansicht anpassen bzw. erweitern um „Software_Lookup“

Auswahl: ONLINEINFO und die gesuchte Software eingeben (Platzhalter wie * wird automatisch ergänzt)

Detailansicht:
[auf diesen Clients sind offensichtlich mehrere Java-Versionen parallel am laufen…]

7.) Das Rollout starten:
a) Auswahl der gewünschten Clients, die das Update von JAVA erhalten sollten, in dem man Haken setzt
b) „psexec“ rechts oben auswählen
c) den Pfad zum Share mit der installationsdatei angeben inkl der nötigen Flags

Erklärung:

Flags, die zu psexec gehören MÜSSEN am Beginn eingegeben werden!
hier: /V /C [dadurch wird die jre-8u73-windows-586.exe zuerst zum Client kopiert, bevor sie gestartet wird]
WICHTIG: die Flags /s /i /d für psexec sind bereits im adminomat hinterlegt und müssen nicht mehr gewählt werden!!!

Flags, die zu eurer installations.exe gehören müssen NACH der Pfadangabe angegeben werden, hier /s [silent installation]

WICHTIG WICHTIG WICHTIG:
Der Pfad zu eurer instalations.exe MUSS unter Anführungszeichen sein – die Flags nach dem letzten Anführungszeichen!!!

In unserem Beispiel ergibt sich also:

/V /C "\\SERVER\share\jre-8u73-windows-i586.exe" /s

Dadurch führt ADMINOMAT für jeden gewählten Client dann folgendes aus:
psexec /S /I /D \\myClient  /V /C „\\SERVER\share\jre-8u73-windows-i586.exe“ /s

[Anm: dies kopiert die Datei jre-8u73-windows-i586.exe auf den Client (durch /V /C am Beginn eurer Eingabe) und startet anschließend die Silent-Installation (durch /s am Ende) von Java 8 Update 73]

Der angemeldete User bemerkt davon nichts!!!
Diese Methode funktioniert auch, wenn kein User angemeldet ist!

8.) nach ein paar Minuten Geduld kann kontrolliert werden, ob alle Clients das Update erhalten haben!
Siehe Punkt 6.) dieser Anleitung

9.) DEINSTALLATION alter Java-Versionen:

a) Erhebung der SID der zu entfernenden Java-Version, zb hier
bzw selbst am Client in der Registry suchen unter dem Tree
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{26A24AE4-…

b) psexec rechts oben erneut anklicken, anstatt den Pfad zur Setup.exe anzugeben, gebt ihr folgendes in das Popup von psexec ein:

zb für Java 7 Update 67

msiexec /x {26A24AE4-039D-4CA4-87B4-2F03217067FF} /qn /norestart

Dieser Befehl wird dann per psexec auf den ausgewählten Clients durchgeführt, und bewirkt die Uninstall-Routine der entsprechenden Version!

10.) Kontrolle:
(siehe Punkt 6.)

Abschließende Anmerkung:
während der Installation kann man bei Unsicherheiten, ob das Rollout beim Client auch gestartet wurde, folgendes machen:
a.) Detailansicht für den Client durch Klick auf den Namen starten
b.) Taskmanager links in der Ansicht starten

c.) es sollten für unser Beispiel 2 Prozesse gestartet worden sein:

 

letzter Tipp:
Diese Vorgehensweise funktioniert mit einer Vielzahl von anderen Rollouts ebenso!

Weiters kann mit dieser Funktion für ganze OU’s einheitlich eine Software gestartet werden, die mit dem Systemkonto „SYSTEM“ ausgeführt wird, dh, falls eine Software keinen Silent-Mode im Rollout unterstützt, können die angemeldeten User diese auch selbst ohne Admin-Rechte installieren!

 

Adminomat kann in der Version 1.3 auch installierte Software suchen

Seit Version 1.3 kann die von uns entwickelte Software „Adminomat“ auch installierte Software auf Clients im AD anzeigen.

Anlassfall war die Frage, ob eine ausgerollte Software per GPO auch auf allen Clients angekommen ist…
(also etwas sehr häufiges)

Alle anderen wirklich lässigen Funktionen von ADMINOMAT sowie der Download unter

http://www.adminomat.at/produktvergleich/

Und da ein Bild mehr als 1000 Worte sagt:
adminomatAdminomat_DetailsAdminomat_Anzeige

InternetExplorer 10 – Proxysettings, Startseite, etc via Gruppenrichtlinie

Problem

Internet Explorer 10 übernimmt KEINE Einstellungen wie Proxysettings, Startseite, etc, die man in der Vergangenheit für den Internet Explorer 7 oder 8 via Gruppenrichtlinie vorgenommen hat!

Zur Erinnerung:

IExplorer_GPO

Lösung:

  • Die Gruppenrichtlinie auf einem Windows Server 2012 bzw. Windows 8 aufrufen und erweitern
    (dort erscheinen bei NEU> auch Internet Explorer 9 bzw. 10)

Workaround: (weil man keinen Windows Server 2012 bzw. Windows 8 im Betrieb hat)

  1. Gruppenrichtlinie mit den Internet Explorer Einstellungen auswählen -> Eindeutige ID anzeigen lassen
     
    eindeutigeID
     
  2. Folgenden Ordner im SYSVOL suchen
    \\myDomain.at\SYSVOL\myDomain.at\Policies\{EindeutigeID}\User\Preferences\InternetSettings
     
  3. InternetSettings.xml -> rechte Maustaste -> bearbeiten
     
  4. den Eintrag max=“9.0.0.0″ ÄNDERN in max=“10.2.0.0″

     
  5. Eventuell: name=“Internet Explorer 8″ ERWEITERN auf name=“Internet Explorer 8 bis 10 – Eigenbau“
    [damit man sich selbst auch in ein paar Monaten noch erinnern kann, dass hier etwas geändert wurde…]

Ich habe diesen Workaround soeben auf einem Client mit Windows7 bzw. Internet Explorer 10 erfolgreich getestet!

OuShutdown 1.2 ist fertig!

Introduction
OuShutdown sammelt alle Clients einer oder mehrerer Organisationseinheiten eines Active Directory und fährt sie herunter (remote shutdown).
Sofern ein Windows DHCP-Server verwendet wird, können die Clients mittels eines Magic Pakets auch aus dem Standby „geweckt“ werden, bevor sie herunterfahren.
Das Tool kann entweder direkt in einer CommandShell oder als geplanter Task verwendet werden.

[OuShutdown is a Tool, that collects all members of 1 ore more Organizational Unit(s) within an Active Directory and starts a remote shutdown for all clients in that OU]

Runs on:
Client Windows XP oder höher
Server 2003 oder höher

Installation
Kopiere OuShutdown in Dein bevorzugtes Verzeichnis. Ein Doppelklick auf die Datei zeigt die Syntax an, die in einer Commandshell zu verwenden ist.
[Copy OuShutdown onto your executable path. Typing „OuShutdown“ displays its usage syntax. ]

Download:
OuShutdown.exe [[downloadcounter(oushutdown.exe)] x heruntergeladen]

Die Nutzung des Tools ist gratis – Vertrieb nur nach vorheriger Genehmigung durch mich!
[Usage is for free – All rights reserved by Edi Pfisterer]

Usage:
OuShutdown.exe /ou:Dv1,Dv2,Dv3 [/dhcp:servername]

DV1,DV2,DV3 steht für die OUs, in der alle Clients heruntergefahren werden sollten
optional: SERVERNAME steht für den Windows-DHCP-Server (zum Wecken aus dem Standby)

Tipp:
Wenn das Tool als „geplanter Task“ eingesetzt wird, dann müssen die Flags außerhalb der Anführungszeichen manuell eingetragen werden…

PS:
Zusatzfeature: In dem Ordner, in dem das Tool gespeichert wird, wird eine alleInfos.csv angelegt, die alle Clients  inkl. OU, IP-Adresse und MAC-Adresse beinhält…

Credits:
Dank an
Matthias Zirngibl [http://masterbootrecord.de/docs/wakeup.php] für die Verwendung seiner wake.exe

Additional Backgroundinformations:
– es muss eine funktionierende Windows Active Directory – Domäne vorhanden sein
– aus Sicherheitsgründen muss das Tool mit einer DomänenAdministratorenKennung ausgeführt werden.
– Das Tool funktioniert auch in Netzen, die in VLANs aufgeteilt sind.
– Clients, die in der OU „Computers“ sind, können nicht angesteuert werden!
– Bei Windows7-Clients muss bei der Netzwerkkarte „Allow this device to wake the Computer“ angehakt sein, damit der Client auch heruntergefahren werden kann, wenn er im Standby schlummert.

Besitzer von Ordnern per Skript ändern

Wer zum jährlichen Anlegen neuer Schüleraccounts das Porgramm EUser von Koll. Steingruber verwendet, arbeitet vermutlich mit den dadurch angelegten UserOrdnern, die üblicherweise mit dem Laufwerksbuchstaben H: beim Login gemappt werden. (bekannt als das „Homeverzeichnis“)

Probleme können nun auftreten, wenn diese Ordner verschoben werden (da der Server getauscht wird o. ä.)….

Probleme können vor allem auftreten, wenn vergessen wird, die NTFS-Berechtigungen mitzuübertragen (hier sollte xcopy QuelleZiel /O /X /E /H /K  — oder wer eine GUI möchte — Total Commander mit den entsprechenden Einstellungen verwendet werden).

Ich hatte nun bei einem Kunden den Fall, dass zwar die NTFS-Berechtigungen, jedoch NICHT der jeweilige Besitzer mitübertragen wurde. Dies wirkt sich äußerst nachteilig auf die Verwendung von Kontingenten aus.

Weiters wurden bei ihm nun unter Windows 7 die Ordnernamen nicht mehr richtig angezeigt, sondern alle Ordner erschienen als „Eigene Dateien“, wenn er als Administrator eingeloggt war (was sich dadurch erklärt, dass der Administrator gleich der Besitzer dieser Ordner ist). Dieses Verhalten der falsch angezeigten Ordnernamen tritt im übrigen nur dann auf, wenn der jeweilige Ordner die Datei desktop.ini enthält…

Ich habe nun ein Script geschrieben, dass dieses Problem  behebt.

Funktionsweise:
Es wird für jeden Ordner (und alle Unterordner) geprüft, ob es einen zugehörigen User im Active Directory gibt, bei dem der Username und der Ordnername ident sind.
Wird ein gleichlautender User gefunden, so übernimmt dieser User den Besitz des Ordners (und alle Unterordner sowie Dateien).

Benutzung:
Beim erstmaligen Ausführen der Datei aus einem beliebigen Ordner wird die Datei „Berechtigungsänderungen.txt“ angelegt, in der alle nötigen Informationen enthalten sind.

Tipp: das Skript verändert den Besitzer nur, wenn es aus einer Command-Shell wie folgt aufgerufen wird:

BerechtigungenReparieren.exe /scharf:YES /Userordner:Q:\meineHomeshares\Schueler

[wobei Q:\meineHomeshares\Schueler natürlich für den zu verändernden Ordner steht!!!]

Durch blosses Doppelklicken des Scripts wird lediglich die Ordnerstruktur + eventuellem Active Directory User in der Berechtigungsänderungen.txt angezeigt, aber NICHTS veärndert.

Voraussetzungen:
Das Script funktioniert NUR mit Windows 7 bzw. Windows Server 2008
(Sollte jemand noch Windows Server 2003 verwenden, sollte er das Tool von einem Windows 7 – Client aus starten, und als Userordner einfach den UNC-Pfad angeben [z.B: \\meinServer\home$])

Download:
BerechtigungenReparieren.exe [[downloadcounter(BerechtigungenReparieren.exe)] x heruntergeladen]

Ich übernehme KEINE HAFTUNG für irgendwelche Schäden (eh klar)… 😉
Sollte sich jemand unsicher sein mit dem Tool, kann er es einfach durch Doppelklick in einem beliebigen Ordner mit den Homeshares starten und die jeweiligen Zeilen, die in der .txt-Datei angeführt werden, in einer Commandshell ausprobieren, ob sie das tun, was er möchte.
[Alternative: aus einer Commandshell BerechtigungenReparieren.exe /scharf:NO /Userordner:Q:\meineHomeshares\Schueler
]
Wenn dann anschließend die gesamte Ordnerstruktur in der .txt kontrolliert wurde, kann das Script SCHARF gestartet werden.

Feedback – welches auch immer – ist very warm welcome…
(wobei „Edi, Du bist mein Held“ oder „Edi, Du kommst in jedem meiner Abendgebete vor“ wohlwollender entgegengenommen wird  🙄

Quelltext:

warntext = warntext & "Dieses Tool verändert den Besitzer von Ordnern und Dateien!" & vbcrlf
warntext = warntext & "Funktionsweise: Es wird für jeden Ordner und Unterordner im Active Directory ""nachgesehen"", ob es einen User" & vbcrlf
warntext = warntext & "mit dem selben Namen gibt!" & vbcrlf
warntext = warntext & "Wenn es eine Übereinstimmung gibt, so wird bei alle Dateien sowie Ordnern in diesem Verzeichnis der Besitzer geändert" & vbcrlf
warntext = warntext & "" & vbcrlf
warntext = warntext & "ACHTUNG! Es werden aktuell hier nur die Ordner aufgelistet." & vbcrlf
warntext = warntext & "Um in den Ordnern die Besitzer tatsächlich zu ändern (nachdem alles kontrolliert wurde), MUSS dieses Script " & vbcrlf
warntext = warntext & "aus einer Commandshell heraus mit wie folgt gestartet werden:" & vbcrlf & vbcrlf  & vbcrlf
warntext = warntext & "BerechtigungenReparieren.exe /scharf:YES /Userordner:H:\meineHomeverzeichnisse\Schueler" & vbcrlf & vbcrlf  & vbcrlf
warntext = warntext & "[wobei H:\meineHomeverzeichnisse\Schueler natürlich für den zu verändernden Ordner steht!!!]" & vbcrlf
warntext = warntext & "[Tipp: wenn Ordner Leerzeichen haben, dann den Ordnername zwischen zwei "" sezten]" & vbcrlf
warntext = warntext & "[Tipp2: das Tool funktioniert auch mit Freigaben, also zB \\meinServer\home$\schueler]" & vbcrlf & vbcrlf & vbcrlf
warntext = warntext & "Chefmodus: (Experts only)" & vbcrlf
warntext = warntext & "unten abgebildeten Quellcode mit dem Notepad als BerechtigungenReparieren.vbs speichern und folgendes ändern:" &vbcrlf
warntext = warntext & "in der Zeile mit dem Quelltext //   ' Modus = ""yes""  // muss lediglich das Hochkomma am Beginn gelöscht werden" & vbcrlf
warntext = warntext & "dann kann das Script auch per Doppelklick SCHARF gestartet werden!" & vbcrlf
warntext = warntext & "jetzt wird durch jeden DOPPELKLICK auf diese Datei BerechtigungenReparieren.vbs im jeweiligen Ordner und Unterordner die Berechtigungen geändert!" & vbcrlf & vbcrlf
warntext = warntext & "ACHTUNG: Es wird keine Haftung für etwaige Schäden übernommen!!! Also VORSICHT bei der Verwendung" & vbcrlf & vbcrlf
warntext = warntext & "[Feedback an Edi Pfisterer --> edi@schulnetz.info --> www.schulnetz.info]" & vbcrlf & vbCrLf  & vbcrlf & vbCrLf

Set objFSO = CreateObject("Scripting.FileSystemObject")

dateiname = "Berechtigungsänderungen.txt"

ueberordner = WScript.Arguments.Named.Item("Userordner")
         if len(ueberordner)= 0 then
                  scriptname = Wscript.ScriptFullName
                  ueberordner = objFSO.getparentfoldername(scriptname)
         end if
warntext = warntext & "Aktuelles Verzeichnis: " & ueberordner & vbcrlf & vbcrlf
Modus = WScript.Arguments.Named.Item("scharf")

' Modus = "yes"

 call InDateiSchreiben(warntext)

                        Set objShell = CreateObject("WScript.Shell")
					    objShell.Popup "Es werden nun alle eventuell zu verändernden Ordner einzeln aufpoppen! " & vbcrlf & "Lesen Sie in der Datei Benutzerberechtigungen.txt, die soeben angelegt wurde nach, wie Sie dieses Tool ""scharfstellen""!" & vbcrlf & "Um diese Tool zu stoppen, müssen Sie im Taskmanager die Datei wscript.exe beenden!", 20, "Info"
					    Set objShell = Nothing

call Ordnerliste(ueberordner)

function Ordnerliste(pfad)

        Set objFolder = objFSO.GetFolder(pfad)
        Set colSubfolders = objFolder.Subfolders

        For Each objSubfolder in colSubfolders
              on Error resume next

                 vollername = objFSO.GetAbsolutePathName(objSubfolder)

                NT_Benutzer = UserNameIsolieren(vollername)
                if Benutzerabfrage(NT_Benutzer) = 1 THEN
                   if instr(1,modus,"yes",1) = 0 Then  'es wird lediglich eine txt erzeugt, Dateien bleiben unverändert
                        call InDateiSchreiben(vollername)
                        call InDateiSchreiben("USER GIBTS")
                        befehl = "icacls " & vollername & " /setowner " & NT_Benutzer & " /t /c /l /q"
                        call InDateiSchreiben(befehl)
                        call InDateiSchreiben(vbcrlf)

                        Set objShell = CreateObject("WScript.Shell")
					    objShell.Popup vollername & " würde auf den neuen Besitzer " & NT_Benutzer & " geändert werden, wenn Sie das Tool ""scharf"" stellen würden....", 5, "Info"
					    Set objShell = Nothing
                   Else           

                      befehl = "icacls " & vollername & " /setowner " & NT_Benutzer & " /t /c /l /q "

                      Set objShell = CreateObject("WScript.Shell")
                      objShell.Run "%comspec% /c echo j|" & befehl, 0, 1
                      'WshShell.Run "cmd /q echo j|" & befehl , 0, 1

                      Call InDateiSchreiben (befehl)
                      call InDateiSchreiben(vollername & " wurde auf den neuen Besitzer " & NT_Benutzer & " geändert!" & vbcrlf)

					    Set objShell = CreateObject("WScript.Shell")
					    objShell.Popup vollername & " wurde auf den neuen Besitzer " & NT_Benutzer & " geändert!", 5, "Info"
					    Set objShell = Nothing

						objFSO.DeleteFile(vollername & "\desktop.ini")

                end If
                end if

         call Ordnerliste(vollername)
        Next

end function

function InDateiSchreiben(inhalt)
  set logbuch1 =objFSO.opentextfile(dateiname, 8, true,0)  ' 8 zum anfügen
                logbuch1.write inhalt & vbcrlf
                logbuch1.close
end function

function UserNameIsolieren(strUsername)
  letzterBackslash = instrRev(strUsername,"\")
  laenge = len(strUsername)
  eigentlicherUsername = right(strUsername, laenge-letzterBackslash)
 ' call InDateiSchreiben(eigentlicherUsername)
  UserNameIsolieren = eigentlicherUsername
end function

Function Benutzerabfrage(strUserName)
BenutzerVorhanden = 0
Set rootDSE = GetObject("LDAP://RootDSE")
DomainName = rootDSE.Get("defaultnamingcontext")
DomainString = Replace(DomainName, "DC=", "")
DomainString = Replace(DomainString, ",", ".")

    Set objDomain = GetObject("WinNT://" & DomainString)
    objDomain.Filter = Array("user")
    For Each User In objDomain
        If lcase(User.Name) = lcase(strUserName) Then
           BenutzerVorhanden = 1
        End If
    Next
        if BenutzerVorhanden THEN Benutzerabfrage = 1
End Function

msgBox "Ich bin fertig!"



freien Speicher auf einem Laufwerk regelmäßig auslesen

Problemfeld:
der freie Speicherplatz auf einem Datenträger variiert sehr stark im Tagesverlauf, die Ursache ist unklar. Es könnte hilfreich sein, die Veränderungen im Zeitverlauf zu protokollieren, damit der Übeltäter leichter eingrenzbar ist.

Lösung:
Der freie Speicher auf einem Laufwerk lässt sich mit folgendem VBScript-Code sehr leicht protokollieren:

folgenden Code einfach als „freierSpeicher.vbs“ an einem beliebigen Ort speichern:

Dim fso, drive, FreeSpace

Set fso = CreateObject("Scripting.FileSystemObject")

Set drive = fso.GetDrive("c:\")

FreeSpace = drive.AvailableSpace

FreeSpace = round(FreeSpace/1024/1024/1024,2)

'msgBox Freespace & "GB"

datei= "freierSpeicher.txt"

If NOT fso.FileExists(datei) Then

set dateineu = fso.createtextfile(datei, false) 

else

set dateineu = fso.OpenTextFile(datei, 8,1)

end if

dateineu.writeline Freespace & "GB frei - erstellt am " & now & vbcrlf

set drive = nothing

set fso = nothing

Ergebnis:
Beim Ausführen der Datei  „freierSpeicher.vbs“ wird eine „freierSpeicher.txt“ erstellt, die folgende Einträge enthält:

0,14GB frei - erstellt am 01.11.2011 17:48:51

Wenn nun der Aufruf dieser freierSpeicher.vbs als geplanter Task im 10 Minuten-Takt wiederholt wird, bekommt man ein sehr aufschlussreiches Bild darüber, wie sich der Speicherplatz verändert…

WDS: Image wird nicht oder manchmal nicht kopiert

Problem: ein Image lässt sich per WDS nicht verteilen, es kommt zu folgender Fehlermeldung:

Windows could not parse or process unattend answer file
[unattend.xml] for pass [specialize].

Die Antwortdatei für die unbeaufsichtigte Installation [unattend.xml]
für Durchgang [specialize] konnte nicht analysiert oder verarbeitet werden.
Die Antwortdatei ist ungültig.

mögliche Ursache und Lösung: Weiterlesen