Archiv der Kategorie: IT

Soundprobleme von Diablo 3 mit wine

Diablo 3 funktioniert recht gut unter wine (1.5.4) bei mir, nur der sound war zerhäckselt und nicht brauchbar.
Eine Abhilfe ist „wine regedit“ auszuführen und bei „HKEY_CURRENT_USER/Software/Wine/Drivers“ eine Zeichenkette/string mit Namen „Audio“ mit dem Wert „alsa“ anzulegen. Scheint mit pulseaudio nicht klarzukommen. Konnte nirgends was finden, dass sonst noch jemand damit Probleme hatte. Unter der Beta ging der Diablosound auch wunderbar mit wine…

3dm2 Webinterface wird nicht angezeigt

Das Problem war plötzlich, dass ich nicht mehr auf die Administrationsoberfläche von dem 3ware Controller kam. Die üblichen Vorgehensweisen dem Problem Herr zu werden wie z.B. eine saubere Neuinstallation der Software mit zuvorigem Löschen aller Ordner und Konfigurationen hat nicht zur Lösung des Problems geführt.
Nach längerem googeln und paar verzweifelten Momenten kam ich auf die Seite von LSI, die eine Lösung für das Problem hat.
Anscheinend ist ein Update von Microsoft „schuld“ an dem Problem. Also Lösung wird eine gefixte 3dm2 Binary angeboten. Diese mit der alten Binary überschreiben und schon funktioniert die Verbindung wie gewohnt wieder.

[ad]

Einen Drucker automatisiert installieren mit einem Batch Skript

Ich wusste lange nicht, wie ich einen Drucker TCP/IP Port automatisiert erstellen konnte aber bei einem nochmaligen googeln viel mir die Lösung mit den „printing admin scripts“ auf. Nach kurzem rumprobieren kam folgendes Skript dabei raus, dass 2 gleichartige Drucker die auf verschiedenen Etagen stehen einmal mit dem Postscript und das anderemal mit einem Generic PCL Treiber installiert. Damit wollen wir es den Usern einfacher machen S/W zu drucken, ohne beim Drucker was umstellen zu müssen.

<pre>@echo off

rem pcl
SET InfPath32="\\hostname\Canon iR Adv C5030i\iR5030Win7  PCL6\32BIT\Driver\pcl6\cnp60G.inf"
SET InfPath64="\\hostname\Canon iR Adv C5030i\iR5030Win7  PCL6\x64\Driver\pcl6\cnp60Ga64.inf"
rem postscript
SET InfPath32ps="\\hostname\Canon iR Adv C5030i\iR5030 Win7 PS\32BIT\Driver\CNS30G.INF"
SET InfPath64ps="\\hostname\Canon iR Adv C5030i\iR5030 Win7 PS\x64\Driver\CNS30GA64.INF"
SET PrnName3SW="Canon S/W 3. Stock"
SET PrnName6SW="Canon S/W 6. Stock"
SET PrnName3Farbe="Canon Farbe 3. Stock"
SET PrnName6Farbe="Canon Farbe 6. Stock"
SET PrnType="Canon iR-ADV C5030/5035 PS3"
SET PrnTypePCL="Canon Generic PCL6 Driver"
SET PortIP_3_Stock=192.168.xxx.xxx
SET PortIP_6_Stock=192.168.xxx.xxx

systeminfo | find "Windows 7"
if %ERRORLEVEL% == 0 goto Win7

systeminfo | find "Windows XP"
if %ERRORLEVEL% == 0 goto WinXP

:Win7
echo Running Windows 7 Script

rem check if 32 or 64 bit
Set RegQry=HKLM\Hardware\Description\System\CentralProcessor\0
REG.exe Query %RegQry% > C:\Windows\Temp\checkOS.txt
Find /i "x86" < C:\Windows\Temp\CheckOS.txt > C:\Windows\Temp\StringCheck.txt

If %ERRORLEVEL% == 0 (
    Echo "This is 32 Bit Win7"
  rem pcl 3 stock s/w
  cscript C:\Windows\System32\Printing_Admin_Scripts\de-DE\prnport.vbs -a -r IP_%PortIP_3_Stock% -h %PortIP_3_Stock% -o RAW -n 9100
  cscript C:\Windows\System32\Printing_Admin_Scripts\de-DE\prndrvr.vbs -a -m %PrnTypePCL% -v 3 -e "Windows NT x86" -i %InfPath32%
  cscript C:\Windows\System32\Printing_Admin_Scripts\de-DE\prnmngr.vbs -a -p %PrnName3SW% -m %PrnTypePCL% -r IP_"%PortIP_3_Stock%"

  rem pcl 6 stock s/w
  cscript C:\Windows\System32\Printing_Admin_Scripts\de-DE\prnport.vbs -a -r IP_%PortIP_6_Stock% -h %PortIP_6_Stock% -o RAW -n 9100
  cscript C:\Windows\System32\Printing_Admin_Scripts\de-DE\prndrvr.vbs -a -m %PrnTypePCL% -v 3 -e "Windows NT x86" -i %InfPath32%
  cscript C:\Windows\System32\Printing_Admin_Scripts\de-DE\prnmngr.vbs -a -p %PrnName6SW% -m %PrnTypePCL% -r IP_"%PortIP_6_Stock%"

  rem postscript 3 farbe
  cscript C:\Windows\System32\Printing_Admin_Scripts\de-DE\prnport.vbs -a -r IP_%PortIP_3_Stock% -h %PortIP_3_Stock% -o RAW -n 9100
  cscript C:\Windows\System32\Printing_Admin_Scripts\de-DE\prndrvr.vbs -a -m %PrnType% -v 3 -e "Windows NT x86" -i %InfPath32ps%
  cscript C:\Windows\System32\Printing_Admin_Scripts\de-DE\prnmngr.vbs -a -p %PrnName3Farbe% -m %PrnType% -r IP_"%PortIP_3_Stock%"

  rem postscript 6 farbe
  cscript C:\Windows\System32\Printing_Admin_Scripts\de-DE\prnport.vbs -a -r IP_%PortIP_6_Stock% -h %PortIP_6_Stock% -o RAW -n 9100
  cscript C:\Windows\System32\Printing_Admin_Scripts\de-DE\prndrvr.vbs -a -m %PrnType% -v 3 -e "Windows NT x86" -i %InfPath32ps%
  cscript C:\Windows\System32\Printing_Admin_Scripts\de-DE\prnmngr.vbs -a -p %PrnName6Farbe% -m %PrnType% -r IP_"%PortIP_6_Stock%"
  ) ELSE (
    Echo "This is 64 Bit Win7"
  rem pcl 3 stock s/w
  cscript C:\Windows\System32\Printing_Admin_Scripts\de-DE\prnport.vbs -a -r IP_%PortIP_3_Stock% -h %PortIP_3_Stock% -o RAW -n 9100
  cscript C:\Windows\System32\Printing_Admin_Scripts\de-DE\prndrvr.vbs -a -m %PrnTypePCL% -v 3 -e "Windows x64" -i %InfPath64%
  cscript C:\Windows\System32\Printing_Admin_Scripts\de-DE\prnmngr.vbs -a -p %PrnName3SW% -m %PrnTypePCL% -r IP_"%PortIP_3_Stock%"

  rem pcl 6 stock s/w
  cscript C:\Windows\System32\Printing_Admin_Scripts\de-DE\prnport.vbs -a -r IP_%PortIP_6_Stock% -h %PortIP_6_Stock% -o RAW -n 9100
  cscript C:\Windows\System32\Printing_Admin_Scripts\de-DE\prndrvr.vbs -a -m %PrnTypePCL% -v 3 -e "Windows x64" -i %InfPath64%
  cscript C:\Windows\System32\Printing_Admin_Scripts\de-DE\prnmngr.vbs -a -p %PrnName6SW% -m %PrnTypePCL% -r IP_"%PortIP_6_Stock%"

  rem postscript 3 farbe
  cscript C:\Windows\System32\Printing_Admin_Scripts\de-DE\prnport.vbs -a -r IP_%PortIP_3_Stock% -h %PortIP_3_Stock% -o RAW -n 9100
  cscript C:\Windows\System32\Printing_Admin_Scripts\de-DE\prndrvr.vbs -a -m %PrnType% -v 3 -e "Windows x64" -i %InfPath64ps%
  cscript C:\Windows\System32\Printing_Admin_Scripts\de-DE\prnmngr.vbs -a -p %PrnName3Farbe% -m %PrnType% -r IP_"%PortIP_3_Stock%"

  rem postscript 6 farbe
  cscript C:\Windows\System32\Printing_Admin_Scripts\de-DE\prnport.vbs -a -r IP_%PortIP_6_Stock% -h %PortIP_6_Stock% -o RAW -n 9100
  cscript C:\Windows\System32\Printing_Admin_Scripts\de-DE\prndrvr.vbs -a -m %PrnType% -v 3 -e "Windows x64" -i %InfPath64ps%
  cscript C:\Windows\System32\Printing_Admin_Scripts\de-DE\prnmngr.vbs -a -p %PrnName6Farbe% -m %PrnType% -r IP_"%PortIP_6_Stock%")
goto exit

 

:WinXP
echo Running Windows XP Script

rem check if 32 or 64 bit
Set RegQry=HKLM\Hardware\Description\System\CentralProcessor\0
REG.exe Query %RegQry% > C:\Windows\Temp\checkOS.txt
Find /i "x86" < C:\Windows\Temp\CheckOS.txt > C:\Windows\Temp\StringCheck.txt

If %ERRORLEVEL% == 0 (
  Echo "This is 32 Bit WinXP"
  rem pcl 3 stock s/w
  cscript c:\windows\system32\prnport.vbs -a -r IP_%PortIP_3_Stock% -h %PortIP_3_Stock% -o RAW -n 9100
  cscript c:\windows\system32\prndrvr.vbs -a -m %PrnTypePCL% -v 3 -e "Windows NT x86" -i %InfPath32%
  cscript c:\windows\system32\prnmngr.vbs -a -p %PrnName3SW% -m %PrnTypePCL% -r IP_"%PortIP_3_Stock%"

  rem pcl 6 stock s/w
  cscript c:\windows\system32\prnport.vbs -a -r IP_%PortIP_6_Stock% -h %PortIP_6_Stock% -o RAW -n 9100
  cscript c:\windows\system32\prndrvr.vbs -a -m %PrnTypePCL% -v 3 -e "Windows NT x86" -i %InfPath32%
  cscript c:\windows\system32\prnmngr.vbs -a -p %PrnName6SW% -m %PrnTypePCL% -r IP_"%PortIP_6_Stock%"

  rem postscript 3 farbe
  cscript c:\windows\system32\prnport.vbs -a -r IP_%PortIP_3_Stock% -h %PortIP_3_Stock% -o RAW -n 9100
  cscript c:\windows\system32\prndrvr.vbs -a -m %PrnType% -v 3 -e "Windows NT x86" -i %InfPath32ps%
  cscript c:\windows\system32\prnmngr.vbs -a -p %PrnName3Farbe% -m %PrnType% -r IP_"%PortIP_3_Stock%"

  rem postscript 6 farbe
  cscript c:\windows\system32\prnport.vbs -a -r IP_%PortIP_6_Stock% -h %PortIP_6_Stock% -o RAW -n 9100
  cscript c:\windows\system32\prndrvr.vbs -a -m %PrnType% -v 3 -e "Windows NT x86" -i %InfPath32ps%
  cscript c:\windows\system32\prnmngr.vbs -a -p %PrnName6Farbe% -m %PrnType% -r IP_"%PortIP_6_Stock%"
  ) ELSE (
    Echo "This is 64 Bit WinXP"
  rem pcl 3 stock s/w
  cscript c:\windows\system32\prnport.vbs -a -r IP_%PortIP_3_Stock% -h %PortIP_3_Stock% -o RAW -n 9100
  cscript c:\windows\system32\prndrvr.vbs -a -m %PrnTypePCL% -v 3 -e "Windows x64" -i %InfPath64%
  cscript c:\windows\system32\prnmngr.vbs -a -p %PrnName3SW% -m %PrnTypePCL% -r IP_"%PortIP_3_Stock%"

  rem pcl 6 stock s/w
  cscript c:\windows\system32\prnport.vbs -a -r IP_%PortIP_6_Stock% -h %PortIP_6_Stock% -o RAW -n 9100
  cscript c:\windows\system32\prndrvr.vbs -a -m %PrnTypePCL% -v 3 -e "Windows x64" -i %InfPath64%
  cscript c:\windows\system32\prnmngr.vbs -a -p %PrnName6SW% -m %PrnTypePCL% -r IP_"%PortIP_6_Stock%"

  rem postscript 3 farbe
  cscript c:\windows\system32\prnport.vbs -a -r IP_%PortIP_3_Stock% -h %PortIP_3_Stock% -o RAW -n 9100
  cscript c:\windows\system32\prndrvr.vbs -a -m %PrnType% -v 3 -e "Windows x64" -i %InfPath64ps%
  cscript c:\windows\system32\prnmngr.vbs -a -p %PrnName3Farbe% -m %PrnType% -r IP_"%PortIP_3_Stock%"

  rem postscript 6 farbe
  cscript c:\windows\system32\prnport.vbs -a -r IP_%PortIP_6_Stock% -h %PortIP_6_Stock% -o RAW -n 9100
  cscript c:\windows\system32\prndrvr.vbs -a -m %PrnType% -v 3 -e "Windows x64" -i %InfPath64ps%
  cscript c:\windows\system32\prnmngr.vbs -a -p %PrnName6Farbe% -m %PrnType% -r IP_"%PortIP_6_Stock%"
  )
goto exit

:exit
pause</pre>

compiz gtk-window-decorator stirbt und hinterlässt rahmenlose Fenster

Nach einem Update auf Ubuntu 11.10 (Oneiric Ocelot) und Unity hatte ich ständig Probleme mit den Fenstern und im syslog stand:
<blockquote>Dec 13 23:53:35 hostname kernel: [  664.336456] gtk-window-deco[2999]: segfault at 118 ip 000000000040fc50 sp 00007fff65c607d0 error 4 in gtk-window-decorator[400000+1c000]</blockquote>

Nach kurzem googeln bin ich in einem Bugreport auf die Lösung gestoßen:
In den „CompizConfig Einstellungs-Manager“ bei der Fensterdekoration statt
/usr/bin/compiz-decorator --replace“ zu „/usr/bin/compiz-decorator“ ändern und schon gibt es kein segfault mehr.
Ich geh davon aus, dass das hauptsächlich bei Leuten auftaucht, die von älteren Versionen auf die 11.04 wechseln wo nur noch Unity eingesetzt wird.

self extracting 7z archive with linux for windows on command line | 7z sfx in linux für windows

In Anleitungen habe ich nur 2 Befehle gefunden die aber für die Windowswelt gedachte sind (copy /b 7zS.sfx + config.txt + test.7z test.exe):

  • Wenn man mit einer config die Datei erstellen möchte um eventuell nach dem entpacken automatisch ein Setup zu starten, muss man erst das 7z Archiv haben.

    In einer Linux Distribution wird anschließend das ganze mit cat zu einer exe gemacht, wobei 7zS.sfx das Win32 Modul für das Entpacken ist:

    cat /usr/lib/p7zip/7zS.sfx config.txt test.7z > test.exe

    Wenn man ein ganzes Verzeichnis (test) gezippt hat und eine Setup.exe ausführen lassen will nach dem Extrahieren muss man die config.txt wie folgt schreiben:

    ;!@Install@!UTF-8!
    Title="test"
    RunProgram="test\setup.exe"
    ;!@InstallEnd@!

  • Der andere Befehl ist nur mit einer selbstextrahierenden Datei ohne config Datei:

    7z a -sfx7zS.sfx test.exe test/

  • 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.