Archive for the ‘Vista’ Category

Bilder unter Windows gezielt mit der Windows Fotoanzeige öffnen

30 August 2015

Eine Variante die unter Windows XP – Windows 10 immer verfügbar ist, solange es um übliche Dateiformate wie PNG, BMP, TIFF oder JPG handelt ist die Windows Fotoanzeige. Hier der passende Aufruf:

RunDLL32 "%ProgramFiles%\Windows Photo Viewer\PhotoViewer.dll",ImageViewer_Fullscreen C:\temp\test.bmp

Dabei muss der Bilddateiname immer als absoluter Pfad angegeben werden!

Leider kennen die Server Versionen von Windows den Photoviewer nicht.

http://www.autohotkey.com/board/topic/51203-run-rundllexe-photoviewerdll-syntax/

Microsoft hats drauf, riesige Auflösung unter Windows

4 Januar 2014

Ha da lach ich mich ja schlapp, wenn bei aktuellen Windows 8.1 Notebooks die Rede von QHD+ Auflösung mit 3200×1800 Pixel ist oder wenn Apple mit Retina Auflösung von 2880×1800 daherkommt. Das ist alles nichts gegen eine Windows Vista Maschine mit einer Intel Onboard Grafikkarte, die dies angezeigt hat:

image

40963 x 33792 Pixel! Das ist mal eine Auflösung, mit der kann man wenigstens vernünftig arbeiten. Das sind 1384221696 Pixel also 1,38 Gigapixel. Selbst Displayport 1.3 mit Ultra-HD und 8K-Auflösung und 8192×4320 Pixel wird damit gesprengt. Stellt sich die Frage welche Schnittstelle es fertig bringt, diese Auflösung an einen Monitor zu schaffen?

Remote Desktop Fehlermeldung: Die Verbindung kann nicht aufrechterhalten werden, da die Identität des Remotecomputers nicht überprüft werden konnte.

7 Juni 2013

Wer die Fehlermeldung

Die Verbindung kann nicht aufrechterhalten werden, da die Identität des Remotecomputers nicht überprüft werden konnte.

beim Versuch eine Remotedesktopverbindung aufzubauen, der wundert sich zunächst. Zunächst wurden die Remotedesktop-Einstellungen überprüft. Hier kann üblicherweise beim Register “Leistung” unter Serverauthentifizierung eingestellt werden, dass die Verbindung unter einem gewissen Sicherheitsstandard nicht hergestellt werden soll.

Allerdings klappte bei obiger Meldung die Verbindung immer noch nicht, obwohl “Verbinden und keine Warnungen anzeigen” ausgewählt war.

Was tun? Durch Zufall wurde entdeckt, dass sich der Remote-Rechner sowie der Zielrechner in der Zukunft befanden! Genau 25 Minuten voraus. So wie es sich momentan darstellt, scheint dies der ausschlaggebende Punkt gewesen zu sein. Nachdem die Uhrzeit der Systeme korrekt gesetzt wurde, klappte die Verbindung. Allerdings bleibt noch ein Restzweifel, weil einer der beiden Rechner gleichzeitig wegen Update einspielen neu gestartet wurde. Die involvierten Rechner waren mit Windows Vista SP2 eingerichtet.

Benutzer unter Windows umbenennen

20 März 2013

Wer in den aktuellen Windowsversionen in der Benutzerkontenverwaltung einen Benutzer umbenennt, bekommt immer nur den Anzeigenamen umbenannt.

Wenn man z. B. whoami benutzt oder das Stammverzeichnis des Benutzers öffnet, wird immer noch der alte Name angezeigt. Dies ist oftmals mehr als irritierend.

Mittels des Windows-EasyTransfer Programms kann man aber auch einen Benutzer auf ein und demselben Rechner umziehen. Alle Einstellungen und Dateien werden damit sauber umgezogen. Damit erübrigt sich das herumspielen mit NTUSER.DAT, NTUSER.DAT.LOG und NTUSER.INI.

http://answers.microsoft.com/en-us/windows/forum/windows_7-security/need-to-rename-user-profile-or-copy-profile-into-a/69097230-86e1-4e14-b76b-8e8e7d776db2

Hier die etwas sinnfremde offizielle Version: http://windows.microsoft.com/en-us/windows7/rename-a-user-account

Die Variante funktioniert auch bei Domänenbenutzern: http://support.microsoft.com/kb/928634/en-us.

Wifi Netzwerksicherheitsschlüssel unter Windows per Powershell auslesen

2 Januar 2013

Es gibt unter Windows zwar wohl eine Methode sich den hinterlegten Netzwerksicherheitsschlüssel für Wifi Netzwerke anzuzeigen aber die Methode ist nur über die GUI-Oberfläche möglich und ist recht umständlich, wenn man die Keys mehrerer Netze abfragen möchte.

Es gibt natürlich auch allerhand Utilities wie z. B. WirelessKeyview von Nirsoft http://www.nirsoft.net/utils/wireless_key.html. Aber wer vertraut per solch sicherheitskritischen Dingen schon gern unbekannter Software. Zumal diese oft von Virenscannern als Malware klassifiziert werden: http://blog.nirsoft.net/2012/10/10/amazing-difference-between-antivirus-false-alerts-on-32-bit-and-64-bit-builds-of-exactly-the-same-tool/.

Was liegt also näher, als die Sache selber mit Bordmitteln zu lösen. Das Thema ist allerdings etwas komplexer weshalb ich als Vorbereitung in den vergangenen Tagen bereits verschiedene Artikel geschrieben habe.

Zuerst werden die Berechtigungen vom Systemdienst benötigt: https://newyear2006.wordpress.com/2013/01/01/eingabeaufforderung-mit-lokalen-systemdienst-rechten-unter-windows-8-und-windows-server-2012/.

Dann ist wichtig, wie man mit SecureStrings in Powershell umgeht: https://newyear2006.wordpress.com/2012/12/30/spa-mit-net-securestring-und-powershell-oder-sicheres-speichern-und-einlesen-von-passwrtern/

Noch etwas mehr Hintergrund, wie man in den tiefen von SecureString die DPAPI benutzt: https://newyear2006.wordpress.com/2012/12/30/in-den-niederungen-von-securestring-mittels-powershell/

Dann braucht man noch die Idee für solch einen Artikel: http://securityxploded.com/wifi-password-secrets.php

So nun zum Script, am besten speichert man es unter WifiUtil.PS1:

# Warmup
ConvertTo-SecureString -AsPlainText -Force Hallo| ConvertFrom-SecureString

function Convert-HexStringToByteArray {
# http://www.sans.org/windows-security/2010/02/11/powershell-byte-array-hex-convert
################################################################
#.Synopsis
# Convert a string of hex data into a System.Byte[] array. An
# array is always returned, even if it contains only one byte.
#.Parameter String
# A string containing hex data in any of a variety of formats,
# including strings like the following, with or without extra
# tabs, spaces, quotes or other non-hex characters:
# 0x41,0x42,0x43,0x44
# \x41\x42\x43\x44
# 41-42-43-44
# 41424344
# The string can be piped into the function too.
################################################################
[CmdletBinding()]
Param ( [Parameter(Mandatory = $True, ValueFromPipeline = $True)] [String] $String )
#Clean out whitespaces and any other non-hex crud.
$String = $String.ToLower() -replace ‚[^a-f0-9\\\,x\-\:]‘,“

#Try to put into canonical colon-delimited format.
$String = $String -replace ‚0x|\\x|\-|,‘,‘:‘

#Remove beginning and ending colons, and other detritus.
$String = $String -replace ‚^:+|:+$|x|\\‘,“

#Maybe there’s nothing left over to convert…
if ($String.Length -eq 0) { ,@() ; return }

#Split string with or without colon delimiters.
if ($String.Length -eq 1)
{ ,@([System.Convert]::ToByte($String,16)) }
elseif (($String.Length % 2 -eq 0) -and ($String.IndexOf(":") -eq -1))
{ ,@($String -split ‚([a-f0-9]{2})‘ | foreach-object { if ($_) {[System.Convert]::ToByte($_,16)}}) }
elseif ($String.IndexOf(":") -ne -1)
{ ,@($String -split ‚:+‘ | foreach-object {[System.Convert]::ToByte($_,16)}) }
else
{ ,@() }
#The strange ",@(…)" syntax is needed to force the output into an
#array even if there is only one element in the output (or none).
}

function Get-WLANKeyFromProfile {
[CmdletBinding()]
param(
  [xml]$x)

if ($x -ne $null)
{
  $key=$x.WLANProfile.MSM.security.sharedKey.keyMaterial
         $eb=Convert-HexStringToByteArray $key
  $mbl=[System.Security.Cryptography.ProtectedData]::Unprotect($eb,$null,"LocalMachine")
  $key=[System.Text.Encoding]::ASCII.GetString($mbl)
  $key.Substring(0,$key.Length-1) # 0x0

}
}

function Get-SSIDFromProfile {
[CmdletBinding()]
param(
  [xml]$x)

if ($x -ne $null)
{
  $key=$x.WLANProfile.SSIDConfig.SSID.name
  $key
}
}

# C:\ProgramData\Microsoft\Wlansvc\Profiles\Interfaces

$wifi=Get-ChildItem -Recurse|Select-String -pattern "01000000D08C9DDF0115D1118C7A00C04FC297EB"
$wifi | Add-Member -Type ScriptProperty –Name SSID -Value { Get-SSIDFromProfile $this.XMLProfileFile }
$wifi | Add-Member -Type ScriptProperty -Name WlanKey -Value { Get-WLANKeyFromProfile $this.XMLProfileFile }
$wifi | Add-Member -Type ScriptProperty -Name XMLProfileFile -Value { [xml](Get-Content $this.path) }

Wenn man auf dem Desktop des Systemdienst ist, geht man in das Verzeichnis

CD C:\ProgramData\Microsoft\Wlansvc\Profiles\Interfaces

und ruft dort Powershell auf und importiert obiges Script mittels

Import-Module WifiUtil.PS1

Man hat nun in $Wifi alle auf dem System bekannten Wifi-Keys mit Angaben zu den SSIDs. Mittels Powershell 3.0 und Out-Gridview gibt es die perfekte Darstellung:

$wifi | Out-GridView

oder man verwendet die klassische Methode:

$wifi | select –Property SSID,WlanKey

So das war aber erst der Anfang mit dieser Methode lässt sich noch viel mehr anstellen.

Eingabeaufforderung mit lokalen Systemdienst Rechten unter Windows

29 Dezember 2012

Hin und wieder braucht man andere Rechte, als Admin hat man zwar auf alles Zugriff aber das System an sich darf noch viel mehr. Um schnell einen Wechsel mit Boardmitteln hinzubekommen, gibt es zwei geniale Befehle:

sc create ntauthcmd binpath= "cmd /K start" type= own type= interact

Obigen Befehl muss man natürlich als Admin absetzen und bekommt dann diesen Warnhinweis:

[SC] CreateService ERFOLG

WARNUNG:  Der Dienst "ntauthcmd" ist als interaktiver Dienst konfiguriert, desse
n Unterstützung abgelehnt wurde. Die einwandfreie Funktion des Dienstes ist nich
t gewährleistet.

Die Warnung kann aber einfach ignoriert werden, zum Starten gibt man:

sc start ntauthcmd

ein, wobei man wieder eine Warnung bekommt:

[SC] StartService FEHLER 1053:

Der Dienst antwortete nicht rechtzeitig auf die Start- oder Steuerungsanforderun
g.

Nun obacht geben auf die Taskleiste! Denn dort fängt auf einmal ein kleines Dienstsymbol mit Kamera und Drucker an zu blinken! Klickt man dieses an bekommt man einen Dialog mit folgender Meldung dargestellt:

[Window Title]
Erkennung interaktiver Dienste

[Main Instruction]
Von einem auf diesem Computer ausgeführten Programm wird versucht, eine Meldung anzuzeigen.

[Content]
Möglicherweise sind Informationen oder Berechtigungen erforderlich, damit das Programm den Vorgang abschließen kann.
Woran liegt das?

[V] Programmdetails einblenden  [Meldung anzeigen] [Später erneut nachfragen]

[Expanded Information]
Programme und Geräte, für die ein Eingreifen angefordert wird.

Nachricht:  C:\Windows\system32\cmd.exe
Programmpfad:  C:\Windows\system32\cmd.exe
Empfangen:  ‎Heute, ‎29. ‎Dezember ‎2012, ‏‎22:46:21

Dieses Problem tritt auf, wenn ein Programm nicht vollständig kompatibel mit Windows ist. Wenden Sie sich an den Programm- oder Gerätehersteller, um weitere Informationen zu erhalten.

Sieht alles dramatisch aus, aber führt zum Ziel! Also einfach “Meldung anzeigen” anklicken. Dann flackert bei den meisten Monitoren etwas die Darstellung weil der Grafikmodus geändert wird aber man kommt auf einen einsamen leeren Desktop mit einer Eingabeaufforderung. Es wird auch noch eine weitere Meldung dargestellt:

[Window Title]
Erkennung interaktiver Dienste

[Main Instruction]
Zurück zum Windows-Desktop

[Content]
Für Programm wird ein eigenes Fenster angezeigt, wenn noch weiteres Eingreifen erforderlich ist.

Wenn Sie Ihre Aktionen abgeschlossen haben oder wenn Sie zum Desktop zurückkehren möchten, klicken Sie auf "Jetzt zurück".

[Jetzt zurück]

Klickt man hier auf “Jetzt zurück” bleibt der separate Desktop erhalten und man kann hin und her wechseln. Der separate Desktop verschwindet erst, wenn man die Eingabeaufforderung schließt und dann zurückkehrt.

Frägt man an der Eingabeaufforderung mittels whoami nach, wer man ist, erhält man:

C:\windows\system32>whoami
nt-autorität\system

Da die Sache auf die Dauer auch etwas komisch aussieht, kann man den Dienst auch wieder entfernen:

sc delete ntauthcmd

Eine Alternative zu dieser Vorgehensweise wäre PSEXEC.EXE von den Sysinternals-Tool, aber die braucht man nicht wirklich: http://blogs.technet.com/b/askds/archive/2008/10/22/getting-a-cmd-prompt-as-system-in-windows-vista-and-windows-server-2008.aspx

Quelle: http://myitforum.com/cs2/blogs/cnackers/archive/2009/05/06/nt-authority-context-command-prompt.aspx

Probleme mit Windows Vista nach Umzug auf eine neue Festplatte mit 512e und Sektorgröße von 4K und Windows Update 0xC8000222 Fehler sowie EDB.LOG

26 August 2012

Auf einem Windows Vista SP2 System musste die Festplatte ausgetauscht werden. Dabei wurde mittels Ghost32 die Festplatte auf die neue Festplatte kopiert.

Leider funktionierte danach die Windowsupdatefunktion nicht mehr und es wurden ESENT Fehlermeldungen in der Anwendungslog aufgezeichnet:

Log Name: Application 
Source: ESENT 
Date: <date & time>
Event ID: 412 
Task Category: Logging/Recovery 
Level: Error 
Keywords: Classic 
User: N/A 
Computer: <computer name> 
Description: 
wuaueng.dll (936) SUS20ClientDataStore: Unable to read the header of logfile C:\Windows\SoftwareDistribution\DataStore\Logs\edb.log. Error -546.

Wenn man versuchte Windowsupdate versuchte aufzurufen bekam man die Fehlermeldung:

FATAL: Failed to initialize datastore, error = 0xC8000222.

Na prima. Die Problematik mit passendem Hotfix ist hier dokumentiert: http://support.microsoft.com/kb/2470478.

Doof an der Sache ist aber, wenn man versucht den Hotfix zu installieren, dann erhält man postwendend wieder den Fehler 0xC8000222! Was soll das?

Die Lösung brachte dann das Löschen der C:\Windows\SoftwareDistribution\DataStore\Logs\edb.log Datei! Danach konnte der Hotfix eingespielt werden sowie Windows Updates eingespielt werden.

Eine spätere Recherche brachte dann über diesen Artikel http://support.microsoft.com/kb/2510009 dann speziell für die Vista Variante noch diesen Hotfix ins Spiel: http://support.microsoft.com/kb/2553708. Dieser erlaubt mehr Infos auch in Windows Vista über fsutil zu erhalten.

Windows Server 2008 R2 und Windows 7 Probleme bei WSD Geräten beheben

25 Juni 2012

Wer mutig ist und neuere Netzwerkgeräte über WSD (Web Services for Devices, http://msdn.microsoft.com/en-us/library/aa826001.aspx) anschließt, der kann damit ganz blöd auf die Schnautze fallen, wenn das betreffende Gerät mal eben neu gestartet wird und die logische Verbindung vom Windowsrechner geflöten geht.

Dieser KB-Artikel könnte helfen, denn er sorgt dafür, dass die Kommunikation wieder hergestellt werden kann. http://support.microsoft.com/kb/2249684/en-US

Wenn es sich bei dem Gerät um einen Drucker handelt sollte die Druckerwarteschlange auch gleich noch neu gestartet werden und wenn ein Server involviert ist, bei dem auch gleich diese neu starten, wenn möglich.

Weitere Möglichkeiten beschreibt dieser Artikel: http://blogs.technet.com/b/askperf/archive/2008/02/11/ws2008-the-wsd-port-monitor.aspx

Telnet auf die schnelle aktiveren bzw. deaktivieren

1 Oktober 2011

Immer wieder braucht man mal schnell eine Telnet-Sitzung um auf einem NAS oder Router etwas in Ordnung bringen zu können. Aus Sicherheitsgründen ist aber seit Windows Vista Telnet zwar noch da muss aber vor der Verwendung erst installiert werden.

Man kann dies zwar über die Windows Funktionen aktiveren oder deaktivieren, aber das ist lästig. Als alter Commandliner ist die DISM-Variante die bessere:

dism /online /Enable-Feature /FeatureName:TelnetClient

und umgekehrt gehts natürlich auch wieder:

dism /online /Disable-Feature /FeatureName:TelnetClient

Gesehen bei: http://portal.sivarajan.com/2010/05/enable-or-disable-telnet-client.html

Wie deaktiviert man Autorun in Windows

27 September 2011

Da gibt es viele Möglichkeiten. Einen guten Überblick bietet dieser KB-Artikel, leider kommt Windows 7 zu kurz: http://support.microsoft.com/kb/967715/en-us

Was es sonst noch so zum Thema gibt, spezifisch zu USB-Sticks: http://blog.meine-firma-und-ich.de/usb-sticks-sicher-machen/