Archiv der Kategorie: Windows Tutorials

Windows Application Integrations Advanced Workarounds Tutorials Enhancements unblog technical contribution for professionals.

Decimal Hexadecimal Umwandlung mit PowerShell

Text in Hexadecimal und Decimal Umwandlung in der PowerShell

ASCII Text in Hexadezimale Zeichen Konverter gibt es als Online Tool im Internet viele. Sollen sensible Daten beim Konvertieren im Internet nicht preisgegeben werden, empfiehlt sich die Umwandlung auf dem eigenen Rechner. Dazu braucht man nicht einmal ein Programm zu installieren, einfach zu bewerkstelligen ist es mit Hexadecimal und Decimal Umwandlung in der PowerShell.

Hierzu PowerShell öffnen und folgenden Befehl ausführen:

PS C:\> notepad $profile

Mit Notepad die Code Zeilen einfügen und speichern:

function text2hex($strg)
{
$txt = $strg.ToCharArray();
Foreach ($value in $txt) {$hex = $hex + ":" + [System.String]::Format("{0:X2}", [System.Convert]::ToUInt32($value))}
$hex
}

Text in Hexadecimal Umwandlung

PowerShell beenden und neu öffnen, nun kann der Befehl text2hex ausgeführt werden.

PS C:\> text2hex https://think.unblog.ch
:68:74:74:70:3A:2F:2F:74:68:69:6E:6B:2E:75:6E:62:6C:6F:67:2E:63:68

Decimal Hexadecimal Binary Umwandlung

Die Umwandlung von Decimal to Binary, Decimal to Hexadecimal und Hexadecimal to Decimal.

// Convert Decimal to Binary
function dec2bin($strg)
{
$dec = $strg
Foreach ($value in $dec) {$bin = [System.Convert]::ToString($value,2)}
$bin
}

// Convert Decimal to Hexadecimal
function dec2hex
{
param($DEC)
Foreach ($value in $DEC) {“{0:x}” -f [Int]$value}
}

// Convert Hexadecimal to Decimal
function hex2dec
{
param($HEX)
Foreach ($value in $HEX) {[Convert]::ToInt32($value,16)}
}

Anmerkung

Im Hexadezimalsystem werden Zahlen in einem Stellenwertsystem zur Basis 16 dargestellt. „Hexadecimal“ ist ein lateinisch-griechisches Mischwort.

Das Hexadezimalsystem eignet sich sehr gut, um Folgen von Bits (in der Digitaltechnik) darzustellen. Vier Stellen einer Bitfolge (ein Nibble) werden wie eine Dualzahl interpretiert und entsprechen so einer Ziffer des Hexadezimalsystems, da 16 die vierte Potenz von 2 ist. Die Hexadezimaldarstellung der Bitfolgen ist leichter zu lesen und schneller zu schreiben:

binärhexadecimaldecimal
1111F15
1.11111F31
11.0111.1100.010137C514.277
1010.1100.1101.1100ACDC44.252
1.0000.0000.0000.00001.000065.536
1010.1111.1111.1110.0000.1000.0001.0101AFFE.08152.952.661.013

Umwandlung von Decimal in Hexadecimal

Eine Möglichkeit, eine Zahl des Dezimalsystems in eine Zahl des Hexadezimalsystems umzurechnen, ist die Betrachtung der Divisionsreste, die entstehen, wenn die Zahl durch die Basis 16 geteilt wird, die Methode wird daher auch Divisionsverfahren oder Restwertverfahren genannt.

Umwandlung von Hexadecimal in Decimal

Um eine Hexadezimalzahl in eine Dezimalzahl umzuwandeln, muss man die einzelnen Ziffern mit der jeweiligen Potenz der Basis multiplizieren. Der Exponent der Basis entspricht der Stelle der Ziffer, wobei der Zahl vor dem Komma eine Null zugeordnet wird. Dazu muss man allerdings noch die Ziffern A, B, C, D, E, F in die entsprechenden Dezimalzahlen 10, 11, 12, 13, 14, 15 umwandeln.

Druckaufträge bleiben in Windows Print Spooler

Druckaufträge bleiben im Print Spooler (Druckwarteschlange) hängen. Der Drucker kann nicht drucken, da ein Druckauftrag in der Windows-Druckwarteschlange hängen geblieben ist.

Dieser hängengebliebene Druckauftrag kann nicht abgebrochen oder gelöscht werden und verhindert das Drucken weiterer Druckaufträge. Durch Klicken auf Abbrechen des Auftrags in der Warteschlange geschieht nichts.

Lösung

Der Grund dafür sind in der Regel Treiberfehler. Sie können lästige Störungen deim Drucken verursachen, die dann die weitere Druckausgabe blockieren. Um sie wieder loszuwerden, beendet man den Dienst für die Druckwarteschlange und löscht die Aufträge manuell. Folgender Batch Script beendet die Druckwarteschlange, löscht sämtliche Printjobs und startet den Print Spooler neu.

@echo off
echo stop print spooler...
net stop Spooler
echo remove jobs...
dir %SystemRoot%\system32\spool\printers\
ping localhost -n 2 > nul
del /q %SystemRoot%\system32\spool\printers\*.*
net start Spooler
echo done!
ping localhost -n 2 > nul

Print Spooler Dienst in der PowerShell

Wer den Print Spooler Dienst aus der PowerShell zurücksetzen möchte, dem hilft das folgende PS Script.

Write-Host "stop print spooler..."
Get-Service spooler | where {$_.status -eq 'running'} | Stop-Service -pass
Write-Host "remove jobs..."
Get-ChildItem -Path $env:SystemRoot\system32\spool\printers\
Start-Sleep -s 2
Remove-Item $env:SystemRoot\system32\spool\printers\*.*
Start-Service spooler
Get-Service spooler
Write-Host "done!"
Start-Sleep -s 2

Beide Scripts machen dasselbe, zur Ausführung muss die Scriptdatei als Administrator ausgeführt werden.

Print Spooler Status

Überprüfen lässt sich der Print Spooler Status aus Windows Dienste, mit Win+R und der Eingabe services.msc und Klick auf OK startet die MMC-Konsole. Etwas nach unten scrollen zu Druckwarteschlange.

Abbildung: Dienste – Druckwarteschlange

Was ist eine Druckwarteschlange?

Druckwarteschlange oder auch Druck-Spooler ist der Windows-Dienst, der für das Starten von Druckaufträgen verantwortlich ist. Unter Spooling wird das Abfangen eines Druckjobs auf dem Weg zum Drucker verstanden. Stattdessen wird der Druckjob auf einem Speichermedium gespeichert. Dadurch ermöglicht es der Spooler mehrere Druckaufträge nacheinander abzuarbeiten, indem er im Speicher Druckaufträge sammelt, um diese dann für eine Druckausgabe zu einem späteren Zeitpunkt zu laden.

Wenn das bisherige Vorgehen nicht zum Erfolg geführt hat, sollte die Druckwarteschlange geleert werden und alle sich im Spooling befindlichen Druckaufträge abgebrochen werden.

Neuinstallation

Helfen die vorgestellten Maßnahmen alle nicht, dann ist meistens der Spooler defekt. Um herauszufinden, ob dies der Fall ist, überprüfe vor einer Neuinstallation bitte folgendes:

Kann mit irgendeinem anderen Drucker noch drucken?

Werden noch Druckersymbole angezeigt?

Kann mit dem Druckerinstallations Assistenten einen neuen Drucker hinzufügen und installieren?

Ist das Spooling deaktiviert und wird nach einem Neustart des PC’s wieder aktiv?

Erscheint keine Fehlermeldung, versuchen den Spooler manuell zu starten?