Edit Comment
IT-Stuff, Tutorials, Software, Internet, Unterhaltung Willkommen auf IMA

Die Offlinedateien von Windows 7 werden ebenso selten genutzt wie sie das Netzwerk belasten können, wenn sie aktiviert sind.

Manuell kann man die Funktion folgendermaßen deaktivieren:
Start -> “Offlinedateien verwalten” suchen -> Offlinedateien deaktivieren
oder
Start -> Systemsteuerung -> Synchronisierungscenter -> Offlinedateien verwalten (links im Menü unten) -> deaktivieren

disable windows 7 offlinefiles sync offlinedateien 460x245 Windows Offline Dateien deaktivieren per Skript im AD

Im Unternehmen kann es durchaus sinnvoll sein, die Offlinedateien per Gruppenrichtlinie oder per Skript zu deaktivieren.
Und für die Verteilung im Windows AD Netzwerk habe ich natürlich wieder ein Skript vorbereitet:

@echo off & Color 9f & setlocal

set log=\\server\pfad\disable-offline-files.log
set preconfig=99

sc stop CscService
sc config CscService start= DISABLED

:check
for /f "tokens=1,2,3 delims= " %%a in ('reg query "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\CSC" /v Start^|findstr "Start"') do set preconfig=%%c
echo %date% %time:~0,8% - %computername% Offline-Files: %preconfig% >> %log%
if "%preconfig%"=="0x1" goto disable
goto end

:disable
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\CSC" /v Start /t REG_DWORD /d 4 /f
echo %date% %time:~0,8% - %computername% Offline-Files deaktiviert, errorlevel %errorlevel% >> %log%

:end
endlocal
pause

Auszug aus der Logdatei:
disable windows 7 offlinefiles sync offlinedateien log 460x109 Windows Offline Dateien deaktivieren per Skript im AD


Windows Update Fehler Code 80072EE2… verdammt nochmal, was ist das für ein Fehler?!
windows update fehler error code 80072ee2 460x231 Windows Update Fehler 80072EE2   Tipps & Tools

Laut Microsoft Hilfe werden “möglicherweise ungewöhnlich viele Updates von den Windows Update-Servern angefordert.”. Also die Server oder das Netzwerk sind überlastet. Bei einem lokalen WSUS Server im Netzwerk an einem ruhigen Freitag kann man das eher ausschließen.

Es gibt aber auch Meinungen, nach denen der Fehler an fehlender oder geblockten Verbindung zum Update Server liegt, wie in diesem Video angesprochen. Also die Verbindung zum WSUS Server prüfen, Antivirenprogramme prüfen, ggf. vorübergehend deaktivieren.

Hilft nicht? Dann helfen vielleicht folgende Tools:

Microsoft Fix-It zum Zurücksetzen der Update Komponenten:
windows update fehler error code 80072ee2 fix it 460x397 Windows Update Fehler 80072EE2   Tipps & Tools

Hilft nicht? Bei mir auch nicht.
Weiter mit dem PC-WELT-Fix für Windows Update:
windows update fehler error code 80072ee2 ct fix it 460x258 Windows Update Fehler 80072EE2   Tipps & Tools
Dieses Tool ist relativ aktuell und dadurch für die Systeme XP bis Windows 8 geeignet. Auf älteren Systemen (XP/Vista) kann man es ggf. auch mit dem pcwUpdateRepair probieren. Vermutlich sind diese Fixes aber im aktuellen Fix It mit enthalten.

Bei der Gelegenheit ein Hinweis für Admins: das PC-WELT Fix It Pack enthält ein paar nette kleine Tools im schnellen Zugriff für die Erste Hilfe am PC. Manche sind bereits fertig installiert, andere müssen noch schnell installiert werden. Die Installer sind aber in den Pack schon enthalten. Die Software ist neben der mächtigen Sammlung WSCC, welche alle nirsoft und sysinternals Tools enthält, eine kleine Alternative:
pc welt fix it pack for admins usage 460x368 Windows Update Fehler 80072EE2   Tipps & Tools

Hilft uns jetzt aber erstmal nicht weiter.

Der Fehler bleibt ungelöst und es geht wieder zurück zum Troubleshooting:

  • Ping/Remotezugriff zum WSUS Server (bzw. Windows Update) funktioniert?
  • Hat der WSUS Server den Computer in seiner Computerliste gelistet?
  • Wann war die letzte Aktualisierung laut WSUS?
  • Werden dort Fehler oder fehlerhafte Updates angezeigt?
  • Ggf. die Updates des WSUS bereinigen lassen (WSUS -> Optionen -> Assistent für die Serverbereinigung).
  • Antivirenprogramme/Firewalls/andere Verbindungsblocker sowohl auf dem Client als auch auf dem Server temporär deaktivieren. Achtung, natürlich alles so schnell wie möglich wieder aktivieren.

Ich vermute der Fehler liegt am Netzwerk des PCs. Zwar funktionieren Pings und Serverzugriffe, jedoch zeigen die Netzwerkfunktionen teilweise abnormales Verhalten. Die Netzlaufwerke spinnen; sobald ich versuche Daten dort abzuspeichern, stürzt der Explorer (auch der Total Commander) ab und alle Netzlaufwerke sind nicht mehr erreichbar. Trotz WSUS Ping wird der Rechner nicht in der Computerliste des WSUS gelistet. Vielleicht Fehler in der Netzwerkkarte.

Falls ich die Probleme behoben kriege, ergänze ich das hier natürlich. Vorerst bleibt das Rätsel ungelöst.


tech struktur2 140x135 Mongoose Verbindung zur MongoDB Datenbank mit auth ParameterIn einem aktuellen Webprojekt verwende ich MongoDB als Datenbank und die Node Erweiterung mongoose als Aufsatz. mongoose ist für alle Entwickler, die bisher pur auf der MongoDB arbeiten, definitiv einen Blick wert.
Anfangs wurde lokal auf dem PC programmiert, mittlerweile beginnen wir den Umstieg auf einen Webhoster. Dabei ergab sich ein Problem, dass ich kurz erläutern möchte.

Die Mongoose Verbindung zur Datenbank erfolgt anhand eines Connection Strings, der bei einer Standardinstallation aller Komponenten sehr einfach aussehen kann:

var mongoose = require("mongoose");
mongoose.connect("mongodb://localhost/proorg-test");

Dieser String verwendet localhost als Server, den Standardport von MongoDB 27017, die Datenbank “proorg-test” und keine Authentifizierung. Das reicht für den Anfang und funktioniert gut.

Nach dem Umstieg auf einen (shared) Webserver trifft man jedoch meistens eine andere MongoDB Installation an. Oftmals wird diese mit dem Parameter –auth eine Authentifizierung erfordern, einen anderen Port nutzen und vielleicht auch einen anderen Server verwenden.
Neben den zusätzlichen Angaben für Server, Port und User muss man Mongoose jetzt auch befehlen, sich explizit an der “Admin Tabelle” zu authentifizieren. Dies ist meisten die admin Tabelle, in der auch ein Admin Nutzer, dessen Daten im Connection String stehen, enthalten sein sollte.

var mongoose = require("mongoose");
mongoose.connect("mongodb://mongodb_admin:r0OtP4s$w0rd@localhost:20718/proganizer", {auth:{authdb:"admin"}});

Dieser String enthält jetzt den wichtigen Teil {auth:{authdb:”admin”}}, damit Mongoose sich mit dem mongodb_admin an der admin Tabelle authentifiziert.

Mehr dazu auch in den MongoDB Security Tutorials.

logo trans 2012 140x78 Mongoose Verbindung zur MongoDB Datenbank mit auth ParameterAn dieser Stelle auch big shoutouts an uberspace.de, der sympathische deutsche Webhoster mit “Preis-selber-wählen” Prinzip und einem riesigen Arsenal an vorinstallierten, vorkonfigurierten und bestens dokumentierten Server- und Entwickler-Tools. Ein kleiner Einblick: “SSH. Perl. PHP. Python. Ruby. node.js. Erlang. Lua. Compiler. FastCGI. MySQL. CouchDB. MongoDB. Cronjobs. HTTPS. IMAP. SMTP. Webmail. qmail. vmailmgr. maildrop. Spam­Assassin. ezmlm-idx. DSPAM. ~/service. runwhen. Eigene Logs. Backups. 10 GB Plattenplatz. Und das ist nur der Anfang.”

Mögliche Fehlermeldungen:
Dieser Fehler würde auftreten, wenn trotz –auth Parameter bei MongoDB der Standard Connection String benutzt würde:
assertion 16550 not authorized for query on proganizer.users ns:proganizer.users query:{ username: “SchurigH” }
Wenn man nur Benutzername und Passwort eingibt, ohne den auth Parameter von Mongoose einzustellen, also

mongoose.connect("mongodb://schurigh_mongoadmin:r0OtP4s$w0rd@localhost:20718/proganizer");

, dann kommt:
auth: couldn’t find user schurigh_mongoadmin@proganizer, proganizer.system.users
Und selbst wenn man jetzt in proganizer.system.users einen neuen Admin User erstellt – das ginge mit db.addUser({user:”proganizer_admin”, pwd: “*****”, roles: [ "readWrite", "dbAdmin" ]}); – würde das nicht funktionieren. Ohne {auth:{authdb:”admin”}} geht es nicht.


Registry Werte aus der Registry auslesen ist ein alter Hut, no problem. Auch ganze Pfade aus der Registry lesen stellt grundsätzlich kein Problem dar. Schwierig wird es jedoch, wenn der auszulesende Pfad Leerzeichen enthält. Und seit Windows Vista enthalten ja fast alle Pfade ein Leerzeichen: C:\Program Files\…

Dieser Post dient der Zusammenfassung der wichtigsten Batch Registry Abfragen.

Einfache Werte und Pfade ohne Leerzeichen

@echo on & Color 9f & setlocal
REM einfache Werte
set ff=0
for /f "tokens=1,2,3 delims= " %%a in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Mozilla\Mozilla Firefox" /v "CurrentVersion"^|findstr "CurrentVersion"') do set ff=%%c
echo %ff%

REM einfache Pfade
set spath=0
for /f "tokens=1,2,3 delims= " %%a in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Ghisler\Total Commander" /v "IniFileName"^|findstr "IniFileName"') do set spath=%%c
echo %spath%

Also eine festgelegte Anzahl an Tokens, Leerzeichen als Delimiter, der dritte Token ist der Registry Wert. Token 1 und 2 sind der Name des Registry Werts und der Wert-Typ.

Werte oder Pfade mit Leerzeichen

REM Werte mit Leerzeichen
set value=0
for /f "usebackq skip=2 tokens=1,2*" %%a in (`reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\FileZilla Client" /v "Startmenu"`) do set value=%%c
echo %value%

REM Pfade mit mehreren Leerzeichen
set path1=0
set path2=0
REM Möglichkeit 1: mit Option usebackq, /ve (liest den (Standard) Wert aus)
for /f "usebackq skip=2 tokens=1,2*" %%a in (`reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\FileZilla Client" /ve`) do set path1=%%c
echo %path1%
REM Möglichkeit 2: ohne Option usebackq
for /f "tokens=2*" %%a in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\FileZilla Client" /ve') do set path2=%%b
echo %path2%

Für Werte oder Pfade mit Leerzeichen müssen 3 Dinge beachtet werden:
1. Die Delimiter entfallen.
2. Tokens empfangen mit * mehrere durch Leerzeichen getrennte Werte und packen sie in den letzten Token zusammen; den wir dann abfragen.
3. Bei der Methode 1 mit usebackq müsst ihr unbedingt auf die Anführungszeichen achten! Der komplette Inhalt in den Klammern wird mit einem “backquote”, also `, eingeschlossen. Das ` ist kein ” und kein ‘ und kein ´ usw, achtet darauf! Alle anderen Angaben kommen wie gewohnt in doppelte Anführungszeichen. Bei der Methode ohne usebackq kommt der Klammerinhalt in normale einfache Anführungszeichen ‘.

Das Ergebnis aller obrigen Code-Schnipsel:
registry werte mit batch auslesen mit leerzeichen usebackq Batch   Registry Werte mit und ohne Leerzeichen auslesen


Firefox 26.0 AD Script Deployment (Update)

Meine letzten Posts zum Firefox Script Deployment sind schon etwas älter: 17.0.2, 9.0, 8.0.1.
Sie beschreiben die zugrundeliegende Technik, mit der Firefox verteilt werden kann. Ich möchte das hier für die aktuellste Version 26.0 zusammenfassen.

Firefox 26.0

Das Installationsscript:

@echo off & Color 9f & setlocal
set wd=\\lea\Deployment\Software\Firefox
set log=%wd%\firefox.log
set tools=\\lea\Deployment\Sonstiges\tools
set instversion=0.0
set retry=0
set versionEL=9
set instEL=999
REM ######## EDIT THIS ####
set newversion=26.0
REM #######################

REM Clientfilter: nur die Computer aus der allowedPCs.txt dürfen installieren
::for /f %%f in (%wd%\allowedPCs.txt) do if "%computername%"=="%%f" goto check
::goto end

REM Clientfilter: die Computer aus der deniedPCs.txt dürfen nicht installieren
for /f %%f in (%wd%\deniedPCs.txt) do if "%computername%"=="%%f" goto end

:check
REM prüfe ob eine 32bit Version von Firefox schon installiert ist
for /f "tokens=1,2,3 delims= " %%a in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Mozilla\Mozilla Firefox" /v "CurrentVersion"^|findstr "CurrentVersion"') do set instversion=%%c
REM falls keine 32bit Version von Firefox gefunden wurde, prüfe 64bit
if "%instversion%"=="0.0" for /f "tokens=1,2,3 delims= " %%a in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Mozilla\Mozilla Firefox" /v "CurrentVersion"^|findstr "CurrentVersion"') do set instversion=%%c

REM Wenn Version nicht gleich: vergleiche Versionen mit dem Versionchecker
%tools%\VersionCompare.exe %instversion% %newversion%
set versionEL=%errorlevel%
if "%versionEL%"=="-1" goto install
if "%versionEL%"=="0" echo %date% %time:~0,8% - %computername% hat bereits %instversion% installiert >> %log% & goto end
if "%versionEL%"=="1" echo %date% %time:~0,8% - %computername% hat bereits %instversion% (neuer) installiert >> %log% & goto end

:install
echo %date% %time% - %computername% (%instversion%) installiert %newversion%... >> %log%
taskkill /F /IM firefox.exe
ping localhost -n 2
"%wd%\Firefox%newversion%.exe" -ms
set instEL=%errorlevel%
if %instEL%==1618 goto retry REM msiexec process in use, installation already in progress (eg. windows updates running)
if %instEL%==1602 goto retry REM user canceled installation (eg. taskkill)
if %instEL%==1603 goto retry REM fatal error, some use it for "already installed" (eg. java)
::if %instEL%==1638 goto uninstall REM another product is already installed, denies an update

REM Install 32-bit customisations
if exist "%programfiles%\Mozilla Firefox\" copy /Y "%wd%\override.ini" "%programfiles%\Mozilla Firefox\"
if exist "%programfiles%\Mozilla Firefox\" copy /Y "%wd%\mozilla.cfg" "%programfiles%\Mozilla Firefox\"
if exist "%programfiles%\Mozilla Firefox\" copy /Y "%wd%\local-settings.js" "%programfiles%\Mozilla Firefox\defaults\preferences"

REM Install 64-bit customisations
if exist "%ProgramFiles(x86)%\Mozilla Firefox\" copy /Y "%wd%\override.ini" "%ProgramFiles(x86)%\Mozilla Firefox\"
if exist "%ProgramFiles(x86)%\Mozilla Firefox\" copy /Y "%wd%\mozilla.cfg" "%ProgramFiles(x86)%\Mozilla Firefox\"
if exist "%ProgramFiles(x86)%\Mozilla Firefox\" copy /Y "%wd%\local-settings.js" "%ProgramFiles(x86)%\Mozilla Firefox\defaults\preferences"

echo %date% %time% - %computername% Installation abgeschlossen, Errorlevel %instEL% >> %log%
goto end

:retry
if %retry%==1 goto retryfailed
echo %date% %time:~0,8% - %computername% hatte den Fehler %instEL%, retry in 5min... >> %log%
set retry=1
REM 5 Minuten warten
ping localhost -n 300 > nul
goto install

:retryfailed
echo _!_ %date% %time:~0,8% - %computername% hat die Installation abgebrochen, %instEL%, RETRY FAILED! >> %log%
goto end

:uninstall
if %retry%==1 goto retryfailed
echo %date% %time:~0,8% - %computername% deinstalliert Version %instversion% aufgrund EL 1638 Fehler... >> %log%
taskkill /F /IM firefox.exe
start /w "%programfiles%\Mozilla Firefox\uninstall\helper.exe" -ms
start /w "%programfiles(x86)%\Mozilla Firefox\uninstall\helper.exe" -ms
echo %date% %time:~0,8% - %computername% - %instversion% fertig deinstalliert, retry... >> %log%
set retry=1
goto install

REM Removes Firefox Desktop Icon - Windows XP
::if exist "%allusersprofile%\Desktop\Mozilla Firefox.lnk" del "%allusersprofile%\Desktop\Mozilla Firefox.lnk" /S

REM Removes Firefox Desktop Icon - Windows 7
::if exist "C:\Users\Public\Desktop\Mozilla Firefox.lnk" del "C:\Users\Public\Desktop\Mozilla Firefox.lnk"

:end
endlocal

In Zeile 10 immer die aktuelle Version eintragen und den Installer entsprechend diesem Schema umbenennen: Firefox[Version].exe (z.B. Firefox26.0.exe)

local-settings.js:

pref("general.config.obscure_value", 0);
pref("general.config.filename", "mozilla.cfg");

mozilla.cfg:

//Firefox Default Settings

// Standard Browser Check
// pref("browser.shell.checkDefaultBrowser", true);

// Firefox Update Check
pref("app.update.enabled", true);

// stops the 'know your rights' button from displaying on first run
pref("browser.rights.3.shown", true);

// stops the request to send performance data from displaying
pref("toolkit.telemetry.enabled", false);

// Disable JS windows popping up without direct action from the user
// (as lots of porn and spam sites do)
pref("dom.disable_open_during_load", true);

// Syntax highlighting in View Source.
pref("view_source.syntax_highlight", true);

// Ein paar Anpassungen von http://www.amsys.co.uk/2013/blog/configuring-firefox-17-for-deployment/#.UPAXNuT8Jn4
// This will stop the ‘Thanks for installing Firefox’ from showing when first launching Firefox.
pref("app.update.showInstalledUI", false);
// This will stop another ‘Congratulations on installing Firefox’ screen when launching Firefox.
pref("browser.startup.homepage_override.mstone", "ignore");

Ich habe mal wieder alle Eigenschaften überprüft und alle veralteten Settings entfernt. Diese hier sollten alle noch stimmen.

override.ini:

[XRE]
EnableProfileMigrator=false

Datei install.ini hatte ich in den letzten Posts immer noch mit drin. Ich glaube jedoch, dass die Datei gar nicht mehr benutzt wird und habe sie mittlerweile aus meiner Verteilung entfernt.

Die Verteilung läuft bereits seit Langem ohne Probleme.
script based firefox 26 deployment log 460x164 Firefox 26.0 AD Script Deployment (Update)




Translator

Categories

Admin

Sie möchten hier werben oder Sponsor auf längere Zeit werden? Ich garantiere Ihnen unschlagbare Preise bei meinen Besucherzahlen. Egal ob Banner, Textlinks oder andere Werbeformen. Informieren Sie sich bei mir unter werbung@hannes-schurig.de