Archiv des Autors: hamster

psexec workaround for installing msi packages to remote computers

Hatte einige Probleme eine msi Datei per psexec auf einen remote Rechner mit msiexec zu installieren.
Mein Befehl war „psexec.exe \\REMOTEHOST -u ADMIN -p ADMINPASSWORT -s -d msiexec /i \\APPHOST\FOLDER\7z922-x64.msi /q“. Der hat anscheinend die Datei nicht gefunden. Habe ich auf dem remote Rechner „msiexec /i \\APPHOST\FOLDER\7z922-x64.msi /q“ ausgeführt hat es aber funktioniert…

Nach langem hin und her war hab ich eine adäquate Alternative gefunden um das Problem zu umgehen. Ich mappe den Temp Ordner vom remote Rechner, kopiere die msi dort hinein und starte dann den obigen Befehl ohne UNC Pfad aber mit absoluten lokalen Pfad. Um es mir einfacher zu machen habe ich mir gleich eine batch Datei geschrieben (psexec muss im PATH sein…):

<pre>@echo off

set admin=Administrator
set passwd=
set hostname=%1
set absolutePathToFile=%2
set absolutePath=%3
set filename=%~n2
set filenameextension=%~x2

if %1!==! goto error5
if %2!==! goto error5
if %3!==! goto onefileprocessing

:folderprocessing
REM share einhängen
net use \\%hostname%\c$\Windows\Temp %passwd% /user:%admin%
if errorlevel 1 goto error1
REM gewuenschte datei auf den remote rechner kopieren
xcopy /H /E /Y %absolutePath% \\%hostname%\c$\Windows\Temp
if errorlevel 1 goto error2
REM installieren der software
psexec.exe \\%hostname% -u %admin% -p %passwd% msiexec /norestart /i C:\Windows\Temp\%filename%%filenameextension%
if errorlevel 1 goto error3
REM aushängen des shares
net use \\%hostname%\c$\Windows\Temp /d
if errorlevel 1 goto error4
REM deinstallieren von software würde so gehen
REM psexec.exe \\%hostname% -u %admin% -p %passwd% msiexec /x {61EF76AE-6CC9-4EFC-B788-6845C0BCEF00} /quiet
goto end

:onefileprocessing
REM share einhängen
net use \\%hostname%\c$\Windows\Temp %passwd% /user:%admin%
if errorlevel 1 goto error1
REM gewuenschte datei auf den remote rechner kopieren
xcopy /Y %absolutePathToFile% \\%hostname%\c$\Windows\Temp
if errorlevel 1 goto error2
REM installieren der software
psexec.exe \\%hostname% -u %admin% -p %passwd% msiexec /norestart /i C:\Windows\Temp\%filename%%filenameextension% /q
if errorlevel 1 goto error3
REM aushängen des shares
net use \\%hostname%\c$\Windows\Temp /d
if errorlevel 1 goto error4
REM deinstallieren von software würde so gehen
REM psexec.exe \\%hostname% -u %admin% -p %passwd% msiexec /x {61EF76AE-6CC9-4EFC-B788-6845C0BCEF00} /quiet

goto end
:error1
echo Fehler beim einhängen des remote ordners
:error2
echo Fehler beim kopieren auf remote machine
:error3
echo Fehler beim installieren der Software
:error4
echo Fehler beim aushängen des remote ordners
:error5
echo Bitte als ersten Parameter den Hostnamen angeben (z.B. REMOTEHOST) und als Zweiten den absoluten Pfad zur Datei die installiert werden soll (z.B. H:\apps\7z922-x64.msi)
echo In Ordnernamen duerfen keine Punkte sein...
:end</pre>

Musste noch ein drittes Argument mit aufnehmen damit ich eine Unterscheidung hab ob ich jetzt ein ganzes Verzeichnis kopieren muss oder nur eine Datei (z.B. bei der java, wo es jre1_6_0_27.msi und Data1.cab für die Installation braucht). Außerdem gabs Probleme wenn die Datei im Namen Punkte hatte. Er meinte nach dem Ersten Punkt, dass alles was danach kommt eine Dateiendung ist… also verwend ich keine Punkte im Dateinamen.

Das ganze schaut dann so aus wenn man es ausführt:

vista/7 Netzwerkprobleme mit älteren Windowsversionen

Anscheinend sendet Windows 2000 nur LM Nachrichten wobei vista/7 NTLM/NTLMv2 Nachrichten sendet. Um die Kompatibilität einzustellen muss das snap-in gpedit.msc ausgeführt (win + r) werden und dann von den Optionen die man auf dem Screenshot erkennt die Zweite wählen.

Ansonsten gibts hier noch eine ausführliche Anleitung was zu tun ist wenn man mal wieder auf einer LAN Sitzt und nicht weiß wieso die Netzwerkfreigaben nicht für Gäste funktionieren (zwischen XP und vista/win7 oder auch win7 zu win7 (hier muss „Kennwortgeschütztes Freigeben“ deaktiviert werden).

webdav + ssl + zertifikat + the fuu

Dachte mir ich probier mal webdav aus und erstell mir ein schönes online Laufwerk wo ich bei weitem mehr Platz habe als auf DropBox oder anderweitige Dienste. Dabei war es mir egal keine Versionskontrolle zu haben oder keine Ordner sharen zu können.
Nachdem ich beim Webserver alles eingerichtet hatte und es an die Einbindung in Windows 7 ging fing das fuu in mir zu wachsen an… Über die grafische Oberfläche kam sogar eine Aufforderung den Usernamen und Passwort einzugeben, aber nach richtiger Eingabe der Daten kam nur eine Fehlermeldung, dass die Verbindung nicht zustande kommen konnte.
Auch per Konsole mit dem Befehl „net use x: https://server.com/folder /user:UserName Password /persistent:yes“ hat die Verbindung nicht hingehauen.

Nach längerem suchen fand ich anscheinend die Lösung:

Um eine Verbindung zum WebDAV-Server unter Windows 7 aufbauen zu können, muß das SSL-Zertifikat des Servers, das im Übrigen exakt auf den Host lauten muß, zunächst heruntergeladen werden, beispielsweise mit Firefox durch

Zertifikat anzeigen > Details > Exportieren…

Anschließend muß das Zertifikat direkt in den Zertifikatsspeicher von Windows (certmgr.msc) unter

Vertrauenswürdige Stammzertifizierungsstellen\Zertifikate

importiert werden.

Danach klappt das Erstellen einer SSL-gesicherten WebDAV-Verbindung fehlerfrei und man kann endlich wieder im Explorer per Drag & Drop Dateien hin- und herschieben. 😎
Und falls doch noch irgendetwas klemmt, kann evtl. dieser KB-Artikel von Microsoft helfen.

Leider war mein ssl Zertifikat nicht auf dem gleichen Host angelegt, was zur starken Unlust geführt hat mein Vorhaben weiterzuspinnen und hab’s dann einfach sein lassen und hoffe darauf, dass SparkleShare sehr bald auch für Windows zu Verfügung steht.

pdf bearbeiten (zusammenführen, drehen, teilen, extrahieren)

Kurz gesagt kann man all das was oben im Titel steht mit PDFsam (win/mac) anstellen.
Ansonsten für ein schnelles drehen kann gerne http://rotatepdf.net benützt werden (bedenke: man schickt seine pdfs sonstwo hin…)
Oder für die liebe Konsole „pdftk“ (drehen um 180° für alle Seiten eines pdf Dokuments: pdftk in.pdf cat 1-endS output out.pdf) oder bei einem dekomprimierten pdf „sed -i „s/Rotate 0/Rotate 90/g“ output.pdf“ um alle Seiten um 90° zu drehen. Zur Not mit pdftk mit „pdftk input.pdf output output.pdf uncompress“ dekomprimieren. Für alles andere man-page anschaun.

Skype mit Creative Live! Cam zum laufen bringen unter Ubuntu

Seit längerem (>Ubuntu 8.10?) scheint man den Hack „ov51x-jpeg“ nicht mehr zu brauchen, weil ein funktionierender Treiber im Kernel integriert ist. Damals als der Treiber noch nicht funktionstüchtig integriert war musste man das machen.

Mein aktueller Kernel bei Ubuntu 11.04 (Natty):

<blockquote>uname -a
Linux x 2.6.38-10-generic #46-Ubuntu SMP Tue Jun 28 15:07:17 UTC 2011 x86_64 x86_64 x86_64 GNU/Linux
+ Skype 2.2 Beta</blockquote>

Steckt man die Cam ein wird wie gewollt der Treiber „gspca_ov519“ geladen. Anscheinend gehen alle Programme außer Skype, das nur ein schwarzes Bild anzeigt, wenn man es unter Optionen testen möchte oder „skyped“.

Die Lösung ist im Endeffekt ziemlich einfach, musste aber dennoch ein wenig suchen um auf die Lösung zu kommen (Das Paket „libv4l1“ muss dafür installiert sein):
32bit: LD_PRELOAD=/usr/lib/libv4l/v4l1compat.so skype
64bit: LD_PRELOAD=/usr/lib32/libv4l/v4l1compat.so skype

Den jeweiligen Befehl auf der Konsole ausführen und es läuft :). Alternativ kann man sich ein Shellskript schreiben damit man das nicht immer wieder von Hand eingeben muss.
In meinem Fall bei 64bit:


<blockquote>sudo su
echo '#!/bin/bash' > /usr/bin/skype.sh; echo "LD_PRELOAD=/usr/lib32/libv4l/v4l1compat.so skype" >> /usr/bin/skype.sh
chmod +x /usr/bin/skype.sh</blockquote>

Dann beim Skype Starter statt „skype“ den Pfad zum Skript angeben und man kann bequem auf den Button drücken und Skype startet voll funktionstüchtig ohne jedesmal auf die Konsole gehen zu müssen.

windows 7 mit truecrypt und linux (ubuntu) mit dm-crypt als multiboot

Voraussetzungen:

  • Ubuntu 11.04 mit dm-crypt via alternate cd installiert
  • Windows 7 (noch unverschlüsselt)
  • grub2 (scheint ein core.img mitzuschreiben was teile des TrueCrypt booloaders überschreibt?) wurde mit der Ubuntu Installation in den mbr geschrieben
  • auf einer Festplatte

Da ich im Internet was davon gelesen habe, dass man mit grub den TrueCrypt mbr starten kann und so sein TrueCrypt verschlüsseltes Windows 7 zum starten bekommt ging ich daran das auch so zu machen. Also unter Windows TrueCrypt gestartet und so getan, als ob Windows das einzige Betriebssystem auf der Platte sei und die Systemverschlüsselung gestartet. Wenn man auswählt, dass Windows das einzige Betriebssystem auf der Platte ist wird der TrueCrypt Bootloader in den mbr geschrieben. Man sollte natürlich nur die Partition verschlüsseln lassen wo Windows installiert ist.

Mit einer Live-CD habe ich dann mit einer chroot Umgebung den grub mbr wiederhergestellt und so einen ähnlichen Eintrag ins grub2 custom Menü geschrieben:

# This file provides an easy way to add custom menu entries. Simply type the
# menu entries you want to add after this comment. Be careful not to change
# the 'exec tail' line above.
menuentry "Windows 7" {
insmod chain
set root=(hd0,3)
parttool (hd0,3) boot+
chainloader (hd0,1)/truecrypt.mbr
}

Danach kam nur der Fehler „TrueCrypt Boot Loader Load damaged! Use Rescue Disk: Repair > Options > Restore Truecrypt Boot Loader.“.
Glücklicherweise habe ich hier eine einfache Lösung gefunden. Im Endeffekt muss man mit der Rescue CD den TrueCrypt Bootloader wiederherstellen und mit einer Live-CD den grub2 mbr in die Partition von deinem Linux oder der Bootpartition schreiben (das ganze musste man mit grub-install –force /dev/sdxX machen und es kam eine Fehlermeldung/Warnung dabei aber es hat trotzdem geklappt). Wenn man jetzt bei dem Truecrypt Bootloader auf ESC drückt wird der nächste Booloader auf den nachfolgenden Partitionen gesucht. Und so hat es auch bei mir geklappt ein komplett verschlüsseltes Notebook mit Ubuntu und Windows 7 zu haben 🙂 ( ok, die Bootpartitionen natürlich nicht 😉 )

Milestone 2 und der Stein

Da ich unbedingt ein custom rom ausprobieren wollte hab ich es endlich geschafft mein Telefon zu „bricken“. Der Übeltäter war das Liberty 2.0.1 D2 Rom.

Lange Suche kurzer Sinn.

  • Einmal bitte RSD Lite 5.0 installieren
  • Am Besten das 2.2 Service Image runterladen ( z.B. hier ), da das wunderbar rootbar ist mit z4root (entpacken, dass ihr nur die sbf Datei habt)
  • Den Anschaltknopf, Kameraauslöser und Sound lauter beim Telefon bei starten drücken, dann müsste man den Bootloader angezeigt bekommen?. Dann das Telefon per USB-Kabel an den Rechner anschließen.
  • RSD Lite 5.0 starten, sbf auswählen und auf starten klicken…(im Slot eins müsste dein Handy angezeigt werden… wenn nicht musst du wohl noch die Milestone 2 USB Treiber installieren
  • Danach wieder spaß am Telefon haben 😉
  • upstart und das chroot

    Wenn ihr mal aus irgendwelchen Gründen in einem chroot die Fehlermeldung

    start: Unable to connect to Upstart: Failed to connect to socket /com/ubuntu/upstart: Connection refused

    bekommen solltest und sich ein Paket weigert zu installieren hilft folgendes:

    $dpkg-divert --local --rename --add /sbin/initctl
    Adding 'local diversion of /sbin/initctl to /sbin/initctl.distrib'
    $ln -s /bin/true /sbin/initctl

    Videos für YouTube splitten mit mplayer und ffmpeg mit einem bash script

    <pre>
    #!/bin/bash
    # splits videos for youtube in ~15 minute parts
    
    if [ -z "$1" ];then
            echo "usage: $0 filename"
            exit
    fi
    
    FILENAME=$1
    NAME=$(echo "$FILENAME" | sed 's/\.[^\.]*$//')
    EXTENSION=$(echo "$FILENAME" | sed 's/^.*\.//')
    # is the same as 00:14:55
    SPLITTIME=895
    # starts at 0 seconds
    STARTTIME=0
    # runtime of the video file
    #RUNTIME=$(ffprobe -pretty "$FILENAME" 2>&1 | grep duration | sed -e '1d' | awk '{ print $3 }')
    RUNTIME=$(mplayer -vo dummy -ao dummy -identify "$FILENAME" 2>&1 | grep ID_LENGTH | awk -F= '{ print $2 }' | sed 's/\.[^\.]*$//')
    COUNTER=1
    
    while [ $STARTTIME -lt $RUNTIME ];do
            ffmpeg -vcodec copy -i "$FILENAME" -ss $STARTTIME -t "$SPLITTIME" "$NAME"_part"$COUNTER"."$EXTENSION"
            let COUNTER=COUNTER+1
            let STARTTIME+=$SPLITTIME
    done</pre>

    So schaut der Bash Code aus. Musste leider auch noch mplayer benützen weil ich mit ffprobe die Laufzeit der Datei nicht richtig herausfiltern konnte. Ansonsten das Script mit dem Videonamen als Parameter starten. Mit mplayer bekam ich nur asynchron gesplittete Dateien. Mit ffmpeg ging das besser. Außerdem sollte man beachten, dass man evtl. ffmpeg aus den Quellen kompilieren muss weil sonst möglicherweise kein MP3, AAC, AMR, MPEG-4 und H.264 (bzw. MPEG-4 AVC) geht. Wie das gemacht wird findet man auf ( http://wiki.ubuntuusers.de/ffmpeg )

    ./split_video.sh some_video.mp4

    How to burn a dmg file on PC – Wie eine dmg Datei auf einem PC mit Windows brennen?

    Ganz einfach.
    Zuerst wandelt man die dmg Datei in eine IMG Datei um und brennt es dann mit dem Brennprogramm seiner Wahl. Theoretisch kann man die img Datei auch einfach in ISO umbenennen aber wie ich nachgelesen habe gibt das Probleme bei „multi track“ oder „multi session“ CDs/DVDs.

    DMG2IMG findet ihr hier.

    Wenn ihr’s nicht so habt mit Kommandozeile könnt ihr eine bat Datei benützen die ihr hier findet.

    Damit die bat Datei funktioniert musst du die 3 Dateien von DM2IMG (dmg2img.exe, mgwbz2-1.dll, mgwz.dll) und die bat Datei in den Ordner mit der dmg Datei kopieren. Benenn die dmg Datei in „input.dmg“ um und dann klick doppelt auf die bat Datei. Wenn das ganze fertig ist ist im gleichen Ordner eine „output.img“ Datei.
    Gutes brennen!