Daten|teiler
Kopieren als Kulturtechnik

Debian muss mit — GNU/Linux in der VirtualBox

20. Oktober 2012 von Christian Imhorst

Debian GNU/Linux in der VirtualBox unter Windows zu installieren, ist eine praktische Sache. Wenn man sich mit Themen rund um GNU/Linux, Web- und FTP-Server oder ähnliches beschäftigen will, hat man es immer auf dem Notebook dabei. So kann man Freunden, Familien, Kunden zeigen, wie ihr Blog, Homepage oder Webshop aussehen könnte. Man kann die virtuelle Maschine besonders mit Debian als Gast-System etwas schmaler konfigurieren, was gleich gezeigt werden soll, damit sie zum Beispiel auch gut auf ein Netbook passt und dort nicht allzuviel Speicher braucht.

Den restlichen Eintrag lesen »

Geschrieben in Gnu/Linux, Windows | Kommentare deaktiviert

O’Reilly eBooks super günstig im Play Store kaufen

9. September 2012 von Christian Imhorst

Das Angebot gibt es schon etwas länger, englischsprachige eBooks von O’Reilly für (nicht einmal) ein Zehntel des Buchpreises im App oder Play Store zu kaufen. Während es die Bücher im Play Store allerdings ohne DRM-Restriktionen gibt, darf man sie auf Apple-Geräten vermutlich immer noch erstmal aus ihrem App-Gefängnis befreien, um sie auf anderen eBook-Readern lesen zu können. Wenn einem nicht stört, dass die eBooks nach dem Export nur im EPUB-Format vorliegen, der kann ein schönes Schnäppchen machen.

Zum Beispiel gibt es dort das eBook JavaScript: The Definitive Guide 6th Edition für 3,49 Euro, während die nicht DRM-freie Kindle-Version bei Amazon 20,46 Euro kostet. Die Bücher werden zusammen mit dem Aldiko eBook-Reader als einzelne Apps installiert, aus denen sich dann unter Android die DRM-freien EPUB-Versionen leicht exportieren lassen.

Anschließend findet man die EPUB-Datei auf der obersten Ebene der SD-Karte, wovon man sie über Dropbox, Google Drive oder einen PC auf einen eBook-Reader seiner Wahl kopieren kann, wenn er in der Lage ist, EPUB-Dateien zu lesen. In meinem Fall ist das der Sony Reader PRS-T1.

Was ich an der ganzen Sache allerdings schräg finde ist, dass das Buch “JavaScript: The Definitive Guide” noch in der 5th Edition im Store von Aldiko selbst 39,99 USD kostet. Die 6. Auflage wird dort gar nicht angeboten, während das Bundle aus App und eBook in der neusten Auflage noch nicht einmal ein Zehntel des Preises kostet.

Geschrieben in Allgemein, Android | Kommentare deaktiviert

Entfernte Dateien über eine wirklich seeeehr langsame Verbindung herunterladen

31. Juli 2012 von Christian Imhorst

Ich hatte neulich das Vergnügen relative große Dateien, so zwischen 2 und 10 Megabyte, über eine wirklich seeeehr langsame Verbindung von einem Windows-Rechner auf einen anderen herunterzuladen. Der Server, auf dem sich die Daten befanden, war weit weg, ähnlich wie Deep Space 9 weit von der Erde entfernt ist. Wenn das Sternenflottenkommando versucht ein paar Dateien von der Station aus den Tiefen des Weltalls herunterzuladen und ein paar Cardassianer auf der Leitung stehen, geht es ihnen so ähnlich wie mir. Selbst Robocopy, als schweizer Taschenmesser für Kopieraufgaben, hat die Füße gestreckt und ständig angemeldet, dass die Verbindung unterbrochen ist.

Letztendlich konnte ich den Kopierjob mit dem Transferprotokoll Background Intelligent Transfer Service (BITS) unter Windows 7 erledigen. BITS kann Daten im Hintergrund übertragen, wobei ungenutzte Bandbreite konsumiert wird, um die Netz-Performance der aktiven Programme nicht zu beeinträchtigen. Sollte ein Download unterbrochen werden, kann BITS ihn ähnlich wie Robocopy wieder aufnehmen. BITS wird z.B. beim Übertragen von Dateien mit Windows Update eingesetzt. Mit bitsadmin gibt es auch ein Kommandozeilentool, das ähnlich mächtig wie Robocopy ist, handlicher finde ich aber das Kopieren mit BITS in der Powershell.

Letztendlich haben die folgenden beiden Befefehle den Job erledigt:

Import-Module bitstransfer
Start-BitsTransfer -Source \\DeepSpace9\Sources\*.* -Destination \\StarfleetCmd\Sources\

Zuerst wird das Powershell-Modul für die BITS-Übertragung geladen. Dann folgt der Befehl, mehrere Dateien vom Server herunterzuladen. Mit Start-BitsTransfer wird der neue BITS-Übertragungsauftrag erstellt, wobei ich anstelle einzelner Dateien Joker-Zeichen als Platzhalter verwende. Im Zielpfad dürfen übrigens keine Joker-Zeichen verwendet werden. Mit dem oben genannten Befehl wird der Befehl übrigens nicht im Hintergrund aufgeführt, stattdessen blockiert er die Powershell, wenn er ausgeführt wird. Wer ein Beispiel für einen Job im Hintergrund sucht, findet ihn in der Hilfe von Start-BitsTransfer:

Get-Help Start-BitsTransfer -full

Geschrieben in Powershell, Windows | Kommentare deaktiviert

Dualboot verschlüsseln mit Xubuntu und Windows 7

15. Juli 2012 von Christian Imhorst

Sollte mein Netbook einmal unbeabsichtigt seinen Besitzer wechseln, dann möchte ich zumindest meine Daten sicher verschlüsselt haben. Leider ist das leichter gesagt, als getan, da ich ein Dualboot-System mit Windows 7 und Xubuntu 12.04 benutze. Xubuntu hatte ich schon gleich verschlüsselt installiert, bei Windows ist das ja leider nicht so einfach möglich, wenn man nicht die Ultimate-Version hat. Auf meinem Netbook ist Windows 7 Starter 32-bit installiert, also eine sehr abgespeckte Version. Glücklicherweise gibt es Open Source-Software, mit der man sie um Funktionen erweitern kann, die dieses Windows von Haus aus nicht mitbringt. In meinem Fall ist es die Verschlüsselungssoftware TrueCrypt.

Den restlichen Eintrag lesen »

Geschrieben in Gnu/Linux, Windows | 3 Kommentare »

dd für Windows

13. Juli 2012 von Christian Imhorst

Mit Gnu/Linux lernt man viele kleine Programme schätzen, die man ganz schön vermisst, wenn man zwischendurch wieder Windows benutzen darf oder muss. Eines dieser Programme ist dd, um CDs oder DVDs als ISO-Dateien zu kopieren. Glücklicherweise gibt es dd for Windows, in der Programmiersprache Delphi geschrieben und unter der GPL veröffentlicht.

Die Syntax der aktuellsten Version 0.6beta3 aus dem Jahr 2010 ist etwas gewöhnungsbedürftig, wenn man eher die Unix-Version von dd kennt. Nach dem Herunterladen habe ich die Datei dd.exe in den System-Ordner %windir%\system32 kopiert, wählt man einen anderen Ordner, sollte man ihn in die Umgebungsvariable PATH übernehmen. Mit dem Befehl dd --list kann man sich einen ersten Überblick verschaffen:

C:\> dd --list
rawwrite dd for windows version 0.6beta3.
Written by John Newbigin <jn@it.swin.edu.au>
This program is covered by terms of the GPL Version 2.
 
Win32 Available Volume Information
\\.\Volume{a9d80fe0-46c0-11e1-9544-00199931e307}\
  link to \\?\Device\HarddiskVolume2
  fixed media
  Mounted on \\.\c:
 
\\.\Volume{c4b9ebe1-4678-11e1-9068-806e6f6e6963}\
  link to \\?\Device\CdRom0
  CD-ROM
  Mounted on \\.\d:

Um eine CD im Laufwerk D als ISO-Dateien zu kopieren benötigt man folgenden Befehl:

dd if=\\.\d: of=C:\Users\Public\myCD.iso bs=1M --size --progress

Mit der Option “bs” wird die Blockgröße auf 1 MB gesetzt, “–size” ermittelt die Größe der CD oder DVD und teilt dd mit, dass es nicht versuchen soll, über diese Größe hinaus zu lesen. Die Option “–progress” zeigt den Fortschritt des Einlesens an.

Geschrieben in Windows | Kommentare deaktiviert

Nicht nur für Zombies: Einstieg in IronPython

1. Juli 2012 von Christian Imhorst
Voraussetzungen:  
   
Betriebssystem: Windows 7
.NET-Framework: Version 4.0
IronPython: Version 2.7.2.1
Evtl. Compiler: Visual Studio Express 2010

Wenn einem IronPython wie ein semi-toter Zombie erscheint, der kaum User hat, liegt das zum großen Teil an IronPython selbst: Es ist ein Nischenprodukt, was Schade ist, und wird das vermutlich auch bleiben, was noch mehr Schade ist, da IronPython wunderbare Einblicke in das.NET-Frameworkgewährt.

Dieser Artikel ist zum ersten Mal in der Ausgabe 07/2012 von freiesMagazin erschienen.

Den restlichen Eintrag lesen »

Geschrieben in Python, Windows | Kommentare deaktiviert

Mehr Power(Shell) mit den Community Extensions

3. Juni 2012 von Christian Imhorst

Wie bei vielen anderen Softwareprodukten auch, fehlen der PowerShell in der Version 2.0 noch ein paar Features. Die PowerShell Community Extensions (PSCX) sollen diese Lücken füllen, bis die vermissten Cmdlets eines Tages standardmäßig in den Lieferumfang der PowerShell einziehen. Neben einer Reihe von Cmdlets aus den Bereichen der Netzerkkonfiguration, Datenkonvertierung, Dateisystem bietet das Open Source-Projekt von Microsoft auch nützliche Tools wie less, tail, touch, uptime und weitere.

Installation

Bei der Installation muss man allerdings wissen, wie es gehen soll, da es keine ausführbare EXE-Datei oder ähnliches gibt. Die PSCX 2.0 kann man in Form einer ZIP-Datei von CodePlex herunterladen. Danach wechselt man in das Verzeichnis, in dem die ZIP-Datei liegt, klickt mit der rechten Maustaste darauf und wählt im Kontextmenü “Eigenschaften” aus. Im Reiter “Allgemein” muss man den Zugriff auf die Datei zulassen, der aus Sicherheitsgründen blockiert ist.

Im Windows Explorers klickt man dann auf die ZIP-Datei doppelt, um danach den Ordner “Pscx” zu kopieren und unter “%USERPROFILE%\Documents\WindowsPowerShell\Modules” wieder einzufügen. Wenn der Ordner noch nicht existiert, sollte man ihn vorher anlegen. Will man die Community Extensions allen Usern des Computers zugänglich machen, muss man den Ordner “Pscx” nach “Modules” im Heimat-Verzeichnis der PowerShell kopieren: “C:\Windows\System32\WindowsPowerShell\v1.0\Modules”.

Spätestens nach einem erneuten start der PowerShell kann man die Community Extensions als Modul laden:

Import-Module pscx

Möchte man nie wieder auf die Community Extensions verzichten, sollte man den Befehl in die Profil-Datei kopieren, dann werden sie bei jedem Start der PowerShell gleich mitgeladen:

%USERPROFILE%\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1

Hat man von den Community Extensions genug, wird man sie mit dem Befehl

Remove-Module pscx

wieder los.

Geschrieben in Powershell, Windows | Kommentare deaktiviert

Veraltete Software mit dem Personal Software Inspector finden

24. Mai 2012 von Christian Imhorst

“Mit Linux wär’ das nicht passiert”, wenn zum Beispiel veraltete Software Viren, Trojaner und andere Malware Tür und Tor auf dem Windows-PC öffnet. Denn aktuelle Linux-Distributionen sorgen selbst dafür, dass Software, die aus ihren Repositories installiert wurde, also aus ihren eigenen Software-Archiven im Internet, immer auf dem aktuellsten Stand bleibt. Doch wie soll man seine eigene Software unter Windows aktuell halten, ohne dass man auf der jeweiligen Homepage des Herstellers nachschaut, ob es eine neue Version gibt? Immerhin kann man das Betriebssystem selbst mit dem Windows-Update auf den neusten Stand bringen, und es gibt einzelne Anwendungen wie z.B. Java, oder Reader und Flashplayer von Adobe, die sich selbständig melden, wenn Updates verfügbar sind, auch wenn man den Update-Intervall dieser Anwendungen überprüfen sollte. Doch was ist mit den ganzen anderen Anwendungen? Hier setzt die Freeware Personal Software Inspector (PSI) von Secunia an.

Bevor man PSI installiert, sollte man Windows mit der eigenen Update-Funktion auf den neusten Stand bringen. Während der Installation kann man sich entscheiden, ob PSI Anwendungen automatisch updaten soll, wenn es eine neuere Version auf der Seite des Herstellers findet. Möchte man das nicht, muss man das Häkchen herausnehmen. Nach der Installation wird PSI den Rechner eine Weile beschäftigen, bis alle Anwendungen überprüft und Aktualisierungen gegebenenfalls eingespielt worden sind; persönliche Einstellungen sollen dabei unangetastet bleiben. Die so erstellte Liste gleicht das Tool über eine SSL-Verbindung mit einem Server von Secunia ab. Nach der Überprüfung zeigt es an, welche Programme aktuell, veraltet oder unsicher sind. Wenn Software in die Kategorie “Unsicher” fällt, kann man über PSI die Download-Seite des Herstellers aufrufen, um das entsprechende Update manuell herunterzuladen. Der Nachteil von PSI ist allerdings, dass Secunia mit dem Tool einen kompletten Überblick über die Lücken im System erhält, auch wenn laut Lizenzbestimmungen die Informationen nach spätestens 12 Monaten gelöscht werden sollen.

Mit dem Online Software Inspector (OSI) muss man die Software nicht installieren, sondern kann den Rechner auch online durchsuchen lassen. Dazu muss man eventuell Java und JavaScript vorher im Browser aktivieren. Die Sprache kann man auf “Deutsch” einstellen und anschließend auf “Start Scanner” klicken. Es kommt eine Sicherheitsabfrage, ob man das Skript ausführen will, die man mit “Dieses Mal ausführen” bestätigen muss, damit das Scannen beginnt.

Geschrieben in Windows | 1 Kommentar »

[Update] Powershell-Skript mit erhöhten Rechten von einem Netzlaufwerk aus starten

3. Mai 2012 von Christian Imhorst

Was sich erstmal nach einer leichten Übung anhört, ein Powershell-Skript von einem Netzlaufwerk aus starten, wird kompliziert, wenn man das Skript mit erhöhten Rechten ausführen will, das Administrator-Konto aber nichts von dem Netzlaufwerk weiß. Der Hintergrund ist folgender: Das Skript liegt für den normalen Benutzer sichtbar auf dem Netzlaufwerk F, das mit dem Share \\Server01\Public verbunden ist. Damit das Skript sich ausführen lässt, benötigt es die erhöhten Rechte, des Administrationskontos, was mit einem Skript von der c’t geht (eine ausführlichere Version bietet Ben Armstron in seinem Blog).

# Prüfe, ob der User Admin-Rechte hat:
$identity = [System.Security.Principal.WindowsIdentity]::GetCurrent()  
$principal = New-Object System.Security.Principal.WindowsPrincipal($identity)  
if(!$principal.IsInRole([System.Security.Principal.WindowsBuiltInRole]::Administrator))  
{  
    $powershell = [System.Diagnostics.Process]::GetCurrentProcess()  
    $psi = New-Object System.Diagnostics.ProcessStartInfo $powerShell.Path 
 
    $script = $MyInvocation.MyCommand.Path
 
    $prm = $script 
    foreach($a in $args) { 
        $prm += ' ' + $a 
    } 
    $psi.Arguments = $prm 
    $psi.Verb = "runas" 
    [System.Diagnostics.Process]::Start($psi) | Out-Null 
    return; 
}
 
# Hier folgt der Code, der die erhöhten Rechte benötigt:
 
$wshshell = new-object -comobject wscript.shell
$Answer = $wshshell.popup("Du bist User $env:USERNAME",5,"Der Test hat geklappt!",0)

Durch die “automatic variable” $MyInvocation erhält man den vollen Namen des aufrufenden Skripts. Der wird benötigt, damit sich das Skript nochmal selbst aufruft, wenn es beim ersten Durchlauf feststellt, dass der Benutzer, der das Skript gestartet hat, kein Administrator ist. In diesem Fall fordert das Skript erhöhte Rechte an und ruft sich selbst nochmal auf, wenn es sie erhalten hat.

Wenn der Pfad zum Skript auf F:\MyShare liegt, der für den normalen Benutzer bekannt ist, der Administrator das Laufwerk F: aber nicht kennt, da ihm der Pfad in der Variablen $MyInvocation.MyCommand.Path fremd ist, läuft das Skript auf einen Fehler. Um diesen Fehler zu vermeiden, gehe ich daher einen Umweg.

[Update] Dabei vermeide ich den alten und unflexiblen Weg, bei dem ich den Laufwerksbuchstaben in das Skript geschrieben habe:

# Der Speicherort F:\MyShare\ ist dem Administrator nicht bekannt, 
# weshalb ich den Laufwerksnamen durch den UNC-Pfad ersetze:
 
# Anstatt ein einfaches ...  
# $script = $MyInvocation.MyCommand.Path  
 
# ... gehe ich einen Umweg: 
$path = $($MyInvocation.MyCommand.Path)
$script = $path.replace("F:", "\\Server01\Public")

Mit Hilfe von Peter Kriegel im TechNet-Forum benutze ich jetzt folgende Lösung, nachdem ich mich von Nik aus dem Kommentar ein wenig in die Irre habe führen lassen. Der Lösungsweg mit net share war doch zu umständlich. Stattdessen benutze ich ein WMI-Objekt mit Hilfe des Get-WmiObject Cmdlets:

# Prüfe, ob der User Admin-Rechte hat:
$identity = [System.Security.Principal.WindowsIdentity]::GetCurrent()  
$principal = New-Object System.Security.Principal.WindowsPrincipal($identity)  
if(!$principal.IsInRole([System.Security.Principal.WindowsBuiltInRole]::Administrator))  
{  
    $powershell = [System.Diagnostics.Process]::GetCurrentProcess()  
    $psi = New-Object System.Diagnostics.ProcessStartInfo $powerShell.Path 
 
    $script = $MyInvocation.MyCommand.Path
 
    <# 
       Hier wird es problematisch, wenn das Skript auf einem Netz- 
       laufwerk liegt, das dem Administrationskonto nicht bekannt 
       ist, wie z.B. Laufwerk F:\. 
    #>
 
    Get-WmiObject Win32_LogicalDisk | ForEach {
    # Prüfe, ob das Skript auf einem Netzlaufwerk liegt:
    if ($script.contains($_.DeviceID)){ 
        # Wenn ja, ersetze den Laufwerksbuchstaben durch den UNC-Pfad:
        $script = $script.replace($_.DeviceID,$_.ProviderName)
        }
    }
 
    $prm = $script 
    foreach($a in $args) { 
        $prm += ' ' + $a 
    } 
    $psi.Arguments = $prm 
    $psi.Verb = "runas" 
    [System.Diagnostics.Process]::Start($psi) | Out-Null 
    return; 
}
 
# Hier folgt der Code, der die erhöhten Rechte benötigt:
 
$wshshell = new-object -comobject wscript.shell
$Answer = $wshshell.popup("Du bist User $env:USERNAME",5,"Der Test hat geklappt!",0)

Geschrieben in Powershell, Windows | 1 Kommentar »

Interview mit on3-radio zum Document Freedom Day

29. März 2012 von Christian Imhorst

Zum Document Freedom Day habe ich gestern on3-radio, das ist ein Jugendradio des Bayerischen Rundfunks, ein Interview zu Freie Software und Open Source gegeben. Den Podcast der gestrigen Sendung kann man online hören, aber auch als MP3 herunterladen. Ich habe zwar Philosophie studiert, aber warum ich zum Schluss des Interviews als Philosoph bezeichnet werde, damit habe ich nichts zu tun. :-)

Geschrieben in Allgemein, Publikationen | Kommentare deaktiviert

« Previous Entries Next Entries »