Beim Start von Wordpad aus Powershell heraus kam es zu unerwarteten Problemen beim Aufruf.
Lösung:
(cmd /c write)
Problembeschreibung:
//windows Start/Suche: wordpad und
//windows Start/Suche: write
liefern beide:
C:\Program Files\Windows NT\Accessories\wordpad.exe
von der command shell aus kann aber nur write starten
Die Powershell startet mit write, write-object
Erst nach Hinzufügen des Pfades kennt Powershell auch Wordpad:
$env:path+=';C:\Program Files\Windows NT\Accessories'
wordpad
Offen ist, warum cmd write kennt und wordpad startet.
Dazu fragen wir mal:
((cmd /c echo %path%).split(';')|%{(gci -path $_ *.* 2>$null)})|?{$_.name -match '(\bwrite\..+)|(\bwordpad\..+)'}|select directory, name,length|ft -auto
Also gibt es unter c:\windows und c:\windows\system32 jeweils eine write.exe mit 10240 bytes. Das nach dem Start geöffnete Programm nennt sich wordpad. Auch get-process findet nur wordpad und nicht write.
Im oben genannten Zubehör Pfad findet man dann auch wordpad.exe:
gci -path 'C:\Program Files\Windows NT\Accessories' *.*
Es ist größer als 4MB.
Die letzte offene Frage ist somit, wie wird aus write wordpad, und woher wusste die Suche, dass bei der Suche nach Wordpad die Datei Write zu finden ist, welche letztlich wordpad aufruft??. Vermutlich ist write.exe nur eine Weiterleitung auf wordpad.exe.
Am Einfachsten ist somit die oben genannte Lösung. (cmd /c write)
Mittwoch, Juli 31, 2013
Dienstag, Juli 30, 2013
Scrollbars und Code bei blogger
Darstellung von Code in Div containern und Verwendung von Scrollbars.
Die die Darstellung von Code auf der Blogger Seite zeigt obiger Code.
Das erste Div bestimmt, wie groß die Code Box wird und wie sie aussieht.
Das zweite Div bestimmt, ab welcher Breite ein Text zum Umbruch führt. Auch kann man an dieser Stelle erst mit diesem zweiten Div das Overflow Attribut dazu animieren, einen horizontalen Schiebebalken zu aktivieren.
Das Pre Tag sorgt dafür, dass die Code Zeilenumbrüche und Leerzeichen wie vorgegeben dargestellt werden.
Das Code Tag markiert Anfang und Ende des Code und formatiert standardmäßig in einer monospaced Schriftart.
Den Code lässt man am Besten von einem Wysiwyg Editor wie Expression Web in HTML umwandeln, damit etwaige Steuerzeichen oder Tags als Text und Entities eingesetzt werden.
<div style="border: 1px solid brown; background-color:#eee;height: 144px; overflow: scroll; width: 435px;padding:3px;">
<div style="width:990px;">
<pre><code>Code...BlaBla........
</code>
</pre>
</div>
</div>
Das erste Div bestimmt, wie groß die Code Box wird und wie sie aussieht.
Das zweite Div bestimmt, ab welcher Breite ein Text zum Umbruch führt. Auch kann man an dieser Stelle erst mit diesem zweiten Div das Overflow Attribut dazu animieren, einen horizontalen Schiebebalken zu aktivieren.
Das Pre Tag sorgt dafür, dass die Code Zeilenumbrüche und Leerzeichen wie vorgegeben dargestellt werden.
Das Code Tag markiert Anfang und Ende des Code und formatiert standardmäßig in einer monospaced Schriftart.
Den Code lässt man am Besten von einem Wysiwyg Editor wie Expression Web in HTML umwandeln, damit etwaige Steuerzeichen oder Tags als Text und Entities eingesetzt werden.
Play Sound mit Powershell
Die folgenden Powershell Zeilen veranlassen Windows, eines der möglichen Logon Sounds abzuspielen.
Zuerst Powershell im Single Thread Apartment Modus starten: powershell -sta
Dann copy & paste
. . Getestet auf Windows7
Zuerst Powershell im Single Thread Apartment Modus starten: powershell -sta
Dann copy & paste
. . Getestet auf Windows7
#--------kopiere von hier-----------------
Cls;#Erstmal machen wir reinen Tisch
@"
https://www.ibjs.net 130730 - Zufällige Wiedergabe von Mediendateien in Powershell, FileSystem, Mediaplayer
Anregungen vom Guru http://powershell.com/cs/blogs/tobias/archive/2011/01/07/organizing-videos-and-music.aspx
sicherheitshalber die Powershell im STA Mode starten: powershell -sta
sonst sind Thread Fehler zu erwarten:
The calling thread cannot access this object because a different thread owns it
Der aufrufende Thread kann nicht auf dieses Objekt zugreifen,
da sich das Objekt im Besitz eines anderen Threads befindet.
"@
If ($host.Runspace.ApartmentState -eq 'STA')
{
#Windows verwaltet FileSystemInfo Objekte, die man z.B. mit gci ermittelt
$Suchwort="Logon"# Logon,Balloon, Default, Ding, Error, Notify, etc
$files=(gci -path $env:windir/media -recurse "*$Suchwort*" -include *.wav,*.mp3)
$file=$files|get-random -count 1
#Mit dem shell-object hat man Zugriff auf die zusätzlichen Dateieigenschaften für ein FileSystemObjekt
$shell=New-Object -COMObject Shell.Application
#Man benötigt die shellfolder, welche Träger der Eigenschaften sind
$shellfolder=$shell.namespace($file.DirectoryName)
#Die Eigenschaften beziehen sich auf die items des shellfolders, den shellfile
$shellfile=$shellfolder.parsename($file.Name)
#msdn nennt 289 Eigenschaften: http://msdn.microsoft.com/en-us/library/windows/desktop/bb787870(v=vs.85).aspx
#die man mit getdetailsof anzeigen kann
0..288|?{ $shellfolder.GetDetailsOf($shellfile, $_) }| %{'{0,-4}{1,-24}{2}' -f $_,$shellfolder.GetDetailsOf($null, $_), $shellfolder.GetDetailsOf($shellfile, $_)}
#für den Medienplayer ist vielleicht die 27, die Liedlänge interessant
$Länge=([timespan]$shellfolder.GetDetailsOf($shellfile,27)).totalseconds
if ($Länge -gt 5) {$Länge=5} #kleine Bremse
#nun kann man den Medienplayer zum Abspielen bemühen
Add-Type -AssemblyName presentationCore
$mediaPlayer = New-Object system.windows.media.mediaplayer
$mediaPlayer.open([uri]"$($file.fullname)")
$mediaPlayer.Play()
#Warte bis Lied aus
Start-Sleep -Seconds ([int]($Länge))
$mediaPlayer.Stop()
#Ende der Vorstellung
}
Else {
"Starte die Powershell im Single Thread Appartment Modus mit: powershell -sta"
}
#Ende -------- kopiere bis hier !!!
Mittwoch, Juli 24, 2013
ASCII Zeichen in Powershell
32..127|%{"{0,10}{1,10}{1,10:x}" -f [char]$_,$_}
Ich liebe Powershell!!!
Vielleicht finde ich nicht immer den kürzesten Weg, aber ein Weg findet sich meistens.
Ich liebe Powershell!!!
Vielleicht finde ich nicht immer den kürzesten Weg, aber ein Weg findet sich meistens.
Montag, Juli 15, 2013
Mein WederNoch
Vor einem Jahr habe ich mir ein Smartphone Sony Xperia P gekauft. Eigentlich ist es ein ganz tolles Gerät, wenn man von den vielen Unzulänglichkeiten absieht.
Zur Verzweiflung bringt mich, dass regelmäßig eingehende Anrufe zwar zu hören und zu sehen sind, die Annahme des Anrufes durch die vorgeschriebene Wischbewegung aber unmöglich ist. Ein unmittelbar folgender Rückruf durch mich ist dann problemlos möglich.
Zur großen Verwunderung macht sich das Gerät selbständig, indem es ohne willentliche Aufforderung Anrufe tätigt. Wahrscheinlich nimmt es bei geöffneter Telefonapplikation die erstbeste Gelegenheit zur Anwahl eines zufällig auf dem Display stehenden Kontaktes wahr.
Das erste Update des Betriebssystem im Sommer letzten Jahres führte zu einer Änderung des WiFi Verhaltens. Ein Wechsel des Routers war nur nach Reset des Gerätes möglich. Erst nach weitern vier Monaten gab es dann eine in diesem Punkt korrigierte Version.
Meine Frau wird niemals ein solches Gerät haben wollen. Sobald sie das Gerät in der Hand hat, löst sie unbewusst Aktionen am Gerät aus. Es verschwindet die Fotoanzeige, es wird etwas gewählt, also absolut unfreundlich für leicht technik-distanzierte Anwender.
Als Fotoapparat gibt es sehr gute Bilder, aber nur bei guter Beleuchtung. In lichtschwachen Situationen ist ein richtiger Fotoapparat sicher besser.
Als Navigationsgerät im Auto hat es bei einer längeren Autobahnfahrt die ersten 400 km gut mitgehalten, hat dann im entscheidenden Moment nach Abfahrt von der Autobahn und Einfahrt in unbekanntes Stadtgebiet wegen Überhitzung aufgegeben.
Fazit, das Gerät ist ganz nett, aber weder ein richtiges Telefon, noch ein Fotoapparat oder Navigationsgerät. Es ist eben ein WederNoch.
Zur Verzweiflung bringt mich, dass regelmäßig eingehende Anrufe zwar zu hören und zu sehen sind, die Annahme des Anrufes durch die vorgeschriebene Wischbewegung aber unmöglich ist. Ein unmittelbar folgender Rückruf durch mich ist dann problemlos möglich.
Zur großen Verwunderung macht sich das Gerät selbständig, indem es ohne willentliche Aufforderung Anrufe tätigt. Wahrscheinlich nimmt es bei geöffneter Telefonapplikation die erstbeste Gelegenheit zur Anwahl eines zufällig auf dem Display stehenden Kontaktes wahr.
Das erste Update des Betriebssystem im Sommer letzten Jahres führte zu einer Änderung des WiFi Verhaltens. Ein Wechsel des Routers war nur nach Reset des Gerätes möglich. Erst nach weitern vier Monaten gab es dann eine in diesem Punkt korrigierte Version.
Meine Frau wird niemals ein solches Gerät haben wollen. Sobald sie das Gerät in der Hand hat, löst sie unbewusst Aktionen am Gerät aus. Es verschwindet die Fotoanzeige, es wird etwas gewählt, also absolut unfreundlich für leicht technik-distanzierte Anwender.
Als Fotoapparat gibt es sehr gute Bilder, aber nur bei guter Beleuchtung. In lichtschwachen Situationen ist ein richtiger Fotoapparat sicher besser.
Als Navigationsgerät im Auto hat es bei einer längeren Autobahnfahrt die ersten 400 km gut mitgehalten, hat dann im entscheidenden Moment nach Abfahrt von der Autobahn und Einfahrt in unbekanntes Stadtgebiet wegen Überhitzung aufgegeben.
Fazit, das Gerät ist ganz nett, aber weder ein richtiges Telefon, noch ein Fotoapparat oder Navigationsgerät. Es ist eben ein WederNoch.
Powershell - Driverquery
Im Netz findet sich ein schönes Beispiel für die Verwendung eines command-shell Befehls zur Treiberanzeige mit Powershell:
http://powershell.com/cs/blogs/tips/archive/2011/12/20/finding-driver-information.aspx
driverquery.exe /v /FO CSV | ConvertFrom-CSV #| Select-Object 'Display Name', 'Start Mode', 'Paged Pool(bytes)', Path
Dummerweise wurden bei der deutschen Übersetzung beide Felder "State" und "Status" mit "Status" übersetzt, was ConvertFrom-CSV als Fehler interpretiert
Hier des Rätsels Lösung, Korrektur des Headers:
http://powershell.com/cs/blogs/tips/archive/2011/12/20/finding-driver-information.aspx
driverquery.exe /v /FO CSV | ConvertFrom-CSV #| Select-Object 'Display Name', 'Start Mode', 'Paged Pool(bytes)', Path
Dummerweise wurden bei der deutschen Übersetzung beide Felder "State" und "Status" mit "Status" übersetzt, was ConvertFrom-CSV als Fehler interpretiert
Hier des Rätsels Lösung, Korrektur des Headers:
driverquery -v -fo
csv|convertfrom-csv -header ((driverquery -v -fo
csv)[0].replace('"','').replace('Status,Status','State,Status').split(','))|select
Anzeigename,Startmodus,'Ausgelagerter Pool (Bytes)',Pfad|sort startmodus,anzeigename #|out-gridview
Kommentar:
1. ausführliche Ausgabe von driverquery im csv Format
2. Übernahme der CSV Daten in ein Powershellobjekt
3. dazu den Header aus der ersten Zeile der CSV Daten korrigieren
4. entferne zuerst die Gänsefüßchen
5. ersetze dann 'Status,Status' durch 'State,Status'
6. zeige dann die Felder aus dem Beispiel durch Angabe ihrer deutschen Feldnamen an
7. zusätzlich ist ein Sortieren nicht schlecht
8. Wer will, kann auch noch das GridView bemühen
Übrigens scheint es keine gute Idee zu sein, alles übersetzen zu wollen.
Kommentar:
1. ausführliche Ausgabe von driverquery im csv Format
2. Übernahme der CSV Daten in ein Powershellobjekt
3. dazu den Header aus der ersten Zeile der CSV Daten korrigieren
4. entferne zuerst die Gänsefüßchen
5. ersetze dann 'Status,Status' durch 'State,Status'
6. zeige dann die Felder aus dem Beispiel durch Angabe ihrer deutschen Feldnamen an
7. zusätzlich ist ein Sortieren nicht schlecht
8. Wer will, kann auch noch das GridView bemühen
Übrigens scheint es keine gute Idee zu sein, alles übersetzen zu wollen.
Sonntag, Juli 07, 2013
Auch das gibt's: XP Backup restore auf Windows7
Sinn und Zweck von Backups werden sogar von Microsoft in Frage gestellt. Ursprünglich war es nicht vorgesehen, mit XP erstellte backups zum restore unter Windows7 bereitzustellen. Nach einigem Murren der Anwender wurde zumindest für einen Teil der Anwender eine Lösung veröffentlicht. Unter dem Namen Windows6.1-KB974674-x64.msu findet sich bei Windows Update eine NTBackup-RestoreUtility genannte Software, die wenigstens den Anwendern der Ultimate oder Enterprise Version von Windows7 einen Blick in die Vergangenheit ermöglicht. Nur diesen Nutzern ermöglicht Microsoft die zur Installation erforderliche Umstellung auf die englische Sprachversion. Alle andern blitzen bei der Installation mit einer schnöden Fehlermeldung ab. Aber vielleicht gibt es noch irgendwo einen Patch für den Patch?
Freitag, Juli 05, 2013
Easytransfer von XP zu Windows 7
Easytransfer
Für die Mitnahme der Einstellungen des alten PC auf den Neuen bietet diese Freeware Unterstützung an.
Für die Mitnahme der Einstellungen des alten PC auf den Neuen bietet diese Freeware Unterstützung an.
Donnerstag, Juli 04, 2013
run as system
das geht mit psexec aus den sysinternals
psexec -i -s powershell.exe
zum Start von psexec braucht man aber die "normalen" Admin Rechte
Hauptanwendung von psexec ist aber die remote-Ausführung von Programmen auch die interaktive Ausführung einer remoteshell.
psexec -i -s powershell.exe
zum Start von psexec braucht man aber die "normalen" Admin Rechte
Hauptanwendung von psexec ist aber die remote-Ausführung von Programmen auch die interaktive Ausführung einer remoteshell.
Outlook Suche in allen Postfächern
Outlook2013:
Erst wenn ein Postfachelement, wie der Posteingang eine beliebigen Postfachs, aktiviert wird, gibt Outlook die Aktion \\Outlook\Start\Suchen\E-Mail_filtern frei. Bei anderen aktiven Elementen bleibt die Aktion ausgegraut.
Erst wenn ein Postfachelement, wie der Posteingang eine beliebigen Postfachs, aktiviert wird, gibt Outlook die Aktion \\Outlook\Start\Suchen\E-Mail_filtern frei. Bei anderen aktiven Elementen bleibt die Aktion ausgegraut.
Tools - msconfig
Windows 7 bietet folgende Konfigurationsmöglichkeiten an:
\\start\ausführen\msconfig
Allgemein - Systemstart, Diagnosestart, Benutzerdef. Start
Start: Startoptionen, GUI, Protokollierung, Startinformationen
Dienste: Services
Systemstart: HKCU, HKLM Run, \\S1\...Startup,
Tools:
Info;Windows Versionmsinformation;C:\Windows\system32\winver.exe
UAC Einstellungen; Ändert Benutzerkontensteuerung;C:\Windows\System32\UserAccountControlSettings.exe
Wartungscenter;;C:\Windows\System32\UserAccountControlSettings.exe
Windows-Problembehandlung;;C:\Windows\System32\control.exe /name Microsoft.Troubleshooting
Computereinstellungen;Systemeinstellungen und -Komponenten;C:\Windows\System32\compmgmt.msc
Systeminformationen;Hard- und Softwareeinstellungen;C:\Windows\System32\msinfo32.exe
Ereignisanzeige;;C:\Windows\System32\eventvwr.exe
Programme;;C:\Windows\System32\appwiz.cpl
Systemeigenschaften;Basisinformationen wie Leistungsindex;C:\Windows\System32\control.exe system
Interneteigenschaften;;C:\Windows\System32\inetcpl.cpl
Internetprotokollkonfiguration;;C:\Windows\System32\cmd.exe /k %windir%\system32\ipconfig.exe
Leistungsüberwachung;;C:\Windows\System32\perfmon.exe
Ressourcenmonitor;;C:\Windows\System32\resmon.exe
Task-Manager;;C:\Windows\System32\taskmgr.exe
Eingabeaufforderung;;C:\Windows\System32\cmd.exe
Registrierungseditor;;C:\Windows\System32\regedt32.exe
Remoteunterstützung;Freund über Internet anfragen;C:\Windows\System32\msra.exe
Systemwiederherstellung;Früheren Zustand wiederherstellen;C:\Windows\System32\rstrui.exe
\\start\ausführen\msconfig
Allgemein - Systemstart, Diagnosestart, Benutzerdef. Start
Start: Startoptionen, GUI, Protokollierung, Startinformationen
Dienste: Services
Systemstart: HKCU, HKLM Run, \\S1\...Startup,
Tools:
Info;Windows Versionmsinformation;C:\Windows\system32\winver.exe
UAC Einstellungen; Ändert Benutzerkontensteuerung;C:\Windows\System32\UserAccountControlSettings.exe
Wartungscenter;;C:\Windows\System32\UserAccountControlSettings.exe
Windows-Problembehandlung;;C:\Windows\System32\control.exe /name Microsoft.Troubleshooting
Computereinstellungen;Systemeinstellungen und -Komponenten;C:\Windows\System32\compmgmt.msc
Systeminformationen;Hard- und Softwareeinstellungen;C:\Windows\System32\msinfo32.exe
Ereignisanzeige;;C:\Windows\System32\eventvwr.exe
Programme;;C:\Windows\System32\appwiz.cpl
Systemeigenschaften;Basisinformationen wie Leistungsindex;C:\Windows\System32\control.exe system
Interneteigenschaften;;C:\Windows\System32\inetcpl.cpl
Internetprotokollkonfiguration;;C:\Windows\System32\cmd.exe /k %windir%\system32\ipconfig.exe
Leistungsüberwachung;;C:\Windows\System32\perfmon.exe
Ressourcenmonitor;;C:\Windows\System32\resmon.exe
Task-Manager;;C:\Windows\System32\taskmgr.exe
Eingabeaufforderung;;C:\Windows\System32\cmd.exe
Registrierungseditor;;C:\Windows\System32\regedt32.exe
Remoteunterstützung;Freund über Internet anfragen;C:\Windows\System32\msra.exe
Systemwiederherstellung;Früheren Zustand wiederherstellen;C:\Windows\System32\rstrui.exe
Abonnieren
Posts (Atom)