Suche

lichtschattenblog

Bildschirme mit 12 Volt Spannungsversorgung

In der heutigen Zeit mit der Vielzahl an zur Verfügung stehenden Daten ist es immer wieder erstaunlich wie schwer es sein kann zu einfachen Problemen eine einfache und schnelle Lösung zu finden.

In meinem Fall wird einfach ein Bildschirm mit 100×100 VESA-Halterung, ca. 24 Zoll Diagonale und 12 Volt Spannungseingang (es wird hierbei von Gleichspannung ausgegangen) benötigt. Ob HDMI- oder DVI-Anschluss war dabei egal.

Ich glaube viele Camper und ggf. sogar Tiny House-Freunde mit Solarpanel mit 12 Volt haben diesen Bedarf. In meinem Fall ist es ein industrieller, für den kurzen und mobilen Einsatz.

Ich habe dabei keine Idee wie viele Stunden ich bei der Suche verbracht habe. Das Problem beginnt bereits, dass die Hersteller oft nicht mitteilen, ob das Netzteil intern oder extern ist. Bei einem externen Netzteil wird dann die Wechselspannung von 230 Volt über Transformator und Wechselrichter umgewandelt. Welche Spannung dass dann ist, steht nirgendswo. Nicht auf der Webseite des Herstellers (es gibt eine mir bekannte Ausnahme), noch bei den Shopping-Portalen.

Ich habe daher den jeweiligen Support der Hersteller per E-Mail oder direkt telefonisch angefragt. Ungewöhnlich für mich – ich scheine der Einzige mit dieser Frage zu sein.

Alle Angaben sind ohne Gewähr!

 

Mein Ergebnis der Recherche mit Stand 22. Mai 2018:

  • Acer / Packard Bell (telefonisch): „seit 5 Jahre dabei und sie sind der erste Kunde mit dieser Frage“ … „dabei ist diese gar nicht so abwegig“ – ein genanntes Model konnte nicht bestätigt werden
  • AOC (telefonisch): keine entsprechenden Informationen erhalten
  • ASUS (per E-Mail): „es tut mir leid aber unsere Monitore sind nich für den 12V Betrieb ausgelegt.“
  • BenQ: kein Modell verfügbar
  • EIZO (Kontaktformular): warte auf Antwort
  • ELO-Touch (Webseite):
    2201L 22 Zoll Touchscreen Monitor
    http://www.elotouch.de/catalog/product/view/id/177/s/2201l/category/18/ (siehe Eingangsspannung)
    2202L 22 Zoll Touchscreen Monitor
    http://www.elotouch.de/touchscreen-monitors/2202l.html (siehe Eingangsspannung)
    2402L 24 Zoll Touchscreen Monitor
    http://www.elotouch.de/touchscreen-monitors/2402l.html (siehe Eingangsspannung)
    Ggf. gibt es weitere Modelle!
  • HP (E-Mail): Leider haben wir kein Bildschirm mit 12 Volt Eingangsspannung.
  • Iiyama (telefonisch): folgende Displays haben/werden 12 Volt Eingangsspannung haben (jeweils mit Touchscreen)
    IIYAMA ProLite T2234MC-B3X (22 Zoll, End of Live) – https://iiyama.com/de_de/produkte/prolite-t2234mc-b3x/
    IIYAMA ProLite TF2234MSC-B5X (der kommende Nachfolger vom T2234MC-B3X) – https://iiyama.com/de_de/produkte/prolite-tf2234mc-b5x/
    IIYAMA ProLite TF2215MC-B1 (22 Zoll, ohne Fuß) – https://iiyama.com/de_de/produkte/prolite-tf2215mc-b1/
    IIYAMA ProLite TF2415MC-B1 (24 Zoll, ohne Fuß)
    https://iiyama.com/de_de/produkte/prolite-tf2415mc-b1/
    ProLite TF1015MC-B1 (10 Zoll, ohne Fuß)
    – https://iiyama.com/de_de/produkte/prolite-tf1015mc-b1/
    Zur Verifizierung: Link öffnen, Technische Daten, Stromverwaltung, Stromversorgung: DC 12 V
    Ggf. gibt es weitere Modelle!
    Nebenbei war das für mich der beste Kontakt – Dank an Herrn Schneider!
  • Lenovo: nicht versucht da die Auswahl zu klein und bereits nicht dem Bedarf entsprechend
  • LG (per E-Mail): „wir haben leider keine Monitore mit 12 Volt Versorgungsspannung in unserem Portfolio“
  • NEC (telefonisch): „keine Modelle mit externem Netzteil“
  • Philips (telefonisch): Das Modell 2hfl3011t/12 soll die Anforderungen erfüllen. Angaben konnten nicht bestätigt werden!
  • Samsung (telefonisch): Die Modelle LS24F350fhuxen und LS24F356fhuxen sollen ein Netzteil mit 12 Volt haben – Auskunft vom technischen Kontakt „ich habe hier ein Netzteil und da steht 12 Volt drauf“. Bei Gegenprüfung fand ich bei einem großen Onlinehandel Bilder die die Unterstützung für 75×75 VESA-Halterung zeigen und eine Info in einer Antwort: „man kann den Bildschirm aber nicht flach an der Wand anbringen“. Zusätzlich werden im Handbuch: http://downloadcenter.samsung.com/content/UM/201801/20180123215352716/BN46-00552E-Ger.pdf, Seite 25 als Eingangsspannung direkt am Bildschirm 14 Volt aufgeführt
  • Toshiba (Kontaktformular): warte auf Antwort
  • Viewsonic (per E-Mail): „leider können wir Ihnen keine Empfehlung aussprechen, den alle unsere Monitore mit einem externen Netzteil,
    werden mit einer Eingangsspannung von 19V betrieben.“

 

Mein aktuelles Fazit und auf Basis meiner Erfahrungen ist für mich derzeit die einzige Wahl die Verwendung der entsprechenden Bildschirme von EloTouch und Iiyama jeweils mit Touchscreen, 12 Volt Eingangsspannung und 100×100 VESA-Halterung. Alternativ gibt es Fernseher mit 12 Volt Eingangsspannung, zum Beispiel von Technisat (https://www.technisat.com/de_DE/TECHNILINE-PRO-22/352-11059-11091/?article=5522/9716), jedoch mit 75×75 VESA-Halterung.

Für die Camper gibt es teilweise geeignete KFZ-Notebook-Netzteile mit Regler der Ausgangsspannung und Adapter für unterschiedliche Anschlüsse. Eine zusätzliche Alternative bietet technisch versierten ein Spannungswandler von 12 Volt auf 19 Volt (https://www.amazon.de/gp/product/B01H97ESN6?th=1) und die Verwendung eines Bildschirms mit 19 Volt Eingangsspannung (z. Bsp. von LG und Viewsonic, aber nicht alle). Hier bitte die notwendige Leistung, ggf. Abwärme, Kontakt- und Spannungsschutz und die variierenden Größen der Spannungswandler beachten.

 

Links die von mir verwendet wurden (alphabetisch nach Hersteller sortiert):

unbeaufsichtigte Installation von Kodi unter Windows

Vorab: Bei Verwendung der hier genannten Skripte und eventuell resultierenden Schäden übernehme ich keine Haftung. Jegliche Verwendung erfolgt auf eigene Gefahr.

 

Zur unbeaufsichtigten Installation und Deinstallation von Kodi gibt es ein paar Möglichkeiten dies auszuführen.

Wichtig ist vorab die Logik zur Konfiguration von Kodi zu verstehen. Die zusammenfassend sind:

  • eine Installation von Kodi im Silent Mode kann mit dem Argument /S durchgeführt werden
  • Anpassungen von Kodi werden unter Windows unterhalb %appdata% des jeweiligen Benutzers gespeichert
  • für eine angepasste Installation und Konfiguration müssen alle wichtigen Dateien zu den vorgenommen Anpassungen erkannt und gespeichert werden. Dies kann ggf. nur durch ausprobieren erfolgen
  • teilweise können Konfigurationsdateien aus älteren Kodi-Versionen problemlos übernommen werden. Ggf. erfolgt eine automatische Aktualisierung einiger Dateien, wie db-Dateien

In meinem Fall wurde ein Kodi in Version 17.6 verwendet. Abweichend zur Standardinstallation liegen Anpassungen zur Verwendung von tvheadend (pvr.hts), deutscher Oberfläche, dem Skin, reduzierten Menüs (keine Bilder, keine Musikdatenbank, keine Videodatenbank), reduzierten Benutzerrechten (aktiviertem Master-Password) und Verwendung einer Hama-Fernbedienung vor. In diesem Fall sind die Anpassungen in den folgenden Dateien gespeichert:

Wie kann nun die unbeaufsichtigte Installation erfolgen?

Zunächst kopieren wir das Verzeichnis kodi aus %appdata% bzw. c:\users\<dein benutzername>\AppData\Roaming in eine geeignete Freigabe (bei Verwendung meiner Skripte zusätzlich in den Unterordner appdata) auf einem Server und löschen alle nicht relevanten Dateien und Ordner in der Kopie. Wer Anpassungen in weiteren Addons durchgeführt hat, muss speziell die Dateien unterhalb …\kodi\userdata\addon_data berücksichtigen.

Anschließend kann die Verteilung automatisiert über eine Gruppenrichtlinie (gpo) oder wie in meinem Fall über einen Remoteinstallationsserver (Remote Installer von Firma emco software: https://emcosoftware.com/) erfolgen. Vorteil ist die Installation und Aktualisierung von Programmen zum laufenden Betrieb.

Anbei die von mir selbst erstellten Skripte. Die Verwendung mit diesen Skripten bei Installation von Kodi 17.6 war bisher unter Windows 10 problemlos. Unter Windows 7 gab es wenige Rechner wo die Installation nicht möglich war, da ein notwendiges Windows-Update nicht installiert werden konnte (bei manueller Installation erscheint eine Fehlermeldung die mit <Enter> bestätigt werden muss). In diesem Fall und Einsatz von Gruppenrichtlinien würde die Installation nicht erfolgreich sein und erst nach 15 Minuten zum Rechnerstart die Installation abgebrochen werden. Daher empfehle ich unter Windows 7 Kodi 16.

Anbei die drei Skripte, welche in der Freigabe gespeichert werden. In diesem Verzeichnis gibt es die Installationsdatei kodi-17.6-Krypton-x86.exe und das Unterverzeichnis appdata mit den entsprechenden Dateien vom kodi (<Verzeichnis als Freigabe>\appdata\kodi).

Hinweis: In meinen Skripten ist das Verzeichnis kodi unterhalb %appdata% weiterhin vorhanden!

 

install_kodi.bat

@echo off

set "install_file=%~dp0kodi-17.6-Krypton-x86.exe"
set "refresh_appdata_script=%~dp0kodi_refresh_appdata.bat"
set "win10_kodi_lnk=C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Kodi\Kodi.lnk"


:KILL_KODI_PROCESS
taskkill /F /IM kodi.exe /T > nul


:INSTALL_KODI
"%install_file%" /S


:REFRESH_APPDATA_KODI
call "%refresh_appdata_script%"


:CREATE_KODI_LNK
REM needs admin rights
if EXIST "%win10_kodi_lnk%" (

xcopy "%win10_kodi_lnk%" "%allusersprofile%\Desktop" /R /Y > nul

)

 

kodi_refresh_appdata.bat

@echo off

set "appdata_source=\\<servername>\kodi$\appdata"

if NOT "%ProgramFiles(x86)%" == "" (
if EXIST "%ProgramFiles(x86)%\kodi\kodi.exe" GOTO REFRESH_APPDATA_KODI
) else (
if EXIST "%ProgramFiles%\kodi\kodi.exe" GOTO REFRESH_APPDATA_KODI
)

GOTO END


:REFRESH_APPDATA_KODI
if NOT "%appdata_source%" == "" (
for /F "delims=*" %%a in ('dir /B c:\Users ^| find /V /I "TEMP" ^| find /V /I "Public" ^| find /V /I "Default.migrated"') do (
if EXIST "c:\users\%%a\AppData\Roaming\" (
echo try: xcopy "%appdata_source%" "c:\users\%%a\AppData\Roaming\" /E /C /I /R /Y
xcopy "%appdata_source%" "c:\users\%%a\AppData\Roaming\" /E /C /I /R /Y
)
)
)

:END

remove_kodi.bat

@echo off

set "win10_kodi_lnk=C:\Users\Public\Desktop\Kodi.lnk"


:KILL_KODI_PROCESS
taskkill /F /IM kodi.exe /T > nul


:START_UNINSTALL_KODI
if NOT "%ProgramFiles(x86)%" == "" (
if EXIST "%ProgramFiles(x86)%\kodi\uninstall.exe" ( "%ProgramFiles(x86)%\kodi\uninstall.exe" /S )
) else (
if EXIST "%ProgramFiles%\kodi\uninstall.exe" ( "%ProgramFiles%\kodi\kodi.exe" /S )
)

:CLEAN_APPDATA_KODI

for /F "delims=*" %%a in ('dir /B c:\Users ^| find /V /I "TEMP" ^| find /V /I "Public" ^| find /V /I "Default.migrated"') do (
if EXIST "c:\users\%%a\AppData\Roaming\Kodi" (
echo try: rmdir /S /Q "c:\users\%%a\AppData\Roaming\Kodi\"
rmdir /S /Q "c:\users\%%a\AppData\Roaming\Kodi\"
)
)

:REMOVE_DESKTOP_LINK
if EXIST "%win10_kodi_lnk%" (
del "%win10_kodi_lnk%"
)

 

Anbei ein paar Erläuterungen zum Skript install_kodi.bat:

  • %~dp0 bedeutet das Verzeichnis indem sich die install_kodi.bat befindet
  • %~dp0kodi-17.6-Krypton-x86.exe ist somit bei Ausführung \\<servername>\<freigabe>\kodi-17.6-Krypton-x86.exe
  • zu Beginn wird ein ggf. bestehender Kodi-Prozess beendet
  • die Installation von Kodi mit Option /S wird durchgeführt (großes S !!!)
  • kodi_refresh_appdata.bat wird gestartet
  • Verknüpfung zum Aufruf von Kodi wird auf den Desktop für alle Benutzer kopiert
  • mit diesem Skript kann auch eine Aktualisierung oder Neuinstallation von Kodi erfolgen

Ein paar Erläuterungen zum kodi_refresh_appdata.bat:

  • zu Beginn wird das Verzeichnis mit der AppData-Kopie von kodi definiert
  • Hinweis: sofern mehrere Verzeichnisse mit abweichender AppData-Kopie definiert werden müssen (Beispiel mehrere TVHeadend-Server), kann dies ggf. durch Abgleich mit dem Standardgateway erfolgen:
    ipconfig | find /I „192.168.x.x“ if %ERRORLEVEL% == 0 ( set „appdata_source=\\<servername>\kodi$\appdata_standort1“ )
  • es wird geprüft ob Kodi installiert ist und wenn ja werden die Kodi-Konfigurationsdateien für alle Benutzer auf dem jeweiligen System (außer Public, Temp und Default.Migrated) aktualisiert
  • dieses Skript kann separat bei einer bereits erfolgten Installation zur Konfigurationsaktualisierung verwendet werden
  • die Verwendung erfordert vollen administrativen Zugriff auf die Verzeichnisse der verschiedenen Benutzer

Ein paar WICHTIGE Erläuterungen zu remove_kodi.bat:

  • zu Beginn wird ein ggf. bestehender Kodi-Prozess beendet
  • die Deinstallation von kodi über uninstall.exe mit Option /S wird durchgeführt (großes S !!!)
  • für alle Benutzerprofile auf dem PC werden die Konfigurationsdateien vom Kodi gelöscht
    Wer dies nicht möchte muss die Zeile:
    rmdir /S /Q „c:\users\%%a\AppData\Roaming\Kodi\“
    löschen oder REM zu Beginn der Zeile:
    rmdir /S /Q „c:\users\%%a\AppData\Roaming\Kodi\“
    schreiben.
    also: REM rmdir /S /Q „c:\users\%%a\AppData\Roaming\Kodi\“
    Bei falscher Anwendung und Anpassung dieser Zeile besteht die Möglichkeit von Datenverlust. Ggf. diese Zeile löschen!!!
  • es wird die Desktop-Verknüpfung von Kodi gelöscht

Windows 7 – Deaktivierung Sicherheitsabfrage bei Aufruf Programme im Netzwerk via Desktop-Verknüpfung

Mit Windows-Taste + R Eingabe-Dialog öffnen und GPEDIT.MSC ausführen.

Anschließend Benutzerkonfiguration -> Administrative Vorlagen -> Windows-Komponenten -> Anlagen-Manager auswählen.

Aufnahmeliste für Dateitypen mit niedrigem Risiko aktivieren.

Unter Dateiendungen die gewünschte Dateiendung hinterlegen: .exe

Bei weiteren Dateiendungen einfach mit Semikolon trennen.

Ggf. noch Standardrisikostufe für Dateianlagen auf Niedrige Stufe setzen.

 

PRTG – Skript zur Abfrage am Remote MS Windows Server – XML-Datensatz

Zur Überwachung des Lastenausgleichs einer Citrix XenApp-Server-Umgebung war es notwendig die Befehlsausgabe von qfarm /load via XML im PRTG einzulesen. Es besteht hierbei natürlich die Möglichkeit dies für andere Systeme und Befehle zu verwenden.

Eine typische Ausgabe von qfarm /load ist:

prtg_gfarm_load_example

Bei meinen Tests habe ich zwei Varianten erfolgreich testen können. Ich persönlich bevorzuge Variante 1 mit PowerShell. Variante 2 via batch-Skripte und Freigabe hat den Nachtteil, das ggf. das Skript per Hand gestartet und zusätzlich die Ausführung überwacht werden muss. Kann aber im Bedarfsfall ein guter Ersatz sein.

Variante 1 – via Powershell-Skript:

Bei dieser Variante mittels Powershell muss zunächst sichergestellt werden, dass der Remote-Server sogenannte Invoke-Commands erfolgreich akzeptiert. Dies machen wir auf unserem PRTG-Server mittels dem Powershell-Befehl:

  • test-wsman <Remote-Server>

Wenn die Konfiguration noch nicht korrekt ist, erhalten wir folgende Meldung:

prtg_powershell_test

In diesem Fall führen wir die folgenden Befehle aus:

  • Enable-PSRemoting -Force
  • Set-Item wsman:\localhost\client\trustedhosts *
  • Restart-Service WinRM

Wer nicht allen Systemen die Remote-Ausführung von PowerShell-Befehlen gestatten will muss das * im zweiten Befehl mit einer Liste der gewünschten Systeme austauschen.

  • Set-Item wsman:\localhost\client\trustedhosts „server01, server02“

Hinweis: Bei jeder Änderung muss der dritte Befehl erneut ausgeführt werden.

Wenn die Konfiguration korrekt ist erhalten wir zur Ausführung des PowerShell-Befehls:

  • test-wsman <Remote-Server>

prtg_powershell_test_success

Hinweis: Zum erweiterten Test, mit der Möglichkeit PowerShell-Befehle direkt auf dem Remote-Server ausführen zu können und dass die bestehenden Rechte ausreichend sind, stehen folgende PowerShell-Befehle zur Verfügung:

  • Enter-PSSession -ComputerName
  • Enter-PSSession -ComputerName <Remote-Server> -Credential <Remote-Username>

Jetzt erstellen wir auf unserem Remote-Server ein geeignetes Verzeichnis und hinterlegen dort eine entsprechende Skript-Datei. In meinem Fall C:\PRTG und:

  • prtg_get_qfarm_load.ps1

In dieser Datei hinterlegen wir folgenden Code:

Set-ExecutionPolicy Unrestricted

[string]$cmd = 'qfarm'
[string]$par = '/load'

[array]$cmdoutput = & $cmd $par

$cmdoutput = $cmdoutput[3..($cmdoutput.length)]

Write-Host '<?xml version="1.0" encoding="Windows-1252" ?>'
Write-Host '<prtg>'

foreach ($line in $cmdoutput) {

 $line = $line -replace '\s+', ' '

 $lineparts = $line.Split(' ')

 Write-Host ' <result>'
 Write-Host -Separator '' '  <channel>'$lineparts[0]' - LOAD</channel>'
 Write-Host -Separator '' '  <value>'$lineparts[1]'</value>'
 Write-Host '  <unit>Load</unit>'
 Write-Host '  <float>0</float>'
 Write-Host '  <LimitMaxError>10000</LimitMaxError>'
 Write-Host '  <LimitErrorMsg>Server'$lineparts[0]'ist maximal ausgelastet. Prozessorlast bzw. RAM-Nutzung zu hoch. Bitte korrigieren!</LimitErrorMsg>'
 Write-Host '  <showChart>1</showChart>'
 Write-Host '  <showTable>1</showTable>'
 Write-Host '  <LimitMode>1</LimitMode>'

 Write-Host ' </result>'

}

Write-Host '</prtg>'

Führen wir nun die Datei in der powershell aus bekommen wir eine Ausgabe ähnlich:

prtg_qfarm_load_ps1_test

Jetzt müssen wir nur noch auf unserem PRTG-Server dafür sorgen, dass dieses Skript remote aufgerufen wird. Hierzu erstellen wir auf unserem PRTG-Server im Verzeichnis:

C:\Program Files (x86)\PRTG Network Monitor\Custom Sensors\EXEXML

eine entsprechende PowerShell-Datei. In meinem Fall:

  • prtg_get_qfarm_load_remote.ps1

In dieser Datei fügen wir folgenden kurzen Code ein:

Invoke-Command -ComputerName $args[0] -ScriptBlock { & C:\PRTG\prtg_get_qfarm_load.ps1 }

Hinweis: Ggf. den Namen der PowerShell-Datei auf dem Remote-Server anpassen!

Zum Test wechseln wir in die Powershell und rufen das Skript mit dem Computernamen des Remoteservers als alleiniges Argument auf:

& 'C:\Program Files (x86)\PRTG Network Monitor\Custom Sensors\EXEXML\prtg_get_qfarm_load_remote.ps1' <Remote-Server>

und erhalten als Beispiel:

prtg_qfarm_load_remote_ps1_test

Hinweis: Zur Ausführung des Befehls auf meinem PRTG-Server steht oben rechts PS. Wenn durch Tests mit Eurem Remote-Server dort dessen Name zu sehen ist, arbeitet ihr in der PowerShell auf dem falschen System!

Im PRTG selbst fügen wir bei unserem bestehenden Server einen neuen Sensor vom Typ:

  • Programm/Skript (erweitert)

hinzu. Im zweiten Schritt ist zwingend darauf zu achten, dass der Sicherheitskontext auf „Die Anmeldedaten für Windows des übergeordneten Geräts verwenden“ gesetzt ist und unser Skript ausgewählt ist. Bitte beachten dass ggf. die Anmeldeinformationen vom Server gesetzt werden müssen.

prtg_qfarm_load_add_sensor.jpg

Nach zweimaliger Ausführung des Skripts durch den Server sehen wir nun:

prtg_qfarm_load_final_sensor_v2

 

Variante 2 – via batch-Skripte und Freigabe

Eine zweite Variante, die ich mir im Vorfeld überlegt und getestet habe, ist die lokale Ausführung eines batch-Skriptes, in einer Schleife, auf dem Remote-Server.

Hierzu habe ich auf dem Remote-Server ein Verzeichnis PRTG angelegt und als PRTG$-Freigabe für den PRTG-Server verfügbar gemacht.

In das Verzeichnis habe ich eine Datei: prtg_get_qfarm_load.bat erstellt.

@echo off

SET "TEMPOUTPUTFILE=C:\PRTG\prtg_get_qfarm_load.tmp"
SET "OUTPUTFILE=C:\PRTG\prtg_get_qfarm_load.xml"

:LOOP

if NOT "%OUTPUTFILE%" == "" (

 (

 echo ^<?xml version="1.0" encoding="Windows-1252" ?^>
 echo ^<prtg^>

 for /f "skip=2 tokens=1,2 delims= " %%a in ('qfarm /load ^| findstr /v /r /i "^--"') do (

  echo ^<result^>
  echo  ^<channel^>%%a - LOAD^</channel^>
  echo  ^<value^>%%b^</value^>
  echo  ^<unit^>Load^</unit^>
  echo  ^<float^>0^</float^>
  echo  ^<LimitMaxError^>10000^</LimitMaxError^>
  echo  ^<LimitErrorMsg^>Server %%a ist maximal ausgelastet. Prozessorlast bzw. RAM-Nutzung zu hoch. Bitte korrigieren! ^</LimitErrorMsg^>
  echo  ^<showChart^>1^</showChart^>
  echo  ^<showTable^>1^</showTable^>
  echo  ^<LimitMode^>1^</LimitMode^>
  echo ^</result^>

  )

 echo ^</prtg^>
 ) > "%TEMPOUTPUTFILE%"

move %TEMPOUTPUTFILE% %OUTPUTFILE%

TIMEOUT /T 10 /NOBREAK > nul
GOTO LOOP

)

 

Zur Ausführung der Skript-Datei wird eine Temp-Datei als XML erzeugt, da die Ausführungszeit von qfarm /load ggf. zu lang ist und das Ergebnis vom PRTG-Server nicht vollständig gelesen wird. In diesem Fall hätten wir einen Fehler im PRTG. Nach Abschluss der Generierung der Temp-Datei wird diese in die Zieldatei umbenannt und die alte XML-Datei überschrieben. Das Skript führt die Schleife alle 10 Sekunden aus.

Damit diese Batch-Datei auf dem Server nicht sichtbar ist, habe ich diese mit dem Tool Bat-To-Exe-Converter, Portable Variante, mit folgendem Befehl in eine exe-Datei umgewandelt:

Bat_To_Exe_Converter.exe -bat c:\prtg\prtg_get_qfarm_load.bat -save c:\prtg\prtg_get_qfarm_load.exe -invisible

Durch einmalige manuelle Ausführung der prtg_get_qfarm_load.exe-Datei wird nun alle 10 Sekunden die gewünschte XML-Datei generiert.

Hinweis: Um diesen Vorgang beenden zu können, muss der laufende Prozess prtg_get_qfarm_load.exe über den TaskManager oder taskkill-Befehl beendet werden (Bsp.: taskkill /F /IM prtg_get_qfarm_load.exe /T).

Hinweis: Meine ursprüngliche Idee war die Erstellung eines Dienstes mit dem Befehl sc create. Leider war dies nicht erfolgreich. Wer hierzu erfolgreich eine exe-Datei als Dienst aktivieren konnte, mir bitte einen Kommentar senden. Gerne hinterlege ich hier die funktionierende Variante.

Zum Abruf der Daten in der XML-Datei ist erforderlich dies über ein Skript ans PRTG zu übergeben. Nach Auskunft vom PRTG-Support besteht nicht die Möglichkeit XML-Dateien direkt einzulesen.

Auf dem PRTG-Server, im Verzeichnis C:\Program Files (x86)\PRTG Network Monitor\Custom Sensors\EXEXML habe ich eine Datei read_prtg_get_qfarm_load.bat erstellt, deren Aufgabe lediglich die Ausgabe des Dateiinhaltes ist.

@echo off
type \\<remote-server>\prtg$\prtg_get_qfarm_load.xml

Im PRTG selbst fügen wir bei unserem bestehenden Server einen neuen Sensor vom Typ:

  • Programm/Skript (erweitert)

hinzu und wählen dass von uns hinterlegte Skript aus:

prtg_qfarm_load_batch_add_sensor

Auch hier sehen wir nach zweimaliger Abfrage des Sensors:

prtg_qfarm_load_batch_final_sensor

 

Quellen:

MS-DOS mit Netzwerkunterstützung unter VM Ware und Zugriff auf Netzwerkfreigabe unter MS Windows Server 2012R2

Auch wenn es für viele in der heutigen Zeit nicht vorstellbar ist, kommen teilweise noch Systeme mit MS-DOS 6.22 und älter zum Einsatz.

In diesem Fall besteht die Notwendigkeit einen alten Server durch einen neuen mit MS Windows Server 2012R2 zu ersetzen. Dabei bleiben einige Systeme auf MS-DOS 6.22 erhalten.

Zum Test des Servers, dass auch Verbindungen von MS-DOS 6.22 auf diesen möglich sind, habe ich unter VM Ware Workstation MS-DOS 6.22 mit MS Network Client 3.0 installiert.

Wichtig war für mich, dass ich ein Produktivsystem nicht gefährde, bei dem nur noch bedingt Support möglich ist.

Ansonsten stammen meine Erfahren mit Netzwerk unter MS-DOS aus Kindheitstagen vor über 20 Jahren mit NE2000-kompatiblen Netzwerkkarten, um via Netzwerk gemeinsam spielen zu können. Die Speicherkonfiguration unter MS-DOS wurde damals exzessiv betrieben und die hier verwendeten Befehle sind ebenso im Gedächtnis eingebrannt.

Das Schöne unter MS-DOS ist, dass bereits durch Sicherung der Verzeichnisstruktur alle Treiber und Konfigurationsdateien für den Ernstfall vorliegen und auf Basis dieser kleinen Dokumentation ein System wiederhergestellt werden kann. Lediglich der Bedarf der passenden Treiberdiskette bei Tausch der Netzwerkkarte kann in Zukunft ein größeres Problem werden.

Vorbereitung Server:

Damit die Serverfreigaben von MS Windows Server 2012R2 mittels MS-DOS 6.22 genutzt werden können, müssen folgenden Maßnahmen am Server durchgeführt werden:

  • Aufruf der Management Console mittels Befehl mmc
  • Mit STRG + M rufen wir den Dialog zum Hinzufügen von Snap-Ins auf und wählen
    Richtlinien für Lokale Computer und schließen den Dialog
  • Wir wechseln nun im linken Dialog unter Konsolenstamm, Richtlinien für Lokale Computer -> Computerkonfiguration -> Windows-Einstellungen -> Sicherheitseinstellungen -> Lokale Richtlinien -> Sicherheitsoptionen und prüfen folgende Optionen, ob diese wie folgt gesetzt sind:
    • Microsoft-Netzwerk (Client): Kommunikation digital signieren (immer):
      -> Deaktiviert
    • Microsoft-Netzwerk (Client): Kommunikation digital signieren (wenn Server zustimmt):
      -> Deaktiviert
    • Microsoft-Netzwerk (Server): Kommunikation digital signieren (immer):
      -> Deaktiviert
    • Microsoft-Netzwerk (Server): Kommunikation digital signieren (wenn Client zustimmt):
      -> Deaktiviert
    • Netzwerksicherheit: Keine LAN Manager-Hashwerte für nächste Kennwortänderung speichern:
      -> Deaktiviert
    • Netzwerksicherheit: LAN Manager-Authentifizierungsebene:
      -> Nur NTLM Antworten senden

ms_windows_server_2012r2_netzwerksicherheit_msdos.jpg

  • Anschließend erstellen wir den lokalen Benutzer auf unserem Server und setzen das Passwort. Bei bestehenden Benutzern muss das bestehende Kennwort erneut gesetzt werden!
    Hinweis: Einfach erneut STRG + M und anschließend Lokale Benutzer und Gruppen auswählen
  • Anschließend richten wir auf dem Server eine Freigabe ein (es wird hierbei empfohlen kurze Freigabenamen zu verwenden) und erteilen dem lokalen Benutzer für das Verzeichnis der Freigabe mindestens Leserechte.
    Hinweis: Zur Auswahl den Suchpfad auf den Server setzen und nach dem vollständigen Benutzernamen suchen!

Vorbereitung VM und Installation MS-DOS 6.22:

Die Installation von MS-DOS 6.22 unter VMware Workstation ist nicht besonders schwierig. Zu beachten sind hierbei:

  • Zur Option Install from: wählen wir die Option: I will install the operating system later
  • Guest operation system: Other, Version MS-DOS
  • Bei Maximum disk size (GB): reichen bereits 0.02 GB
  • Im Dialog: Ready to Create Virtual Machine wählen wir Customize Hardware und wechseln unter Network Adapter die Option Network Connection zu Bridged
  • Im Dialog zur Hardware fügen wir zusätzlich Floppy Drive hinzu. Je nach Möglichkeit verwenden wir ein physisches Diskettenlaufwerk (gibt es noch mit USB) oder vorab erstellten Images von Disketten.

vmware_start_dialogvmware_newmachine_assistant01vmware_newmachine_assistant02vmware_newmachine_assistant03vmware_newmachine_assistant04vmware_newmachine_assistant05vmware_newmachine_assistant06vmware_newmachine_assistant07vmware_newmachine_assistant08vmware_newmachine_assistant09vmware_newmachine_assistant10vmware_newmachine_assistant11vmware_newmachine_assistant12vmware_newmachine_assistant13

Anschließend starten wir die vorbereitete VM. Wichtig ist natürlich die erste Diskette der drei Installationsdisketten von MS-DOS 6.22 in die VM einzubinden.

Als erstes wird die Festplatte zur Installation von MS-DOS 6.22 vorbereitet. Danach erfolgt ein erster Neustart. Danach startet der Installationsdialog für MS-DOS 6.22 und wir wechseln nach jeder Aufforderung die Disketten physisch oder wenn als Image mittels: Player -> Removable Devices -> Floppy -> Settings.
Hinweis: Mit STRG + ALT könnt ihr die VM „verlassen„.

vmware_msdos_install01vmware_msdos_install02vmware_msdos_install03vmware_msdos_install04vmware_msdos_install05vmware_msdos_install06vmware_msdos_install07vmware_msdos_install08vmware_msdos_install09vmware_msdos_install10

Nach der dritten Diskette entfernen wir diese und starten in der VM das System mittels STRG + ALT + Einfg neu:

vmware_msdos_running01

Für die Nicht-alten Hasen zur Nutzung von MS-DOS 6.22 ein paar Befehle als Beispiel:

Wechsel ins Unterverzeichnis net: cd net 
Editieren der Datei system.ini im aktuellen Verzeichnis: edit system.ini
Wechsel ins darüberliegende Verzeichnis: cd ..
Ausgabe der Hilfe von net start: net start /? | more
Erstellene eines Verzeichnis: mkdir disk1
Dateien von Disketten ins Verzeichnis c:\disk1 kopieren: copy a:\*.* c:\disk1\*.*
Alle Dateien im Verzeichnis mit Unterverzeichnisse auflisten und bei Bedarf pausieren: dir /s /p
Alle Dateien mit PWL als Dateiendung löschen: del *.PWL
Microsoft Diagnose-Program starten: msd
Schließen von Programmen - häufig: F3-Taste
Schließen von Programmen: STRG + C
Aufruf Tool zur Speicheroptimierung (unter vmware bitte nicht anwenden): memmaker
Alle Dateien ohne Dateiendung oder Verzeichnisse im aktuellen Verzeichnis auflisten: dir *.
Alle Dateien mit Dateiendung exe im aktuellen Verzeichnis auflisten: dir *.exe
Alle Dateien mit Dateiendung sy? im aktuellen Verzeichnis auflisten: dir *.sy*
Datei/Befehl setup.bat, setup.cmd oder setup.exe ausführen: setup
Wechsel zum Diskettenlaufwerk: a:
Wechsel zur Festplatte: c:

Vorbereitung Installation MS Network Client 3.0 und Treiber:

Der Treiber für die Netzwerkkarte kann von dieser Quelle:

http://support.amd.com/en-us/search/utilities

vmware_network_driver_download01

heruntergeladen werden. Alternativ gibt es den Treiber unter:

https://www.mpl.ch/t28213.html

Dateiname: dos_ibmados.exe, Bemerkung: NDIS2 driver for IBMADOS

Der Download von MS Network Client 3.0 ist hierbei etwas schwieriger, da die Download-Quellen kaum verfügbar sind:

ftp://ftp.microsoft.com/bussys/Clients/MSCLIENT/

herunterladen.

Alternativ als rar-gepackte Variante:

http://www.kompx.com/soft/dos/networking/msnc/3.0/msnc3.0.rar

oder auf den Installations-CDs von MS WindowsNT.

Als Ergebnis müssen zum Client folgende Dateien vorliegen:

  • DSK3-1.exe
  • DSK3-2.exe

Zur Nutzung dieser Dateien diese direkt auf Diskette schreiben oder mittels geeignetem Tool eine virtuelle Diskette erstellen und diese Dateien in das Image einbinden.

Hinweis: Bei der Variante mit virtuellen Disketten konnte ich das Shareware-Tool: WinImage erfolgreich testen (Download-Quelle: http://america.winimage.com/download.htm). Eine Alternative ist mir derzeit nicht bekannt.

Hinweis zur Verwendung von WinImage und dem Erstellen virtueller Disketten:

  • Diskettengröße setzen: Image -> Change format … -> 1.44 MB
  • Diskette als IMA speichern: File -> Save as -> Dateityp: Image file (*.ima)
  • Dateiendung anschließend von .ima zu .img ändern

Die zwei Dateien DSK3-1.exe und DSK3-2.exe habe ich anschließend zur Sicherstellung der Kompatibilität unter MS-DOS entpackt und erneut auf einzelne Disketten geschrieben (Hinweis: Option read-only in der VM für Disketten deaktivieren). Unter MS-DOS wurden hierzu die folgenden Befehle der Reihe nach ausgeführt:

c:
cd \
mkdir disk1
mkdir disk2
copy a:\dsk3-1.exe c:\disk1\*.*
copy a:\dsk3-2.exe c:\disk2\*.*
cd disk1
dsk3-1.exe
del dsk3-1.exe
format a:
copy c:\disk1\*.* a:\*.*

Neue Diskette einlegen/einbinden.

cd \
cd disk2
dsk3-2.exe
del dsk3-2.exe
format a:
copy c:\disk2\*.* a:\*.*

Bereinigen der Verzeichnisse:

c:
cd \
del disk1
del disk2
rmdir disk1
rmdir disk2

Neben den Disketten für MS Network Client 3.0 habe ich den Treiber entpackt und auf einer weiteren Diskette gespeichert.

 

Installation MS Network Client 3.0 und Treiber:

Jetzt erfolgt die Installation von MS Network Client und dem Treiber. Als erstes binden wir die erste Diskette für MS Network Client ein und starten das Setup mittels:

a:
setup

Das Standard-Ziel zur Installation bleibt c:\NET

vmware_msdos_msnetworkclient_installation01

Als Adapter wählen wir: *Network adapter not shown on list below

vmware_msdos_msnetworkclient_installation02

Jetzt legen wir die Diskette mit den Treiber-Dateien ein und bestätigen mit ENTER:

vmware_msdos_msnetworkclient_installation03

Anschließend wählen wir AMD Pcnet family Ethernet controllers:

vmware_msdos_msnetworkclient_installation04

Zur Abfrage bzgl. Performance wählen wir mittels ENTER die beste Performance.

vmware_msdos_msnetworkclient_installation05

Im darauffolgendem Fenster werden wir nach einem Benutzer gefragt, der neben Benutzername auch der Computername im Netzwerk für unser System wird:

vmware_msdos_msnetworkclient_installation06

Hier empfiehlt es sich den späteren Benutzernamen zum Zugriff auf die Freigabe zu verwenden. Der Benutzername sollte bereits jetzt nicht als Computername im Netzwerk vorliegen!

Nach diesem Vorgang müssen wir zunächst das Protokoll auf TCP/IP ändern. Hierzu wählen wir Change Network Configuration:

vmware_msdos_msnetworkclient_installation07

Im neuen Fenster gehen wir mittels Pfeiltasten auf Remove und wechseln anschließend mit einmaliger Verwendung der TAB-Taste in den oberen Bereich und wählen NWLink IPX Compatible Transport aus. Erneut ENTER:

vmware_msdos_msnetworkclient_installation08

Jetzt drücken wir ENTER und wählen im neuen Fenster Microsoft TCP/IP aus:

vmware_msdos_msnetworkclient_installation09

Anschließend bestätigen wir Network configuration is correct. und The listed options are correct.

vmware_msdos_msnetworkclient_installation10

vmware_msdos_msnetworkclient_installation11

Jetzt beginnt ein Diskettenwechsel-Marathon. Wir legen nun in folgender Reihenfolge die Disketten ein und bestätigen immer anschließend mit ENTER:

  • Diskette 1 MS Network Client 3.0
  • Diskette mit Netzwerktreiber
  • Diskette 2 MS Network Client 3.0
  • Diskette 1 MS Network Client 3.0

vmware_msdos_msnetworkclient_installation12

vmware_msdos_msnetworkclient_installation13

vmware_msdos_msnetworkclient_installation14

Anschließend entfernen wir die zuletzt verwendete Diskette und starten das System durch. Wir erhalten nach wenigen Sekunden:

vmware_msdos_network01

Wir sehen zunächst unsere MAC-Adresse im Netzwerk. Zusätzlich werden Benutzername und Passwort abgefragt. Anschließend besteht die Möglichkeit, das Passwort zu speichern. Hier ein kleiner Hinweis zur Passwortsicherheit: Bloß nicht Passwörter verwenden, die bereits verwendet werden und sogar kritisch sind. Die Passwortsicherheit unter MS-DOS geht für heutige Verhältnisse gegen null.

vmware_msdos_running02

Jetzt prüfen wir unser System. Als erstes können wir die bestehende Netzwerk-Adresse abfragen:

ipconfig c:\net

vmware_msdos_running03

Zur weiteren Verwendung und Konfiguration sehen wir uns die folgenden Dateien an:

edit c:\net\system.ini

vmware_msdos_running04

vmware_msdos_running05

Hinweis: Zur Navigation im Editor sind die Tasten ALT für Menüaufruf, ESC zum Schließen der Menüs und TAB zum Springen zwischen den Dialogen wichtig.

edit c:\net\protocol.ini

vmware_msdos_running06

edit c:\autoexec.bat

vmware_msdos_running07

Die folgenden Optionen in den drei Dateien sind für uns wichtig:

computername=
lanroot=C:\NET
username=
*Shares=
MSDOS=

Mit den drei ersten Optionen können wir den Computernamen für unseren MS-DOS-PC und den Standard-Benutzername zur Verwendung im Netzwerk steuern. lanroot ist zum Beispiel beim Abruf der IP-Adresse mittels ipconfig wichtig:

vmware_msdos_running08

Korrekt ist daher zur Verwendung: ipconfig c:\net

Mittels *Shares= und MSDOS=, bzw. BENUTZERNAME= erfolgt ein Verweis auf die Passwortlisten.

SubNetMask0=
IPAddress0=
DisableDHCP=

Mittels DisableDHCP=1 und korrekten Werten für IPAddress0 und SubNetMask0 kann eine feste IP-Adresse im Netzwerk vergeben werden.

c:\Net\net start

startet automatisch zum PC-Start den Netzwerkdienst und fragt immer die Verwendung des Benutzernamens und Passworts ab. Wer dies umgehen möchte und vereinfacht zum Start die Freigabe vom Server als Laufwerk einbinden möchte, kann die autoexec.bat wie folgt ändern:

vmware_msdos_running09Hinweis: IP-Adresse als Servername funktioniert nicht!

Nach erneutem Start des PCs sehen wir:

vmware_msdos_running10

… und können anschließend auf die Dateien auf unserem MS Windows Server 2012R2 zugreifen:

vmware_msdos_running12

 

Hilfestellung:

  • Wenn nach Abschluss der Installation erneut das Setup ausgeführt werden muss und ggf. die Meldung kommt, dass nicht ausreichend Speicher zur Verfügung steht, muss meist nur der Netzwerkdienst gestoppt werden:

    net stop
    
  • Wer nicht ausreichende Zugriffsrechte auf die Freigabe hat bekommt keinerlei Fehlermeldung. Die Freigabe wird erfolgreich mit dem Laufwerk unter DOS verbunden. Bei Prüfung sehen wir lediglich ein leeres Verzeichnis:
    vmware_msdos_NOerror
  • Wer versucht IP-Adressen direkt zu verwenden bekommt folgende Meldung:vmware_msdos_Error53
    Lösung ist die Verwendung des Namens zum PC. Wer zusätzlich Probleme mit DNS hat muss in der hosts die IP-Adresse des Ziels mit dem Namen zum Server entsprechend hinterlegen:

    edit c:\net\hosts

    vmware_msdos_hosts

  • Wer versucht eine nicht existierende Freigabe zu verbinden bekommt folgende Fehlermeldung:
    vmware_msdos_error67
  • Wer statt net use eine GUI verwenden möchte, kann dies mittels dem Befehl net machen:
    vmware_msdos_net_command

 

Meine Quellen, hilfreiche Befehlsreferenzen, genutzte Tools:

 

PRTG – bash Skript zur Abfrage am Linux-Server – XML-Datensatz

Bei Einsatz von PRTG zur Überwachung von Systemen in einem Netzwerk können bei Bedarf eigene Skripte aktiviert werden, wo die gewünschten Daten/Informationen via XML ausgegeben werden.

In meinem Beispiel benötigte ich einen einfachen Sensor, wo ich als Ergebnis, zu einer Liste von Verzeichnissen, die Anzahl der Dateien und die Gesamtgröße mit allen Unterverzeichnisse als Datensatz bekomme. Ziel war es eine Fehlermeldung zu generieren und per E-Mail zu erhalten, um entsprechende Massnahmen durchführen zu können.

Damit das eigene Skript auf dem Server verfügbar ist, erstellen wir zunächst im Verzeichnis /var/prtg/scriptsxml auf dem betroffenen Server eine Datei mit sinnvollen Namen:

nano getfolderinfo

und fügen den folgenden Inhalt ein:

#!/bin/bash

echo "<?xml version=\"1.0\" encoding=\"Windows-1252\" >"
echo "<prtg>"

for i do

foldersize=$(du -s "$i" | cut -f1)
filescount=$(find "$i" -type f | wc -l)

 echo "<result>"
  echo "<channel>$i - folder size</channel>"
  echo "<value>$foldersize</value>"
  echo "<volumeSize>Byte</volumeSize>"
 echo "</result>"

 echo "<result>"
  echo "<channel>$i - files count</channel>"
  echo "<value>$filescount</value>"
 echo "</result>"

done

echo "</prtg>"

Anschließend machen wir die Datei ausführbar mittels:

chmod 755 getfolderinfo

 

Zur Info:

Mittels:

for i do
  ...done

werden die übergebene Argumente in einer Schleife abgearbeitet.

Mittels:

foldersize=$(du -s "$i" | cut -f1)
filescount=$(find "$i" -type f | wc -l)

werden die jeweiligen Informationen in Variablen geschrieben. Die restlichen Zeilen erzeugen die notwendige XML-Struktur.

 

Zum Test führen wir das Skript mit einem Argument aus, wobei das Argument als Verzeichnis auf dem Server vorliegen muss:

prtg_sensor_script_output

 

Anschließend aktivieren wir im PRTG den neuen Sensor. Hierzu wird zu einem bereits bestehenden Linux-System ein weiterer Sensor hinzugefügt. Zur Auswahl des Sensors wählen wir SSH Script Advanced:

prtg_sensor_sshxml

Im nächsten Schritt wählen wir das Skript auf dem Server:

prtg_sensor_select

Hinweis: Hier erscheint auch der Hinweis wo sich das Skript auf dem Server befinden muss!

und hinterlegen die zu prüfenden Verzeichnisse mit Leerzeichen getrennt als Parameter:

prtg_sensor_select_parameters

Anschließend schließen wir die Eingabe ab und warten mindestens zweimal die Zeit für das Aktualisierungsinterval ab, damit die Struktur vom Sensor via XML erfasst und anschließend mit ersten Daten befüllt wird.

Im Ergebnis und mit ein paar Anpassungen für aktivierte Grenzwerte (Limits -> Enable Limts) in der Spalte Settings zum jeweiligen Kanal (Beispiel):

  • Upper Error Limit (#): 1
  • Error Limit Message: … Aufnahmen (Bilder oder Video) …

sehen wir:

prtg_sensor_output.jpg

Wer einen Sensor mit bereits festen Vorgaben für Grenzwerte erstellen möchte, siehe sich bitte das Handbuch mit mindestens 3000 Seiten an:

https://www.de.paessler.com/support/manuals

Ansonsten ist die Datei: Demo Batchfile – Returns static values in four channels.bat auf dem PRTG-Server unter C:\Program Files (x86)\PRTG Network Monitor\Custom Sensors\EXEXML eine gute Grundlage für die jeweiligen XML-Tags.

Weitere Quellen/Links:

 

Citrix GoToMeeting-Probleme in einer gemischten Struktur mit Verwendung eines Proxy

Mittels Citrix GoToMeeting ist es möglich Meetings mit Bildübertragung durchzuführen. Leider ist durch ein automatisches Update, der Software unter MS Windows, die korrekte Nutzung über einen Proxy derzeit nicht möglich.

In Umgebungen, wo für einzelne PCs die direkte Nutzung ohne Proxy aktiviert wurde, ist es möglich ein erneutes Setzen der Proxy-Einstellungen via GPO zu verhindern. Jedoch kann es passieren dass die Proxy-Einstellungen über Benutzerprofile synchronisiert werden.

Zusätzlich übernimmt Mozilla Firefox sehr gerne die Proxy-Einstellungen vom Internet Explorer und auch Citrix GoToMeeting prüft zum Start auf vorhandenen Proxy-Einstellungen im Internet Explorer und Mozilla Firefox.

Im Ergebnis ist es sehr schwierig GoToMeeting mitzuteilen dass kein Proxy notwendig ist. Zur Lösung im Problemfall müssen per Hand die Prozesse von GoToMeeting (beginnend g2m*) beendet werden. Anschließend müssen die Proxy-Einstellungen in den Web Browsern deaktiviert werden. Zum Ende müssen noch die Registrierungswerte unterhalb HKEY_CURRENT_USER\SOFTWARE\Citrix gelöscht werden. Anschließend kann GoToMeeting gestartet werden.

Als Alternative habe ich hierzu folgendes Skript geschrieben, welches erfolgreich unter MS Windows 7 und MS Windows 10 getestet wurde. Dies kann entweder per Hand gestartet oder zur Benutzeranmeldung an bestimmten Systemen ausgeführt werden.

Hinweis: Zur Ausführung werden Mozilla Firefox und Internet Explorer automatisch beendet!

 

@echo off
SETLOCAL ENABLEEXTENSIONS
set killtasks=g2mcomm.exe g2mlauncher.exe g2mstart.exe iexplore.exe firefox.exe


:KILLTASKS

(for %%a in (%killtasks%) do (
 echo try: taskkill /IM %%a /F
 taskkill /IM %%a /F
 )
)

(for %%a in (%killtasks%) do (
 echo try: taskkill /IM %%a /F
 taskkill /IM %%a /F
 )
)


:INTERNETEXPLORER

REG ADD "HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings" /v "ProxyEnable" /t REG_DWORD /d "0" /f
REG DELETE "HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings" /v "ProxyOverride" /f
REG DELETE "HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings" /v "AutoConfigURL" /f
REG DELETE "HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings" /v "ProxyServer" /f


:FIREFOX

cd /D "%APPDATA%\Mozilla\Firefox\Profiles"
cd *.default*

set cd=%CD%
set file=%CD%\prefs.js

For /f "tokens=3 delims=." %%a in ('date /t') do (set sDateTime=%%a)
For /f "tokens=1-2 delims=." %%a in ('date /t') do (set sDateTime=%sDateTime:~0,4%_%%b_%%a)
For /f "tokens=1-2 delims=:" %%a in ('time /t') do (set sDateTime=%sDateTime%_%%a_%%b)

set backup=%CD%\prefs.js_%sDateTime%

if EXIST %file% ( copy %file% %backup% /Y )
if EXIST %backup% ( type %backup% | findstr /v "network.proxy" > %file% )

echo type %file% | findstr "network.proxy"
type %file% | findstr "network.proxy"
if %ERRORLEVEL% neq 0 ( echo user_pref^(^"network.proxy.type^", 0^); >> %file% )


:GOTOMEETING

Reg Delete "HKEY_CURRENT_USER\SOFTWARE\Citrix" /f


:END

 

Hinweis:

Die Prozesse werden bewusst doppelt beendet, da sie sich gegenseitig überwachen und teilweise erneut gestartet werden. Für mögliche Probleme beim Arbeiten mit der prefs.js vom Firefox, wird hier auf Basis von Datum und Uhrzeit eine Kopie verwendet, die nicht gelöscht wird. Sofern eine Löschung erfolgen soll, kann dies am Ende des Skript mittels:

del %backup%

erfolgen.

Wer lediglich eine Lösung zur Deaktivierung der Proxy-Einstellungen im Internet Explorer und Mozilla Firefox sucht, muss einfach nur die ersten zwei Zeilen plus die Zeilen nach :FIREFOX, bzw. :INTERNETEXPLORER verwenden.

 

 

 

OCS NG Agent – Verbessertes Install-Skript

Zur Verteilung des Agent war mir aufgefallen, dass bei recht vielen Clients die Softwareaktualisierung erfolgreich ist, nicht jedoch unmittelbar danach der Dienst und zwei Prozesse aktiviert werden. Zur Lösung des Problems habe ich folgende kleine Batch-Datei geschrieben. Diese Datei muss ins gleiche Verzeichnis mit den Dateien ocslogon.exe und ocspackage.exe kopiert werden. Bei Ausführung wird ocslogon.exe mit dem Parameter der Mindestversion des Clients gestartet. Anschließend wird über eine Schleife geprüft, ob Prozesse zur Installation noch aktiv sind. Wenn diese beendet sind, wird geprüft, ob die Prozesse zum Agent laufen, wenn nicht werden diese gestaret.

@echo off
setlocal enabledelayedexpansion

set MYPATH=%~dp0
set PATHOCSINVENTORY=("%ProgramFiles%\OCS Inventory Agent\" "%ProgramFiles(x86)%\OCS Inventory Agent\")
set OCSRUNNINGPROCESS=(Ocsinventory.exe OcsSystray.exe)
set OCSLOGONPROCRESS=ocslogon.exe
set OCSSERVICE="OCS Inventory Service"
set INSTALLPROCESSES=(instOCS.exe OcsSetup.exe OCS-NG_Agent_setup.exe)

:setDisableUNCCheck
reg add "HKCU\SOFTWARE\Microsoft\Command Processor" /v DisableUNCCheck /t REG_DWORD /d 1 /f

:runOcsLogon
%MYPATH%\ocslogon.exe /GPO /PACKAGER /NP /DEBUG=2 /DEPLOY=2.1.1.3 /NOW

:LOOP
for %%p in %INSTALLPROCESSES% do (
    tasklist /fi "IMAGENAME eq %%p" 2>NUL | find /I /N "%%p">NUL
    if "!ERRORLEVEL!"=="0" (
        echo Programm %%p is running
        GOTO LOOP
        )
    )

ping -n 1 127.0.0.1 > nul

:CheckRunningProcesses
for %%r in %OCSRUNNINGPROCESS% do (
    tasklist /fi "IMAGENAME eq %%r" 2>NUL | find /I /N "%%r">NUL
    if "!ERRORLEVEL!"=="1" (

        echo try to run program %%r

        for %%p in %PATHOCSINVENTORY% do (
            if exist %%p (
                start "" %%p%%r
                )
            )        

        ) else (
            echo programm %%r is running
        )
    )


net start %OCSSERVICE%

ping -n 2 127.0.0.1 > nul

Suchen in PDF-Dateien, wenn Text falsch kodiert oder als Bild gespeichert ist

Es kann gelegentlich vorkommen, dass in PDF-Dateien der Text zwar korrekt lesbar ist, aber der Inhalt nicht über die Suchfunktion durchsucht werden kann. Dies kann vorkommen, wenn der Text als Bild gespeichert ist oder der Text falsch kodiert wurde.

Hier bietet die kostenlose Version von PDF X-Change Viewer eine Lösung. Zum Test habe ich im Programm notepad einfach ein Text Das ist ein Test geschrieben. Dies als Bild in eine Word-Datei kopiert und anschließend als PDF gespeichert.

In dieser Form ist die Suche nach Text nicht möglich.

Zur Lösung die PDF mittels PDF X-Change Viewer öffnen, dann im Menü Dokument Text erkennen … auswählen.

PDF-XChangeViewer_OCR_TestPDF

Im anschließend erscheinenden Dialog unter Ausgabe, PDF-Ausgabe Originalinhalt in ein Bild konvertieren & Textebene hinzufügen auswählen. Zusätzlich unter Erkennung, Hauptsprache die Sprache auswählen.

PDF-XChangeViewer_Option_Texterkennung

Anschließend kann der erkannte Text durchsucht werden.

PDF-XChangeViewer_Test

Kleiner Hinweis: Mittels PDF X-Change Viewer können PDFs auch als Bild (TIFF) gespeichert werden. Dieses Format können auch andere OCR-Texterkennungsprogramme einlesen und verarbeiten.

Bloggen auf WordPress.com.

Nach oben ↑