Datetime zu Unix-Timestamp umwandeln

Heute musste ich mir eine Funktion für Visual Basic Script schreiben, welche mir das aktuelle Datum und die Uhrzeit in einen Unixtimestamp konvertiert.

VB-Script:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Function DateTime2UnixTimestamp (intJahr,intMonat,intTag,intStunde,intMinute,intSekunde)
	' Fixe Variablen definieren
	intSekundenProTag = 24 * CLng(3600)
	datBeginnDatum = DateSerial(1970, 1, 1)
 
	' Zu Datum zusammensetzen
	datDatum = DateSerial(intJahr, intMonat, intTag)
	' Differenz seit 01.01.1970 in Tagen errechnen
	intTage = datDatum - datBeginnDatum
 
	' Zeitangebe in Sekunden umrechnen
	datDatumInSekunden = (intStunde * 3600) + (intMinute * 60) + intSekunde
 
	' Gesamtergebnis ausgeben
	DateTime2UnixTimestamp = ((intTage * intSekundenProTag) + datDatumInSekunden)
End Function
 
Wscript.echo DateTime2UnixTimestamp(2009, 12, 31, 13, 53, 24)

Ermitteln ob die Windows Powershell installiert ist

Anhand eines Registrywertes kann, z.B. mit dem folgenden Skript, geprüft werden, ob und in welcher Version die Windows Powershell installiert ist.

Hier ein VBS-Skript:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
' Objekt referenzieren
Set objWSH = CreateObject("WScript.Shell")
 
' Reg-Key definieren
strRegKeyInstalled = "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\Install"
 
' Verbindung zu Registry aufbauen und Wert auslesen
strWert = objWSH.RegRead(strRegKeyInstalled)
 
' Ergebnis püfen
If strWert = 1 then
	' Reg-Key für Version definieren
	strRegKeyVersion = "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\PowerShellEngine\PowerShellVersion"
 
' Verbindung zu Registry aufbauen und Version auslesen
	strVersion = objWSH.RegRead(strRegKeyVersion)
 
	' Meldung ausgeben
	MsgBox("Powershell (" & strVersion & ") ist installiert!")
Else
	MsgBox("Powershell ist NICHT installiert!")
End If

Benutzer aktivieren mit WinNT

Das folgende Codesnippet prüft ob ein bestimmter Benutzer auf einem vorgegebenen Computer deaktiviert ist und aktiviert das Benutzerkonto bei Bedarf wieder.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
' Variablen definieren
strBenutzer = "Gast"
strComputer = "."
 
' Objekte referenzieren
Set objBenutzer = GetObject("WinNT://" & strComputer & "/" & strBenutzer)
 
' Prüfen, ob Benutzer bereits gesperrt ist
If objBenutzer.AccountDisabled = True Then
	' Benutzer entsperren
	objBenutzer.AccountDisabled = False
	objBenutzer.SetInfo
End if
 
' Referenz löschen
Set objBenutzer = Nothing

ANSI-Zeichen im Internet Explorer ausgeben

Möchte man sich den ANSI-Zeichensatz anzeigen bzw. ausgeben lassen, so funktioniert dies ganz einfach mit einer Schleife und der Funktion “chr“. Ich nutze in diesem Beispiel den Internet Explorer als Anzeigemedium, um auch mal andere Objekte hier vorstellen zu können.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
' IE-Objekt referenzieren
Set ObjIE = CreateObject("InternetExplorer.Application")
 
' Fenstergroesse festlegen
ObjIE.width = 300
ObjIE.height = 600
 
' Fenster anzeigen und zu Adresse navigieren
ObjIE.Visible = 1
ObjIE.navigate "about:blank"
 
' Jedes ANSI-Zeichen durchlaufen
for i = 1 to 255
	strAusgabe = strAusgabe & " 0" & i & " = " & chr(i) & "<br />"
next
 
' Ausgabe
ObjIE.document.Body.InnerHTML = strAusgabe

Neuen Kontakt in Outlook anlegen

Einen Kontakt im Outlook-Adressbuch lässt sich mit den folgenden Zeilen ganz individuell anlegen. Ein Anwendungsfall könnte z.B. ein Import aus einem eigenen Dateiformat nach Outlook sein.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
' Konstanten festlegen
Const conOutlookContact = 2
 
' Objekt referenzieren
Set objOutlook = CreateObject("Outlook.Application")
 
' Neuen Kontakt erstellen
Set objKontakt = objOutlook.CreateItem(conOutlookContact)
 
' Kontakt-Eigenschaften setzen
objKontakt.FirstName = "Vorname"
objKontakt.LastName  = "Nachname"
objKontakt.JobTitle = "Berufsbezeichnung"
objKontakt.Email1Address = "E-Mail@Domain.de"
objKontakt.BusinessTelephoneNumber = "0000 12345678"
objKontakt.CompanyName = "Firmenname"
objKontakt.Categories = "Kollege"
 
' Speichern
objKontakt.Save

Info:
Weitere Properties: HomeAddressCity, HomeAddressCountry, HomeAddressPostalCode, HomeAddressStreet, HomeFaxNumber, HomeTelephoneNumber, MobileTelephoneNumber, PersonalHomePage, BusinessAddressStreet, BusinessAddressCity, BusinessAddressState, BusinessAddressPostalCode, BusinessAddressCountry, oder BusinessTelephoneNumber