Daten|teiler
Kopieren als Kulturtechnik

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 für dd für Windows

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 freiesMagazin, Python, Windows | Kommentare deaktiviert für Nicht nur für Zombies: Einstieg in IronPython

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 für Mehr Power(Shell) mit den Community Extensions

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 | Kommentare deaktiviert für Veraltete Software mit dem Personal Software Inspector finden

[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 | Kommentare deaktiviert für [Update] Powershell-Skript mit erhöhten Rechten von einem Netzlaufwerk aus starten

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 für Interview mit on3-radio zum Document Freedom Day

Eine neues Design für die FreeDOS-Homepage

18. März 2012 von Christian Imhorst

Die Webseite freedos.org soll ein neues Aussehen erhalten. Wer das neue Aussehen mitgestalten möchte, wird dazu auf der Testseite unter test.freedos.org eingeladen.

Nach einer kurzen Erklärung, warum ein neues Design nötig ist, schließlich ist die Seite seit 1995 gewachsen, folgen Hinweise, wie man das FreeDOS-Projekt bei der neuen Webseite unterstützen kann. Die Testseite ist allerdings bislang nur ein Prototyp und noch nicht das abschließende Design.

  • Bislang sind noch nicht alle Seiten überarbeitet. Links verweisen auch noch auf die alte Webseite.
  • Die verwendete Schriftart steht auch noch nicht fest.
  • Abstände und Positionierung auf der Webseite sind nur ungefähr und auch noch nicht festgelegt.
  • Die Seite benutzt noch Bilder als Platzhalter. Das soll sich aber in der nächsten Version ändern.
  • Auf kleinen Bildschirmen sieht die Webseite noch nicht gut aus.
  • Auf mobilen Geräten wie Smartphones funktioniert die Seite auch noch nicht, was bald behoben werden soll.

Wer jetzt erkennt, was das Projekt auf der Webseite unbedingt verbessern sollen muss, kann das in einem Formular des FreeDOS-Projekts bei Google Docs festhalten. Das Projekt freut sich über jedes Feedback.

Geschrieben in FreeDOS | Kommentare deaktiviert für Eine neues Design für die FreeDOS-Homepage

Schwierige Hardware unter Windows 7: Der Canon PIXMA MP780

13. März 2012 von Christian Imhorst

Es gibt ein allgemeines Vorurteil, dass Hardware besonders schwierig unter Gnu/Linux zu installieren sein soll. Was ich allerdings mit dem Canon PIXMA MP780 unter Windows 7 erlebt habe, hatte ich unter Linux so noch nie. Dabei fängt alles ganz harmlos an. Verbindet man den Drucker über USB-Kabel mit dem Rechner, wird er vom Online-Update erkannt und es werden auch die richtigen Treiber für das Fax und den Scanner heruntergeladen. Beim Drucker läuft das Update allerdings auf Fehler. Der Grund ist vermutlich, dass der Treiber, der über das Windows-Update heruntergeladen wird, irgendwie fehlerhaft ist. Den Treiber manuell zu installieren funktioniert nicht, weil immer wieder das Windows-Update mit seinem Treiber dazwischen grätscht. Geholfen hat letztendlich folgende Vorgehensweise, bei der es auf ein haarscharfes timeing ankommt:

Den restlichen Eintrag lesen »

Geschrieben in Windows | Kommentare deaktiviert für Schwierige Hardware unter Windows 7: Der Canon PIXMA MP780

Wo ist meine Form geblieben?

11. März 2012 von Christian Imhorst

Unter Visual Studio 2008 war mein Formdesigner plötzlich verschwunden. Die Datei für die Form Form1.Designer.vb war zwar noch da, auch mit dem Quellcode für die Form, aber die Entwurfsansicht war weg. Vermutlich war irgendetwas an der Projektdatei kaputt gegangen.

Um die Entwurfsansicht wieder herzustellen habe ich Visual Studio geschlossen und die drei Dateien für die Form

  • Form1.Designer.vb
  • Form1.resx
  • Form1.vb

in einen neuen Unterordner tmp kopiert und die Originale gelöscht. Anschließend habe ich Visual Studio erneut gestartet und eine neue Windows Form mit dem selben Namen, hier Form1 wieder erstellt. Dann habe ich Visual Studio geschlossen und die alten Dateien aus dem Ordner tmp wieder zurück kopiert. Nach einem erneuten Start von Visual Studio war die alte Formansicht wieder hergestellt.

Geschrieben in Windows | Kommentare deaktiviert für Wo ist meine Form geblieben?

Mini HTML-Einführung

12. Februar 2012 von Christian Imhorst

Mein Text Mini HTML-Einführung war schon ganz schön in die Jahre gekommen. Kein Wunder, den Text hatte ich schließlich 2003 geschrieben, und seit dem ist wirklich viel passiert. Daher habe ich ihn jetzt aktualisiert und an HTML 5 angepasst.

Die Mini HTML-Einführung ist eine kleine Einführung in HTML, um an einem Tag eine Homepage online zu bringen, die dazu noch nett aussieht, wenn auch ein bisschen grau. Das Ergebnis der Bemühungen habe ich hier bereitgestellt, damit man es auch mal sehen kann. Wer möchte, kann sich die Dateien auch herunterladen.

Wer gut englisch kann, sollte unbedingt Dive Into HTML5 von Mark Pilgrim lesen. Pilgrim hat einen erfrischenden Schreibstil mit schönen Vergleichen, die aber nicht die wesentlichen Informationen verwässern. Bei ihm wird die trockene Materie zu einem lesenswerten Werk für HTML-Entwickler und welche, die es werden wollen. Um weiter in die Welt von HTML 5 abzutauchen, sollte man nach der Mini HTML-Einführung auf jeden Fall das Grundgerüst haben.

Geschrieben in Publikationen | Kommentare deaktiviert für Mini HTML-Einführung

« Previous Entries Next Entries »