Konvertierung VBE zu VBS

Problem
Wer kennt das nicht. Da hat sich ein gutes VB-Skript ausgedacht und um das ganze abzusichern, hat man das in eine VBE umgewandelt um das Ganze zu verschlüsseln. Irgendwie ist einem dann die originale Datei abhanden gekommen und man hat nur noch die kryptische VBE-Datei...wie jetzt an die Daten herankommen?

Lösung
Es gibt tatsächlich ein Skript, dass eine VBE-Datei wieder in eine VBS-Datei umwandelt. Das Originalskript gibt den unverschlüsselten Inhalt als MsgBox zurück. Ich habe mir erlaubt das Ganze etwas zu erweitern und lasse die entschlüsselte Datei als xxx_encrypted.txt im gleichen Verzeichnis wie die VBE-Datei abspeichern, wobei xxx für den originalen Dateinamen steht (z.B. test.vbe -> test.vbe_decrypted.txt). Hier nun das Skript...dieses einfach als decrypt_vbs.vbs speichern und die gewünschte VBE-Datei entweder per Drag&Drop fallen lassen oder per integrierter Browse-Funktion suchen.

option explicit
Dim oArgs, NomFichier
'Optional argument : the encoded filename
NomFichier=""
Set oArgs = WScript.Arguments
Select Case oArgs.Count
Case 0 'No Arg, popup a dialog box to choose the file
	NomFichier=BrowseForFolder("Choose an encoded file", &H4031, &H0011)
Case 1
	If Instr(oArgs(0),"?")=0 Then '-? ou /? => aide
		NomFichier=oArgs(0)
	End If
Case Else
	WScript.Echo "Too many parameters"
End Select
Set oArgs = Nothing

If NomFichier<>"" Then
	Dim fso
	Set fso=WScript.CreateObject("Scripting.FileSystemObject")
	If fso.FileExists(NomFichier) Then
		Dim fic,contenu,ofile
		Set fic = fso.OpenTextFile(NomFichier, 1)
		Contenu=fic.readAll
		fic.close
		Set fic=Nothing

		Const TagInit="#@~^" '#@~^awQAAA==
		Const TagFin="==^#~@" '& chr(0)
		Dim DebutCode, FinCode
		Do
			FinCode=0
			DebutCode=Instr(Contenu,TagInit)
			If DebutCode>0 Then
				If (Instr(DebutCode,Contenu,"==")-DebutCode)=10 Then 'If "==" follows the tag
					FinCode=Instr(DebutCode,Contenu,TagFin)
					If FinCode>0 Then
						Contenu=Left(Contenu,DebutCode-1) & _
						Decode(Mid(Contenu,DebutCode+12,FinCode-DebutCode-12-6)) & _
						Mid(Contenu,FinCode+6)
					End If
				End If
			End If
		Loop Until FinCode=0
		WScript.Echo contenu
		Set oFile = fso.OpenTextFile(NomFichier & "_decrypted.txt",2,True)
		oFile.WriteLine contenu
		oFile.close
	Else
		WScript.Echo Nomfichier & " not found"
	End If
	Set fso=Nothing
Else
	WScript.Echo "Please give a filename"
	WScript.Echo "Usage : " & wscript.fullname  & " " & WScript.ScriptFullName & " "
End If

Function Decode(Chaine)
	Dim se,i,c,j,index,ChaineTemp
	Dim tDecode(127)
	Const Combinaison="1231232332321323132311233213233211323231311231321323112331123132"

	Set se=WSCript.CreateObject("Scripting.Encoder")
	For i=9 to 127
		tDecode(i)="JLA"
	Next
	For i=9 to 127
		ChaineTemp=Mid(se.EncodeScriptFile(".vbs",string(3,i),0,""),13,3)
		For j=1 to 3
			c=Asc(Mid(ChaineTemp,j,1))
			tDecode(c)=Left(tDecode(c),j-1) & chr(i) & Mid(tDecode(c),j+1)
		Next
	Next
	'Next line we correct a bug, otherwise a ")" could be decoded to a ">"
	tDecode(42)=Left(tDecode(42),1) & ")" & Right(tDecode(42),1)
	Set se=Nothing

	Chaine=Replace(Replace(Chaine,"@&",chr(10)),"@#",chr(13))
	Chaine=Replace(Replace(Chaine,"@*",">"),"@!","<")
	Chaine=Replace(Chaine,"@$","@")
	index=-1
	For i=1 to Len(Chaine)
		c=asc(Mid(Chaine,i,1))
		If c<128 Then index=index+1
		If (c=9) or ((c>31) and (c<128)) Then
			If (c<>60) and (c<>62) and (c<>64) Then
				Chaine=Left(Chaine,i-1) & Mid(tDecode(c),Mid(Combinaison,(index mod 64)+1,1),1) & Mid(Chaine,i+1)
			End If
		End If
	Next
	Decode=Chaine
End Function

Function BrowseForFolder(ByVal pstrPrompt, ByVal pintBrowseType, ByVal pintLocation)
	Dim ShellObject, pstrTempFolder, x
	Set ShellObject=WScript.CreateObject("Shell.Application")
	On Error Resume Next
	Set pstrTempFolder=ShellObject.BrowseForFolder(&H0,pstrPrompt,pintBrowseType,pintLocation)
	BrowseForFolder=pstrTempFolder.ParentFolder.ParseName(pstrTempFolder.Title).Path
	If Err.Number<>0 Then BrowseForFolder=""
	Set pstrTempFolder=Nothing
	Set ShellObject=Nothing
End Function



Quelle: Decode all files encoded (original version)

Profil anlegen über VPN ohne DC Kontakt bei Anmeldung

Der Eintrag ist jetzt keine Wirkliche Problemlösung eher ein kleiner Trick , in meinem Job kann es vorkommen das für einen Außendienstmitarbeiter ein neues Profil auf dem Rechner angelegt werden muss. Wenn z.B. das lokale Profil defekt ist oder ein Kollege die Anpassung des Laptops auf den User verschlafen hat ;-) Nun stellt sich die Frage wie legt man ein lokales Profil an wenn man keinen Kontakt zum DC (Domain Controller) bei der Anmeldung hat ?

Ich hab es so gelöst :

Man meldet sich mit einem beliebigen lokalen User an dem Laptop an und startet eine VPN Verbindung ins Firmennetz , wenn diese steht führt man ein Programm mit dem "Ausführen als" Dialog aus , Windows XP legt in diesem Schritt das Profil des User auf der lokalen HDD mit den aktuellen Kontoinformationen an. Nun meldet man den lokalen User ab und man kann sich mit dem AD User ohne Probleme anmelden.

Weiterführende Links :

Aktivieren von RunAs

Alternativ dazu kann natürlich auch die Kommandozeile diese Aufgabe erfüllen -> RunAs

Flash Player Installation unter Internet Explorer 8 funktioniert nicht

Problem :

Bei der Installation des Adobe Flashplayers 10.x unter IE8 wird die Registrierkarte immer wieder geschlossen und eine Fehlermeldung erscheint mit einem Hinweis auf die Datenausführungsverhinderung

Lösung :

Extras, Internetoptionen und dann auf die Registerkarte Erweitert. Dann nach unten zu Sicherheit , deaktivieren der Option "Speicherschutz aktivieren, um das Risiko von Onlineangriffen zu verringern".

Powerpoint: Grafik-Auflösung ändern/erhöhen beim Exportieren einer Folie

Problem:
Wenn Sie eine Powerpoint-Folie als Grafik speichern, dann ist die Standardauflösung dieser Grafik nur 960 x 720 bei 96 dpi (horizontal und vertikal) .
Das ist unzureichend, wenn man diese weiter bearbeiten oder irgendwo importieren/einfügen möchte.

Lösung:
Die Auflösung läßt sich mit einem Registrykey im Zweig CurrentUSer anpassen.
Damit ist es jedem Benutzer möglich diese Einstellung vorzunehemen...auch ohne Admin-Rechte.

1.) Starten Sie regedit.exe
2.) Erweitern Sie den Registrierungsschlüssel für die von Ihnen verwendete PowerPoint-Version:
PowerPoint 2003
HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\PowerPoint\Options
PowerPoint 2007
HKEY_CURRENT_USER\Software\Microsoft\Office\12.0\PowerPoint\Options

3.) Zeigen Sie im Menü Bearbeiten auf Neu, und klicken Sie anschließend auf DWORD-Wert.
4.) Geben Sie ExportBitmapResolution ein, und drücken Sie die [EINGABETASTE].

Folgende Werte können Sie eingeben - Bitte beachten Sie, dass Sie den Wert DEZIMAL eingeben:

50 = 500 x 375 50 dpi
96 = 960 x 720 96 dpi (Standard)
100 = 1000 x 750 100 dpi
150 = 1500 x 1125 150 dpi
200 = 2000 x 1500 200 dpi
250 = 2500 x 1875 250 dpi
300 = 3000 x 2250 300 dpi

Hinweis: Der maximale Wert für die Auflösung, der von PowerPoint 2003 für Exporte unterstützt wird, ist 307 dpi.

Quelle: Microsoft Artikel-ID: 827745: So ändern Sie die Auflösung einer Folie, die Sie in PowerPoint als Grafik exportieren

ActiveDirectory Snapshot Recover Tool

Snapshot Recover Tool

Snapshot Recovery tool is command line interface tool which simplifies process of Active Directory deleted objects reanimation and populating these objects with data from Active Directory snapshot mounted in active instance.

This tool can be also used to populate existing (not deleted) object with data from Active Directory snapshot without performing actual un-delete operation. This functionality makes this tool perfect choice for performing quick AD object recovery to state from given point in time. In opposite to other recovery methods like using CSV or LDIF data export from snapshot this tool allows to complete whole operation in single command for multiple objects.

Snapshot Recovery Tool can be executed on following systems

Windows XP (execution only)
Windows Vista (execution only)
Windows 2003
Windows Server 2008 (except Server Core)
Snapshot Recovery Tool supports following Active Directory environments:

Windows 2003 (un-delete operation only)
Windows 2008 (un-delete and attribute recovery)
Windows 2008 R2 (un-delete and attribute recovery)
This tool requires .NET Framework 2.0 installed in system on which it is being executed. It will not run without .NET Framework 2.0.

Quelle: Tomek's DS World: Snapshot Recover Tool

Direkter Download vom Blog: Snapshot Recover Tool

VBS / WSH Pseudo Timestamp erstellen

Diese Funktion erstellt einen Pseudotimestamp , ist ganz gut wenn man Logfiles oder ähnliches schreiben möchte

Function PTimestamp()
Dim JAH,MON,SEK,STU,TAG,MIN
JAH = Year(Now)
If Month(Now) < 10 then
	mon = "0" & Month(Now)
Else
	mon = Month(Now)
End If
If Day(Now) < 10 then
	TAG = "0" & Day(Now)
Else
	TAG = Day(Now)
End If
If Hour(Now) < 10 then
	STU = "0" & Hour(Now)
Else
	STU = Hour(Now)
End If
If Minute(now) < 10 then
	MIN = "0" & Minute(now)
Else
	MIN = Minute(now)
End If
If Second(Now) < 10 then
	SEK = "0" & Second(Now)
Else
	SEK = Second(Now)
End If
PTimestamp = TAG & MON & JAH & STU & MIN & SEK 
End Function


Die Funktion kann dann z.B. so aufgerufen werden.


MsgBox "TEST_" & PTimestamp()

“Das einzig sichere System müsste ausgeschaltet, in einem versiegelten und von Stahlbeton ummantelten Raum und von bewaffneten Schutztruppen umstellt sein.”
Gene Spafford (Sicherheitsexperte)