Abou Chleih

{the magic lies between the brackets}

Menü Schließen

Kategorie: Windows (Seite 1 von 2)

Windows 10 – DVD Laufwerk wird nicht erkannt

Eigentlich braucht man – oder zumindest ich – kein DVD Laufwerk mehr. Da ich aber noch eines in einer verstaubten Schachtel fand und es nicht entsorgen wollte, ist es direkt in meinen PC gewandert.
Leider wurde das Gerät nicht von Windows erkannt.
„Alles klar“, dachte ich. Führe ich eben im Geräte-Manager eine manuelle Suche durch. Gesagt, getan – keine Änderung.
Anschließend überprüfte ich alle Kabel und Anschlüsse. Auch hier war es korrekt angeschlossen, ebenso wird es im UEFI System Browser meines Motherboards erkannt.

Das Problem liegt also bei Windows. Und da es schon einige Personen mit ähnlichen Problemen gibt, dachte sich Microsoft wohl, dass ein Support Eintrag angebracht ist.

Diesen arbeitete ich ab, jedoch funktionierte bei mir nur Resolution 5 des Eintrags.

Also wie löste ich das Problem? 

Wir gehen in die Registry per Registry Editor (Win+R und regedit) und navigieren zum Pfad HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\atapi.
Hier erstellen wir einen neuen Schlüssel (Ordner) Controller0 (ist eine Null) per Rechtsklick auf den Schlüssel atapi.
Anschließend navigieren wir in den Schlüssel und erstellen dort ein DWort mit 32-bit Länge:
Name: EnumDevice1
Wert: 1

Schlussendlich starten wir den Rechner einmal neu, das Laufwerk wird dann ordnungsgemäß erkannt.

Programmiertechnisch Windows Forms-Anwendungen erstellen

In C# gibt es verschiedene Techniken, GUIs zu erzeugen:

  • winforms
  • wpf

In Windows Forms (kurz meist winforms) ist das relativ einfach, da man hier komplett in C# arbeiten muss und nicht im „Backend-Code“ (C#) und im „Frontend-Code“ (XAML), wie in WPF.

Zu Beginn müssen wir zuerst einen Frame (hier: Form), der alle Controls (Textboxen, Labels, etc.) hält, erstellen und soweit vorbereiten.
Dazu legen wir eine Klasse MyForm an, welche von Form erbt:

 public partial class MyForm:Form 

Nun müssen wir noch die Attribute, wie bspw. Größe und Art des Rahmens anpassen. Dazu greifen wir auf die Properties der Klasse zu und setzen diese:

this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow; //Setzt den Rahmen auf einen nicht vergrößerbaren, schmalen Rahmen ohne Min./Max-Boxen
this.ClientSize = new Size(Breite, Höhe);
this.Name = "Meine Form"; //Setzt den Namen der Form
this.ResumeLayout(false); //Unterdrückt Änderungen an der GUI
this.PerformLayout(); //Lässt Änderungen an der GUI zu und lädt diese 

Nun erstellen wir ein Objekt dieser Form:

 MyForm myFrmObj = new MyForm(); 

Um jetzt Controls (hier werden wir eine Textbox hinzufügen) zur Form hinzuzufügen, müssen wir ein Objekt dieses Controls erstellen:

 TextBox txtContent = new TextBox(); 

Anschließend greifen wir wieder auf die Attribute zu und ändern diese zu unseren Wünschen ab.

 txtContent.Size = new Size(Width, Height);
txtContent.Location = new Point(X,Y); 

Achtung die Position (Location) ist relativ, d.h. X = 0, Y = 0 sind im linken oberen Eck der Form, nicht des Bildschirms.

Nun fügen wir das Control zu unserer Form hinzu:

myFrmObj.Controls.Add(txtContent);

Natürlich kann man auch andere Attribute setzen, hier verweise ich auf das MSDN von Microsoft, in dem die Attribute von Klassen erklärt sind.
Aber auch IntelliSense hilft hier weiter.

Was jetzt noch wichtig ist, ist die Option

txtContent.AutoSize = true;

. Diese lässt Controls automatisch abhängig vom Content wachsen.

Um nun noch Events hinzuzufügen, erstellen wir die entsprechende Methode private void myMethod(object sender, EventArgs e) und fügen den Handler diesem Event zu:

this.txtContent.Click += new System.EventHandler(this.myMethod);

Zu guter letzt muss man die Controls beim Aufruf der Form initialisieren lassen, sodass man Zugriff während der Laufzeit bekommt.
Hierzu fügt man im Konstruktor der Form den Befehl InitializeComponent(); ein:

public MyForm()
{
     InitializeComponent();
}

Mehr Informationen zum Handlern und Events findet man im MSDN.

Generelle Infos findet man auf der Supportseite von Microsoft.

Migration von bestehender Check_MK Installation auf OMD

Da die Repositories von Debian nicht die aktuelle Version von Check_MK beinhalten, aber nur diese die Funktion besitzt SNMP Traps zu empfangen und auswerten, musste ich einen Server von einer manuellen Installation auf die OMD Installation umstellen und bestehende Daten migrieren.
Die Migration ist eigentlich sehr einfach.
Man nimmt die Daten aus dem Verzeichnis /etc/check_mk/ des alten Servers und kopiert diese auf den neuen in den Ordner /opt/omd/sites/{SITE}/etc/check_mk.
Danach überprüft man die Rechte und weist als Eigentümer (rekursiv) den Sitenamen {SITE} zu.
Danach sollten die Daten für das System beschreibbar sein.

Nun kann man sich einloggen, wird aber kurz darauf feststellen, dass die Rechte nicht stimmen. So ist der omdadmin bzw. sind die bestehenden User zwar existent, aber nicht in den richtigen Gruppen.
Also gehen wir in das Verzeichnis /opt/omd/sites/monitor/etc/check_mk, öffnet die Datei multisite.mk und fügt in der Zeile admin_users = [ ... ] den Punkt ,"omdadmin" zu.
Nun kann man die bestehenden User anpassen und die Rechte zuweisen.

Fertig! Die groben Einstellungen sind nun importiert. Dienste oder Spezialabfragen über Plugins müssen allerdings, falls versch. Nagios Versionen, neu geschrieben/installiert werden.

Pluginsverzeichnis für Check_MK ist /usr/lib/nagios/plugins. Die eigenen Plugins in diesem Verzeichnis müssen nun in das Verzeichnis von OMD kopiert werden /opt/omd/versions/1.20/lib/nagios/plugins.

Nun muss man noch die Rulesets in Check_MK entsprechend den neuen Verzeichnissen anpassen bspw.:

bash /usr/lib/nagios/plugins/my_Check_bla -H $HOSTADDRESS$ -C public -v 2c -t raid -w 90 -c 95

bash /opt/omd/versions/1.20/lib/nagios/plugins/my_Check_bla -H $HOSTADDRESS$ -C public -v 2c -t raid -w 90 -c 95

Nun sollte der Server wie gewohnt funktionieren.

Falls nicht, liegt es daran, dass der Server die alten, gecacheden Daten als valide ansieht und die neuen, da evtl. neuer Syntax, als invalide.
Beheben lässt es sich, indem man die Hosts neu prüfen lässt:

omd$mysite: check_mk -u
omd$mysite: check_mk -I {host}
omd$mysite: check_mk -v {host}

{host} ist optional, sollte das Argument nicht genannt werden, so wird der Task auf alle Hosts ausgeführt.

Natürlich müssen noch eventuell Freigaben bezüglich der Domänennamen oder IPs berücksichtigt werden. Bspw. SNMP Freigabe nur auf IP x.

Erste Schritte: Installation und Erstkonfiguration von Nagios3/Check_MK auf Debian 7.0

Um meine Windows Server 2008 R2 Server, sowie meine Virtualisierungsinfrastruktur (auf VMWare ESXI) zu monitoren, suchte ich nach einer einfachen, aber auch umfangreichen Lösung.
So stieß ich auf das sehr verbreitete Nagios Softwarepaket, welches allerdings erst mit vielen Plugins ausgestattet werden muss, um vernünftig zu funktionieren.
Daraufhin habe ich meine Suche fortgeführt und bin auf die Open Monitoring Distribution (kurz: OMD oder OMDistro) gestoßen, welche die wichtigsten Plugins und Softwarepakete in einem Paket zusammenfasst, die da wären:

  • Check_MK (umfangreiche Erweiterung auf Nagios)
  • Nagios3
  • NagVis (Visualisierungsplugin)
  • Thruk (WebInterface)
  • Icinga (WebInterface)

Ich habe mich jetzt hier aber für Check_MK und Nagios3 (logischerweise) entschieden.
Die Installation auf einem Grundsystem (hier: Debian 7.0) ist sehr einfach.

Eine statische IP Adresse muss in der network configuration gesetzt sein!

Zu aller erst lädt man sich die Distribution als .deb-Paket auf der offiziellen Website herunter und verbindet sich per SSH auf den Server.
Ich nutze im folgenden für den Datenverkehr auf den Server winSCP, welches auf SSH basiert.
Via winSCP kann man die Datei in das Verzeichnis „/usr/local/“ kopieren – natürlich sind auch andere Pfade möglich – und führt den Befehl zur Installation via gdebi aus:
gdebi /usr/local/omd-0.43_0.43lucid1_amd64.deb
Anschließend folgt man den Anweisungen, setzt die Kennwörter und konfiguriert das System.
Nach der Installation muss man noch überprüfen, ob das Modul „HTTP Redirects/Proxy“ aktiviert ist.
a2enmod proxy_http
Danach aber noch schauen, ob die Einstellungen in /etc/apache2/mods-enabled/proxy.conf richtig und sicher sind (Zugriff von außen blockieren).
Nun können wir die OMD starten, indem wir zuerst den Pfad noch festlegen, hier http://<IP>/Monitoring/:
omd create Monitoring
omd start

Nun navigiert man zu folgender Seite http://<IP>/Monitoring und sieht alle o.g. Funktionen.
Man navigiert nun zu Check_MK und geben die Admin Daten (Standarduser: omdadmin, PW: omd) ein.
Hier kann nun über die Schaltfläche Hosts, neue Hosts anlegen:

wato_hostscheckmk_newhost

 

Anschließend gibt man die Daten des Servers ein und wählt den Agent Type SNMP, wenn man SNMP nutzen möchte. Anschließend definiert man noch die Community und klickt dann auf „Safe & Go To Services“.
Hier bekommt man dann eine Fehlermeldung, dass keine Rückmeldung via SNMP stattfand

snmp_error

 

Man muss nun also noch SNMP auf dem Windows Server aktivieren.
Dazu verbindet man sich via RDP auf den Server, öffnet den Server Manager und navigiert zu Features und Feature hinzufügen.
Anschließend wählt man den SNMP-Dienst aus und lässt diesen installieren.
Nach der Installation öffnen wir die services.msc und navigieren zum Dienst „SNMP-Dienst“. Hier klicken öffnet man nun die Eigenschaften und definiert den Agent, sowie die die Community und akzeptierte Hosts:
snmp_1 snmp_2
Community ist hier: Check_MK (Rechte: NUR LESEN), die IP-Adresse des Nagios3-Servers ist 192.168.178.128, Kontakt und Standort kann man frei wählen.
Anschließend quittieren wir alles mit Übernehmen und OK.

In Check_MK können wir nun nochmals den Service-Scan ausführen und bekommen einige Infos über SNMP zugeschickt
checkmk_services

Jetzt speicher man alles und lässt die Änderungen aktiv werden:

activate_changes

Fertig! Der Server wird nun monitored und über das Dashboard lassen sich nun die Hosts überwachen.

SQL Datenbanken in Windows Phone 8 nutzen

Man kann Daten in Projekten auf vielfältige Arten speichern, eine davon ist die Hinterlegung der Daten in einer Datenbank.
Dazu gibt es in Windows Phone mehrere Optionen. Das bekannteste und weit verbreitetste Datenbank-Datenbanksystem  ist SQLite.
Sie ist open-source und kann kostenfrei in Projekten eingesetzt werden. Zudem hat SQLite den Ruf sehr stabil und schnell zu laufen.

Wieso soll ich denn überhaupt eine Datenbank nutzen?

Das muss man nicht, aber ab einer bestimmten Komplexität der Daten/Informationen, ist eine Datenbank sinniger, als ein „plumpes“ Hinterlegen der Informationen in Dateien, bspw. über XML oder JSON.

Beginnen wir…
Grundsätzlich gibt es eine Vielzahl von Anbietern, welche SQLite Zugriffe bereitstellen, bspw. SQLite-Net, SQLitePCL, uvm…

Ich habe mich für SQLitePCL entschieden, da ich hier den „simplen“ SQL Syntax nutzen kann und nicht – wie bei SQLite-NET – über LINQ gehen muss.

Installieren wir uns nun also SQLitePCL. Hierbei handelt es sich um ein NuGet-Paket, welches wir in VisualStudio mit über den NuGet Paket Manager installieren können.
Hier gibt es zwei Wege:

  • GUI:
    Rechtsklick auf das Projekt -> NuGet-Pakete verwalten.
    Jetzt aktivieren wir auf der linken Seite die Option „Online“ und suchen nach SQLite-PCL. Hier installieren wir die „Portable Class Library for SQLite“.
    Sobald gefunden, installieren wir sie.
  • Kommandozeile (Nuget-Console):
    Wir öffnen die Kommandozeile und geben folgendes ein: Install-Package SQLitePCL

SQLitePCL_Nuget_Install

 

Danach installieren wir noch die benötigte Windows Library „SQLite for Windows Phone“, hierbei handelt es sich NICHT um ein NuGet-Paket sondern eine Windows SDK Extension:

SQLitePCL_SDK_Install.png

 

Nun installieren wir die Library und fügen eine/n Referenz/Verweis unserem Projekt hinzu.

Anschließend können wir endlich anfangen.

Ganz allgemein sieht ein SQLite-Befehl so aus – wie man die Verbindung (conn) aufbaut, erfahrt ihr gleich:

 
                using (var command = conn.Prepare("INSERT INTO MyTable(VALUE1) VALUES (?);"))
                {
                    command.Bind(1, MeinWert); //1-indexed parameter
                    command.Step(); //Absetzen des Befehls an die Datenbank
                }

Grundsätzlich muss man erst einmal eine Datenbank anlegen.

Datenverbindung erstellen
Dies legt die Datenbank in einer Datei namens „mydatabase.db“ ab oder öffnet diese.
Jetzt müssen wir – falls noch nicht geschehen – die Datenbank mit Tabellen füllen:
Tabellen-Erstellung

Um Daten aus der Datenbank abzurufen, muss man erstmal differenzieren.

  • Bekommt man einen Datensatz zurück?
  • Bekommt man mehrere Datensätze zurück?

Für den ersten Fall können wir einfach eine Abfrage absetzen und die Spalten des ersten Datensatzes durchlaufen:

Select-Einzeldatensatz

Für den zweiten Fall müssen wir durch alle Zeilen laufen und diese Daten in unsere Objekte laden:

Select mehrerer Datensätzen

Und zu guter Letzt Befehle ohne Rückgabe. Diese sind sehr einfach und lassen sich

Befehle ohne Rückgabe

Das war’s. Jetzt könnt ihr eure Datenbank füllen und mit ihr arbeiten.

Lumia Cyan Update (Windows Phone 8.1) auf dem Lumia 520 installieren

Vor einigen Tagen wurde der Status des Cyan Updates für das Lumia 520 auf der Nokia Seite auf „Avaliable“ geändert und sollte somit den Nutzern zur Verfügung stehen.
Die bisherigen Updates, auch die der Developer Preview wurden über das Windows Phone eigene Updatemenü installiert.
Allerdings fand das Lumia dieses Cyan Update einfach nicht – zumindest nicht als OTA.
Im Netz ist dieses Problem kaum beschrieben. Da aber die Versionen in Mitteleuropa alle die gleichen sind und das Update in anderen Ländern wohl ohne Probleme ausgerollt wurde, muss es entweder etwas mit dem deutschen Server zu tun haben, oder mit meinem Smartphone.
Wie bekomme ich also das Update auf mein Lumia?
Microsoft hat das sogenannte Nokia Software Recovery Tool still und heimlich veröffentlicht.
Mit diesem Tool kann man das Update dann aufspielen, aber ACHTUNG! Es werden alle Daten auf dem Gerät gelöscht. Deshalb vorher ein Backup über die Windows Phone eigene Backup-Funktion ausführen. Dieses kann man dann nach der Installation einspielen.
1. Nokia Software Recovery Tool (NSRT) herunterladen und installieren.
2. Lumia 520 mit dem Rechner über ein microUSB Kabel verbinden
3. Das NSRT starten, es erkennt dann automatisch das angeschlossene Gerät und sucht das aktuellste Update für dieses.

Nokia Software Recovery Tool Update found
4. Das Gerät muss  über mindestens 1,7GB freien Speicher verfügen (lokal, nicht auf der SD Karte)

Anschließend einfach den Anweisungen folgen. Das Update ist 1,56GB groß, d.h. der Download kann je nach Downloadgeschwindigkeit dauern.

Danach kann man das Handy neu einrichten, solltet ihr das Backup getätigt haben, so wird euch dieses bei der Ersteinrichtung angezeigt und ihr könnt es zurückspielen.

Das war’s, nun habt ihr das Lumia Cyan Update auf eurem Lumia 520.

Lumia_Cyan_520

Internet Explorer 8 und 11 Group Policies (GPOs, Gruppenrichtlinien) definieren

Um Benutzern in einem Unternehmen vordefinierte Regeln und Rechte einzuräumen gibt es im Active Directory die sog. Group Policy Objects (GPOs) oder zu deutsch Gruppenrichtlinien.
In diesen kann man Usereinstellungen, wie Redirects von lokalen Dateien auf ein Fileshare und Ähnliches veranlassen.
Weiterhin kann man Richtlinien für den Internet Explorer definieren. Darüber geht es hier nun heute.

Im weiteren Verlauf werden die englischen Bezeichnungen der Programme verwendet

Grundsätzlich kann man Gruppenrichtlinien über das „Group Policy Management“.
Nach dem Öffnen klickt man auf den Forest und dann auf die entsprechende Domain, für welche die GPO gelten soll.
Im Ordner „Group Policy Objects“ sind alle GPOs gespeichert. Mit einem Rechtsklick auf diesen Ordner, kann man über die Schaltfläche „New…“ eine neue GPO erstellen.
Neue GPO erstellen

Sobald wir eine GPO erstellt haben, wird diese gelistet und kann mit einem Rechtsklick -> „Edit…“ bearbeitet werden.
Nun gibt es grundsätzlich zwei Wege, wie man Berechtigungen und Einstellungen setzen kann. Einmal computerbezogen und einmal userbezogen.
Ich bevorzuge letztere Variante.

Grundsätzliche Einstellungen für den IE8 (teils veraltet):
Für den Internet Explorer 8 kann man die Einstellungen über Policies -> Administrative Templates -> Windows Compontens -> Internet Explorer definieren.
Die wichtigsten Einstellungen im Unternehmensumfeld sind wohl Restriktionen in Sachen Windows Update und Feedback, sowie Einstellungen in Sachen Proxy und Kompatibilität.
Im Punkt „Browser Menus“ kann man die Feedback Option von Microsoft deaktivieren.
Im Punkt „Internet Control Panel“ kann man die verschiedenen Reiter im Punkt „Internet Optionen“ ein- bzw. ausblenden lassen.

  • Im Unterpunkt „Advanced Page“ kann man die Windows Updates unterbinden, dazu den Punkt „Automatically check for Internet Explorer updates“ auf Disabled setzen
  • Im Unterpunkt „Security Page“ kann man nun Einstellungen für die verschiedenen Zonen im IE definieren:
    • Generell kann man aber beim Punkt „Site to Zone Assignment List“ Seite zu den verschiedenen Zonen hinzufügen.
      Es gilt: (1) Intranet , (2) Trust Site, (3) Internet, (4) Restricted Site
      Damit die Option greift, muss man den Punkt auf Enabled setzen
    • Damit die gesetzten Optionen in den entsprechenden Unterpunkten bspw. Internet Zone greifen, muss man die Punkte „XY“ Zone Template auf Enabled setzen

Erweiterte Einstellungen für den IE11 (neuer Weg):
Generell werden bei einem Update alle Einstellungen des Users auf den neuen Internet Explorer migriert.
Sollte jedoch ein Profil neu erstellt werden, so ziehen nicht mehr alle Einstellungen (im o.g. Punkt IE8). Microsoft hat hier einen neuen Punkt erstellt, welche die Einstellungen vereinfachen sollen.
Dazu einfach auf Preferences -> Control Panel Settings -> Internet Settings gehen und per Rechtsklick einen neuen Eintrag für die jeweiligen IE Version erstellen.
Der Rest sollte sich von selbst erklären 😉

gpo_pref

Windows Phone 8.1 – Project my Screen

Mit Windows Phone 8.1 ist neben den bereits genannten Funktionen eine neue Funktion namens „Project my Screen“ hinzugekommen.
Diese ermöglicht es den Bildschirminhalt des Smartphones per USB Verbindung auf den Desktop zu übertragen.

Voraussetzung dafür ist die Applikation für den Windows-PC, welche über die Microsoft-Download-Seite zu beziehen ist.

Was anfänglich irritiert ist, dass die Dekstopapplikation standardmäßig im Vollbild läuft und keinerlei Schaltflächen oder eine Maus besitzt.
Die Bedienung ist deshalb im Vollbild sehr unhandlich. Ein Druck auf die Escape, die F-Taste oder Alt-Enter lässt uns dann aber das Programm verkleinern/vergrößern.
Hier kann man dann aber auch die Maus zum Navigieren benutzen.
Über den dann sichtbaren Menüpunkt „Help“ lassen sich dann auch die Key-Shortcuts herausfinden:
Shortcuts_Project_my_Screen

Ich kann mich den Meinungen der User und der Presse hier nur anschließen.
Das Programm ist wirklich praktisch und schnell – es tritt kaum eine merkliche Verzögerung bei der Bildschirmübertragung auf (USB 2.0) .

Project_my_screen_menu

Windows Phone 8.1 – Neuerungen im Überblick

Wie bereits vielen bekannt, befindet sich Windows Phone 8.1 in der finalen Phase und wird voraussichtlich am 14.April für die Hersteller und Entwickler freigegeben.

Hier ein kleiner  Überblick über die Neuerungen:
1. Statusleiste
2. Cortana (Pendant zu Siri)
3. VPN
4. Internet Explorer 11 (mit Button zum Tabwechsel und Sync)
5. Storage Sense (Speicherverbrauchsanzeige)
6. Getrennte Lautstärke für Medien und Signale (Anrufe etc.)
7. App2SD (Apps auf Speicherkarte installieren)

Kleinere Neuerungen:
1. Man kann nun Apps auch mit einem Wisch nach unten beenden
2. Der Kalender hat nun auch eine Wochenansicht
3. Es gibt nun s.g. Ruhezeiten, also Zeiten in denen das Handy nicht schellt
4. Die Kamera-App wurde überarbeitet.
5. Mehr Tiles im Hauptmenü (6 Spalten)

© 2018 Abou Chleih. Alle Rechte vorbehalten.

Thema von Anders Norén.