Freie Tools für Hyper-V R2: RSAT

Thursday, 4 March 2010 14:00 von Toni Pohl

Letztlich bin ich im TechNet Magazine wieder darüber gestolpert: Den Hinweis auf die freien Tools für Hyper-V: Download a Set of Free Tools for Managing Hyper-V R2.

Damit sind die Remote Server Administration Tools für Windows 7 (RSAT) gemeint. Die Tools gibt es schon seit letztem November – und sie sind noch immer genauso praktisch und empfehlenswert wie zuvor (siehe auch RSAT nun auch auf Deutsch und (RSAT) für Windows 7 Beta hier im Blog).

Mit RSAT kann ein IT-Admin von seinem Windows 7 Client aus virtuelle Maschinen verwalten – und vor allem auch Hyper-V Core Server!

Wichtig: RSAT läuft nur unter Windows 7 Enterprise, Professional oder Ultimate. Es gibt einen eigenen Download (EN, DE, etc.) mit je etwa 220MB für x86 und x64:

Download Remote Server Administration Tools for Windows 7

Nach der Installation und dem Start (%windir%\system32\mmc.exe "%ProgramFiles%\Hyper-V\virtmgmt.msc")sieht das MMC mit den Client-Tools genauso aus wie am Hyper-V Server:

hyper-v-rsat

Und das Beste daran: Auch das “Connect to Computer” öffnet die virtuelle Maschine wie am Hyper-V Server (Ja, das ist natürlich klar, aber alleine die Installation der Integration Services ist so ohne mühsame Tastatur-Steuerung möglich – ich erinnere an meinen Artikel Hyper-V Integration Services ohne Maus installieren ;-)

RSAT funktioniert übrigens nicht nur für R2-Server, sondern auch für die “normalen” Windows Server 2008.



Wie bekomme ich binäre Dokumente (BLOBs) in den SQL Server?

Friday, 26 February 2010 14:46 von Toni Pohl

Zu Artikel Teil Eins - Wie bekomme ich binäre Dokumente (BLOBs) aus dem SQL Server? – nun das Gegenstück: Teil Zwei - Wie kann ich Dateien IN den SQL Server bringen? Das heißt Files als BLOB (Binary Large Object) in eine Tabelle speichern – und das Ganze möglichst einfach.

Diese Lösung ist ebenfalls mit T-SQL zu bewerkstelligen. Die Idee dazu ist von databasejournal.com - Storing Images and BLOB files in SQL Server Part 2 entnommen, hier das Script:

savefromfile

(Das ganze Script gibt es hier zum Download, es läuft in SQL Server 2005 und 2008.)

Das Einlesen eines Files wird wieder in einer Stored Procedure “savefromfile” gemerkt.

Den gewünschten Filestream liefert OPENROWSET (Zeile 11, die Hilfe informiert: …also supports bulk operations through a built-in BULK provider that enables data from a file to be read and returned as a rowset). Damit wird das File eingelesen. Das INSERT (Zeile 9) fügt einfach den Output des SELECTS (Zeile 10-11) in die Tabelle “MyFiles“ ein. Also simpel.

Screenshot der Original-Tabelle: hier.
Nach dem Starten von "exec savefromfile" und Anzeigen der Tabelle  sieht das Ergebnis so aus:

myfiles_table_inserted

Das File "00006_Bild 1.jpg" wurde mit seinem Inhalt in die Tabelle MyFiles eingefügt. Fertig!

Noch ein Tipp für “Massen-Imports” - wenn mehrere Dateien so in die Datenbank insertiert werden sollen:

Hier kann man sich sehr rasch damit behelfen, in der Kommandozeile im Bilder-Verzeichnis die Dateinamen mit

dir /w > import.txt

in ein Textfile zu schreiben. Das Textfile "import.txt" dann mit Notepad öffnen, und die Dateinamen per Zwischenablage in eine neue Excel-Datei kopieren. In Excel werden die SQL-Befehle für die gewünschten Files zusammengebaut, beispielsweise so:

myfiles_excel_sql

Die Bildnamen stehen in Spalte A, in Spalte B wurde – wenn z.B. die ID aus dem Dateinamen weiterverwendet werden soll – diese aus dem Dateinamen extrahiert (B1: =LINKS(A1;5) ). Die "Formel" für Zelle C1:

="INSERT INTO MyFiles (FIL_ID, FIL_FileName, FIL_Content)
SELECT " & WERT(B1) & ", '" & A1 & "', BulkColumn FROM OPENROWSET(Bulk 'D:\Temp\bin\" & A1 & "', SINGLE_BLOB) AS BLOB);"

Die Formel ergibt dann das korrekte T-SQL-Statement für die jeweilige Datei:

INSERT INTO MyFiles (FIL_ID, FIL_FileName, FIL_Content)
SELECT 6, '00006_Bild 1.jpg', BulkColumn FROM OPENROWSET(Bulk 'D:\Temp\bin\00006_Bild 1.jpg', SINGLE_BLOB) AS BLOB);

Nun Zelle C1 bis ans Ende der Dateinamen “ausfüllen” lassen:

myfiles_excel_sql2

Und die so erzeugten SQLs per Zwischenablage im SQL Management Studio einfügen und laufen lassen. GO!

myfiles_excel_sql_execute

Tipp: Excel als Hilfsmittel zum Erzeugen von SQL-Befehlen und zum Nachbearbeiten von Daten ist übrigens eine Methode, die ich wirklich oft verwende und als äußerst praktisch empfehlen kann. Viel schneller gehts kaum. ;-)

Mit diesen Werkzeugen ist auch das Manipulieren von BLOBs in SQL Server rasch umsetzbar!

Wie bekomme ich binäre Dokumente (BLOBs) aus dem SQL Server?

Thursday, 25 February 2010 11:50 von Toni Pohl

Das Leben als Datenbank-Administrator steckt voller Überraschungen. Mal gehören Indizies erstellt oder neu aufgebaut, Volltextkataloge rebuildet, Datenbanken gebackupt, gewartet, restored und natürlich ist ein DB-Admin Ansprechpartner für alle weiteren auftretenden Probleme und Wünsche der IT und der Anwender.

So hatte ich vor kurzem die Anforderung, in einer Datenbank gespeicherte Bilder “herauszuholen”, also klassische BLOBs (Binary Large Objects) als Dateien zu speichern.

In meiner Datenbank existiert eine Tabelle “MyFiles” mit einer Spalte vom Typ IMAGE. Das Pendant ab SQL Server 2005 wäre der “neue” Datentyp VARBINARY; in meinem Fall handelt es sich um eine konvertierte DB aus SQL 2000 in SQL 2005.

In der Spalte ”FIL_Content” ist der Dateistream einer Datei enthalten, z.B. JPG-Bilder, Word- und Excel-Dokumente, PDFs, (BLOB), also ganz egal welche Files (ab SQL 2008 gibt es übrigens einen eigenen Filestream-Datentyp. ;-)

Die binären Dokumente können nicht simpel mit Copy & Paste herausgeholt werden, nur die entsprechende Applikation liest und schreibt die Dateien von und in die Datenbank. Diese binären Informationen aus der Tabelle sollen als Files gespeichert werden um sie weiterzuverwenden.

So sieht die vereinfachte Tabelle aus, Auszulesen ist die Spalte FIL_Content:

Tabelle MyFiles

Natürlich könnte ich eine kleine .NET Applikation dafür bauen, aber ich wollte eine möglichst rasche Lösung. Und ich habe sie auch gefunden! Ein kleines T-SQL Script im SQLTeam.com Forum von "Peso". Dieses habe ich analysiert und wie folgt angepasst.

save2file.sql Script

(Das ganze Script gibt es hier zum Download, es läuft in SQL Server 2005 und 2008.)

Ich habe das Script als Stored Procedure “save2file” angelegt. Die Funktionsweise kurz erklärt:

Mit einem Cursor (Zeile 16) wird die gesamte Tabelle “MyFiles” durchlaufen und die selektierten Felder in Variablen eingelesen (Zeile 21). Dann wird der Pfad aus Feld FIL_ID und Dateiname zusammengebaut und ausgegeben (Zeile 25-28). Jetzt kommt der Clou: Es wird ein ADODB-Stream als OLE-Objekt angelegt (Zeile 30) und mit den Werten befüttert (Zeile 31 bis 34). Dieser Stream wird auf die Festplatte geschrieben (Zeile 33, 34) und das OLE Objekt zerstört (Zeile 36). Und weiter mit dem nächsten Datensatz (Zeile 38).

Anzupassen ist natürlich der Pfad, wohin die Dateien gespeichert werden sollen (Zeile 27).

Ausgeführt wird das Script wie gewohnt mit

exec save2file

Voila! Wenn alles stimmt, wurden die binary Contents als Files in den gew. Pfad extrahiert:

save2file erzeugte Files

Hinweis: Diese Vorgangsweise ist sehr rasch anwendbar, aber nicht unbedingt für “daily use” geeignet. Je nach Datenmenge ist das Erstellen eines OLE-Objekts nicht unbedingt “günstig”.

Aber für den Ab-und-zu Export verdient das Script meine Empfehlung als “best practice”!

Eine weitere Methode: KB258038: How To Access and Modify SQL Server BLOB Data by Using the ADO Stream Object mit dem VB Beispiel “Saving the Data in a SQL Server Image Column to a File on the Hard Disk” und “Transfer the Image Stored in a .gif File to an Image Column in a SQL Server Table”.

In Teil Zwei geht es dann um den umgekehrten Weg – wie bekomme ich Files per T-SQL als BLOB in die Datenbank…

Möge T-SQL immer so hilfreich sein! ;-)

Beitrag von Toni Pohl

Outlook Folder in der Landessprache

Monday, 8 February 2010 10:35 von Martina Grom

Alt aber gut: immer wieder erhalte ich Anfragen, wenn ein Outlook beim Einrichten plötzlich meint, es sei englisch und der Posteingang heißt dann plötzlich Inbox, Gesendete Objekte heißen Sent Items u.s.w. Grundsätzlich ist dies nur ein kosmetisches Problem, trotzdem stört es die meisten User.

image Ursache dafür ist meistens, dass “irgendeine” Software, z.B. ein Virenscanner oder etwas anderes statt der Landessprache in Englisch eingestellt ist oder man beim ersten Start von Outlook sein System noch in Englisch eingestellt hat.

Die Lösung dafür ist sehr einfach: Es gibt in Outlook eine Reihe von Command Line Switches, die man verwenden kann. In diesem Fall heißt der magic Key: resetfoldernames.

Aufzurufen so:
outlook.exe /resetfoldernames

Eine Liste aller Befehlszeilenoptionen finden Sie hier.

Beitrag von Martina Grom



Categories:   Microsoft | Tools
Actions:   E-mail | Permalink | Comments (0) | Comment RSSRSS comment feed
Bookmark and Share

Fesche Silverlight Zoomery Gallery

Friday, 25 December 2009 23:45 von Toni Pohl

Auf www.zoomery.com gibt es eine hübsche Bild-Galerie downzuladen. Das Tool Zoomery Gallery ist eine WPF-Applikation, welche interaktive Online-Fotoalben mit Silverlight Deepzoom-Technologie erstellt - siehe auch DeepZoom – am Beispiel einer Harley Davidson und Deep Zoom Composer final released.

Wie sieht eine Zoomery Gallery aus?

So zum Beispiel – Klick aufs Bild fürs Online-Album mit Fotos von der Microsoft TechEd 2009 in Berlin (Silverlight PlugIn erforderlich):

zoomery_gallery_9

Gesteuert wird die Diashow mit der Navigation unten und natürlich durch Maus Ziehen und Scrollrad.

Eine Single-Lizenz kostet 50 US$, siehe zoomerylogo

Für alle Interessierten: Hier die step-by-step Anleitung zum Evaluieren von Zoomery Gallery.

Der Download ist frei, für die Evaluierung benötigt man eine Lizenz-Datei, welche man auf BuyZoomeryGallery mit seiner E-Mail Adresse gleich anfordern kann. So sieht es dann auf der Festplatte aus:

zoomery_gallery_1

Nach dem Entpacken des ZIPs erhält man Setup.exe und ein msi-Paket.

zoomery_gallery_2

Start mit Setup; nun muss nur noch das license-File ins installierte Zoomery-Programmverzeichnis kopiert werden (bei meinem Windows 7 x64 in C:\Program Files (x86)\Response\Zoomery Gallery).

zoomery_gallery_3

Danach im Startmenü (sorry, das heißt seit Vista ja Pearl-Button, oder?) und Zoomery starten.

Zunächst ein neues Projekt anlegen:

zoomery_gallery_4

Und ein Verzeichnis mit Bildern auswählen (darin können auch weitere Bilder-Verzeichnisse enthalten sein, Zoomery Gallery verwendet dann alle Bilder hier drin):

zoomery_gallery_5

Mit Finish werden die Bilder importiert.

zoomery_gallery_6

Optional können auch die Properties auf andere Einstellungen und Verzeichnisse angegeben werden. Gestartet wird das Generieren mit dem großen “Generate Scene”-Button:

zoomery_gallery_7b

Dann – je nach Bilder-Anzahl und Qualität – Kaffee trinken, Abendessen, Weihnachten feiern oder Ähnliches – das Erstellen des DeepZoom-Albums kann schon einige Zeit dauern, bei mir war es mit dieser Menge fast eine Stunde. Ich habe das Album dann reduziert und neu berechnet, das dauerte dann nur mehr etwa 10 Minuten.

zoomery_gallery_8

Wenn fertig, “View in Browser”. Das Ergebnis ist wie oben zu bewundern.

Platz braucht so ein Deepzoom schon: Aus den 36 Fotos mit 6.6MB wurden mit meinen gewählten Einstellungen 923 Ordner und fast 2.900 Dateien mit insgesamt etwa 88MB. Aber der Output ist toll und macht Spaß!

So weit so hübsch. Bei meinem Test haben nur ein paar kleine Dinge nicht funktioniert: Das Downloaden eines Bildes bringt einen Javascript-Fehler und bislang ist mir nicht klar, wie das Durchsuchen funktioniert - ich habe EXIF, IPTC und JPG-Kommentare in den Fotos hinzugefügt, die wurden aber nicht erkannt. Und wo die Diashow-Dauer eingestellt werden kann werde ich auch noch herausfinden…

Mir gefällt die Zoomery-Gallery sehr gut, sie ist einfach handzuhaben und besitzt eine ansprechende, interaktive Bedienung!

Viel Spaß mit dem Deepzoom-Album!

Categories:   Allgemeines | Tools
Actions:   E-mail | Permalink | Comments (0) | Comment RSSRSS comment feed
Bookmark and Share

Wie löscht man sehr tiefe Verzeichnisse?

Friday, 25 December 2009 16:39 von Toni Pohl

Ich mag robocopy. Ich mag robocopy wirklich (siehe u.a. windowsblog.at Robocopy - Mein Lieblingstool für Kopieren und Backup). Es hat nur einen Nachteil: Es tut, was man ihm sagt…!

Wie so oft saß das Problem vor dem Computer: Vor Weihnachten sitze ich vor meinem Notebook und will noch “rasch” ein paar Daten von meinem SBS2008 aufs Notebook mitnehmen. Also robocopy anwerfen: Die Daten sind in meinem Laufwerk H: und ich kopiere sie in mein lokales Verzeichnis C:\Daten\H:

!! NICHT NACHMACHEN !! ;-)

robocopy H:\ H:\Daten\H /s /MIR (… und sonst noch die üblichen Schalter wie /R:3 /W:3 etc…)

ENTER. Der Befehl arbeitet einige Zeit und erzeugt viel Copy-Output.
Moment mal, da stimmt doch was nicht!

Ich $&}$%! Die Finger waren schneller als das Hirn, das angegebene Ziel war ja die Quelle H:\Daten… statt C:\Daten\H !!! Abbrechen und nachsehen, was da passiert ist:

dirs-endlos

Super, robocopy hat wirklich getan, was ich beauftragt habe: Das Verzeichnis H:\ rekursiv in sich selbst kopiert!

Na gut, halb so schlimm. Dann wechsle ich mal auf den Server und lösche eben mal die Daten und Verzeichnisse, oder?

Also, Das Verzeichnis am Server lautet D:\Daten\H. Und hier drin die ewige Verzeichnisstruktur. Damit ich versehentlich nichts kaputt mache – da sind ja noch mehr Daten drauf! - benenne ich das zu löschende Verzeichnis um: Aus D:\Daten\H\Daten wird gleich mal D:\Daten\H\x und da drin das erste Verzeichnis x1 – so fühle ich mich irgendwie “sicherer”.

Kommandozeile öffnen und versuchen in D:\Daten\H\x\x1 die Daten und die Verzeichnisse zu löschen:

del daten /S /F /Q

dirs-delete

Hm. Klappt nicht. Genauso wenig klappt das Löschen der Verzeichnisse mit rd:

dirs-rd

Blöd. Na gut, dann versuchen wir es mal mit PowerShell:

dirs-delete-ps

Genau dasselbe Ergebnis… next attempt: vielleicht geht es mit Rekursion?

dirs-delete-ps-recursive

Wieder nichts! Langsam steigt ein ungutes Gefühl in mir auf…

Zwei Tage später: Jetzt zu den Feiertagen kann ich mich ja wieder darum kümmern und versuchen, den “Datenmüll” wieder zu entfernen. Wie bekomme ich diesen tiefen Verzeichnispfad wieder weg?

Wahrscheinlich habe ich nicht die richtigen Suchbegriffe in die Suchmaschinen eingetippt, denn ich habe nichts (rasch) brauchbares gefunden…

Ich überlege, mir ein winziges Programm zu schreiben, das rekursiv in das letzte Verzeichnis wechselt und dort alles löscht, dann eine Ebene höher geht usw. Aber das wird wohl auch nicht funktionieren, denn beim Löschen beschwert sich das Dateisystem ja immer, dass die Verzeichnistiefe zu groß ist. Dann wird Löschen auch nicht gehen.

Oder Umbenennen aller Verzeichnisse in den kürzest möglichen Pfad, z.B. “1” – aber automatisiert, denn sonst sitze ich morgen noch da: D:\Daten\H\x\x1\1\1\1\1\1\1\1\1\1\1\1\1 …

Oder… moment mal: Wenn robocopy den coolen Schalter /MIR kann (löscht am Ziel-Verzeichnis alles und “snychronisiert” das Quell-Verzeichnis vollständig in das Zielverzeichnis), dann kann es vielleicht auch die so angelegte Verzeichnistiefe wieder löschen??

Probieren wirs: Ich verwende ein Verzeichnis mit nur einer Datei drin aus D:\Temp, um ein “Dummy-Copy” ins Ziel durchzuführen:

robocopy D:\Temp D:\Daten\h\x /MIR /s /r:1 /w:1

Ok, alle Fenster schließen, damit die Verzeichnisse nicht gelockt sind und den Befehl mehrmals ausführen – es klappt!

Den kompletten Output erspare ich uns, aber es sieht etwa so aus:

-------------------------------------------------------------------------------
   ROBOCOPY     ::     Robustes Dateikopieren für Windows

-------------------------------------------------------------------------------

           Gestartet: Fri Dec 25 15:59:42 2009

             Quelle : d:\temp\
               Ziel : d:\daten\h\x\

            Dateien : *.*

            Optionen: *.* /S /COPY:DAT /PURGE /MIR /R:1 /W:1

------------------------------------------------------------------------------

                           1    d:\temp\
        *ZUS. Verz.       -1    d:\daten\h\x\x1\
        *ZUS. Verz.       -1    d:\daten\h\x\x1\daten\
        *ZUS. Verz.       -1    d:\daten\h\x\x1\daten\h\
        *ZUS. Verz.       -1    d:\daten\h\x\x1\daten\h\daten\
        *ZUS. Verz.       -1    d:\daten\h\x\x1\daten\h\daten\h\
        *ZUS. Verz.       -1    d:\daten\h\x\x1\daten\h\daten\h\daten\
        *ZUS. Verz.       -1    d:\daten\h\x\x1\daten\h\daten\h\daten\h\
        *ZUS. Verz.       -1    d:\daten\h\x\x1\daten\h\daten\h\daten\h\daten\
        *ZUS. Verz.       -1    d:\daten\h\x\x1\daten\h\daten\h\daten\h\daten\h\

        *ZUS. Verz.       -1    d:\daten\h\x\x1\daten\h\daten\h\daten\h\daten\h\

        *ZUS. Verz.       -1    d:\daten\h\x\x1\daten\h\daten\h\daten\h\daten\h\
daten\h\daten\h\daten\h\daten\h\daten\h\daten\h\daten\h\daten\h\daten\h\daten\h\
daten\h\daten\h\daten\h\daten\h\daten\h\daten\h\daten\h\daten\h\daten\h\daten\

------------------------------------------------------------------------------

                Gesamt   Kopiert  Überspr. Nicht gef.  Fehler    Extras
Verzeich.:         1         0         1         0         0        48
   Dateien:         1         0         1         0         0         0
     Bytes:       215         0       215         0         0         0
    Zeiten:   0:00:00   0:00:00                       0:00:00   0:00:00

   Beendet: Fri Dec 25 15:59:43 2009

Wieder was gelernt!

Erstens: Kurz Hirn einschalten, bevor man so praktische Tools wie robocopy verwendet und zweitens ist oft der Auslöser die Lösung…

In meinem Fall kann robocopy auch wunderbar zum Löschen von so tiefen Verzeichnissen verwendet werden, wo das Betriebssystem “die Patschen streckt”. ;-)

In diesem Sinne: Robocopy ist super. Und erholsame Feiertage!

Categories:   Tools | Windows
Actions:   E-mail | Permalink | Comments (0) | Comment RSSRSS comment feed
Bookmark and Share

Bing fürs iPhone

Wednesday, 23 December 2009 12:13 von Toni Pohl

Bing gibt es nun auch fürs Apple iPhone! Die Applikation ist gratis:

itunes.apple.com - Store

“Bing has finally made an iPhone app, which is now up on the Apple iTunes app store.”

bing-for-apple-iphone

Siehe auch cnet.com: “See the Bing daily image and related trivia on the home screen. Search maps or the Web with your voice--even say an address. Use Image Search and flick through previews. Download Bing today to find stuff nearby and get there fast.”

Categories:   Allgemeines | Tools
Actions:   E-mail | Permalink | Comments (0) | Comment RSSRSS comment feed
Bookmark and Share

Bye bye Facebook mit Web Suicide

Tuesday, 22 December 2009 22:15 von Toni Pohl

Wer sich aus Facebook & Co - aus den großen sozialen Netzen von Web 2.0 - verabschieden will, findet nun einen automatisierten Ausstieg:

Web 2.0 Suicide Machine von moddr

goodbye_facebook

Wer also den “sozialen Netzwerk Selbstmord” begehen und die Zeitfresser-Maschine abschalten will… ;-)

“Liberate your newbie friends with a Web2.0 suicide! This machine lets you delete all your energy sucking social-networking profiles, kill your fake virtual friends, and completely do away with your Web2.0 alterego...”

Nach Eingabe der Zugangsdaten kann man mit Mausklick – ruck zuck - sein eigenes Profil leeren und dabei in Echtzeit zusehen - Alle Daten im Profil werden geleert und alle Verknüpfungen und Freunde entfernt: “Dadurch ist die Wahrscheinlichkeit höher, dass die Daten auch serverseitig dauerhaft aus der Datenbank verschwinden.”

Mehr dazu in der ORF FuZo: Schneller Weg ins digitale Nirvana

Bing Suche

BPOS

Microsoft Online Services

Über...

atwork-blog informiert über IT-News und liefert Tipps & Tricks für IT-Professionals und Developer.

Follow us also on Twitter:
Do you follow me?
Martina Grom
Toni Pohl

atwork auf FacebookDo you follow me?

© Copyright 2008 atwork

Werbung

Werbung

Domain-Infos

Visits in WorldMap

Visits in ClustrMaps

Locations of visitors to this page

Kalender

<<  March 2010  >>
MoTuWeThFrSaSu
22232425262728
1234567
891011121314
15161718192021
22232425262728
2930311234

View posts in large calendar

Werbung