Powershell 32 Bit vs. 64 Bit

Written by  on März 21, 2017

Wenn einem Certutil.exe bei manchen Parametern mitteilt, dass manche Klassen nicht geladen werden könne, ist möglicherweise die 32 Bit vs. 64 Bit Problematik daran schuld.

C:\windows\System32\certutil.exe -view -restrict "Issued Common Name=<CN>, Disposition=20" -out "RequestID,RequesterName"  -config "<CAHostName>\<CAName>"
CertUtil: -view command FAILED: 0x80040154 (-2147221164)
CertUtil: Class not registered

Wie tritt das auf, wenn ich doch ein 64 Bit Betriebssystem habe? Und wie stelle ich fest, was ich für eine PowerShell am laufen habe?
Eine „normale“ PowerShell:

> [Environment]::Is64BitProcess
True

Die „gleiche“ PowerShell geöffnet in MobaXterm:

> [Environment]::Is64BitProcess
False

Erst Version 10 von MobaXterm soll das Problem beheben und auf 64 Bit Systemen die korrekte PowerShell öffnen.

Interessantes Detail am Rande, eine 64 Bit PowerShell liegt unter C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe ide 32 Bit Version ist zu finden unter C:\Windows\SysWOW64\WindowsPowerShell\v1.0\powershell.exe!

Aero Shake

Written by  on Februar 28, 2017

Mir ist schon ein paar Mal aufgefallen, wenn ich ein Fenster auf den anderen Bildschirm ziehe, dann werden auf Einmal alle Fenster minimiert. Ein Bug? Nein, natürlich ein Feature! Durch „schütteln“ des Fensters, kann man Minimieren… alles. Ohne Weg das Rückgängig zu machen.
Das Feature hat auch einen Namen Aero Shake. Und man kann es deaktivieren:

Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced]
"DisallowShaking"=dword:00000001

Und auch wieder Aufdrehen:

Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced]
"DisallowShaking"=-

Und jetzt sag nochmal einer, das ist nicht frickeln!

Getestet unter Windows 7 und Windows 10. Greift sofort, kein Neustart notwendig!

RFC5280

Written by  on Februar 26, 2017

Wer hätte das gedacht, in RFC5280 steht auch offensichtliches.

CRL issuers issue CRLs.

RFC5280

Start a not running process via cron

Written by  on Februar 24, 2017

Beispielcode zum Starten eines Prozesses, wenn diese nicht mehr Läuft. Direkt zur Verwendung in Cron.

#!/bin/bash

PROG="apache"
ps -ww aux | grep -v grep | grep $PROG >/dev/null 2>&1
if [[ $? -eq 0 ]]; then
  echo "$PROG found"
else
  echo "$PROG not found"
  # hier restart einfügen
fi

Achtung: Das Script einfach parametrisierbar zu machen via $1 statt $PROG funktioniert nicht, da $1 auch wieder von PS gefunden wird. Es wird daher immer der $PROG found Zweig durchlaufen!

bash select

Written by  on Februar 21, 2017

Die Bash enthält eine Funktion mit der sich ein einfaches Menü darstellen lässt.

#!/bin/bash
# Bash Menu Script Example

PS3='Please enter your choice: '
options=("Option 1" "Option 2" "Option 3" "Quit")
select opt in "${options[@]}"
do
    case $opt in
        "Option 1")
            echo "you chose choice 1"
            ;;
        "Option 2")
            echo "you chose choice 2"
            ;;
        "Option 3")
            echo "you chose choice 3"
            ;;
        "Quit")
            break
            ;;
        *) echo invalid option;;
    esac
done

http://askubuntu.com/questions/1705/how-can-i-create-a-select-menu-in-a-shell-script

Das hat aber ganz schön Nachteile. Alle Beispiele werden in einer Schleife abgewickelt, das brauche ich aber nicht, wenn ich nur einen Durchlauf haben möchte. Ausserdem muss ein Wert 3 Mal angegeben werden. Einmal in der Auflistung, einmal im Case zweig, und noch Einmal wenn ich mit dem Wert tatsächlich etwas anfangen will, wenn er gewählt wurde. Was also tun, um eine einfache Auswahl zu erzeugen, die sich auch einfach erweitern lässt?

Wir verwenden dazu ein Array:

# Warning ARRAY[0] is empty for boundary checking!!!
ARRAY[1]="aa"
ARRAY[2]="ab"

# Display array to screen
for (( i = 1; $i <= ${#ARRAY[@]}; i++ ))
do
  echo "Press $i for ${ARRAY[$i]}"
done

#Read input until we have a valid input
until [[ $input -gt 0 ]] && [[ $input -le ${#ARRAY[@]} ]]; do
  echo "Wert zwischen 1 und ${#ARRAY[@]} waehlen"
  read input
done

# Do what you like with your selection
X=${ARRAY[$input]}

Braucht man mehr Werte im Script, kann man das Array beliebig erweitern. Das könnte man in ein anderes File auslagern. Oder noch was einbauen, dass man eine Taste drücken muss nachdem eine Bildschirmseite ausgegeben wurde.

Excel Restrictions

Written by  on Februar 20, 2017

32k Zeichen pro Zelle… was passiert mit mehr, etwa bei einem CSV import?
Dann macht Excel einen Zeilenumbruch.
Super Idee. Anzahl stimmt nicht. Felder mit Ja/Nein können plötzlich auch auf (Leer) gefiltert werden.
Quelle

Zitat des Tages

Written by  on Februar 19, 2017

Das ist meiner Meinung nach das Problem mit der Recherche im Internet. Das Verhältnis zwischen Nützlichem und Ausschuss verschlechtert sich rasend schnell, und plötzlich kommt man sich vor wie einer, dem etwas in die Sofaritze gerutscht ist und der bei der Suche danach Hände voller Münzen, Knöpfe, Fusseln und angenuckelten Bonbons zu Tage fördert.

Zitat des Tages

Written by  on Februar 18, 2017

Wenn die Gewalt zur Norm wird, passen sich die Menschen an die Norm an.

Zitat des Tages

Written by  on Februar 17, 2017

Durch alles. Durch das, was wir der Erde bereits angetan hatten, und durch alles, was wir ihr in den kommenden Jahrhunderten antun würden. Das Aussterben der Säugetiere. Die Abholzung. Das Schmelzen der Polareiskappen. Das Ozonloch. Die erhöhten Kohlenstoffdioxidwerte in der Atmosphäre. Saurer Regen. Absterbende Ozeane. Überfischung. Ölbohrungen im Meer. Kriege. Der Bau einer Milliarde treibstoffbetriebener Automobile. Atomkatastrophen wie Fukushima, Three Mile Island, Tschernobyl. Die mehr als zweitausend absichtlichen Detonationen von Atombomben zu Testzwecken. Die Entsorgung von Giftmüll. Exxon Valdez. Die BP-Ölkatastrophe im Golf. All die Gifte, die wir jeden Tag mit unserem Essen und dem Wasser zu uns nehmen.

Zitat des Tages

Written by  on Februar 15, 2017

Nur weil du paranoid bist, heißt das noch lange nicht, dass sie nicht hinter dir her sind.