<?xml version="1.0" encoding="utf-8" ?>

<rss version="2.0" 
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:admin="http://webns.net/mvcb/"
   xmlns:dc="http://purl.org/dc/elements/1.1/"
   xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
   xmlns:wfw="http://wellformedweb.org/CommentAPI/"
   xmlns:content="http://purl.org/rss/1.0/modules/content/"
   >
<channel>
    
    <title>Hope This Helps - Scripts + Code Schnipsel</title>
    <link>http://hope-this-helps.de/serendipity/</link>
    <description>IT Tipps</description>
    <dc:language>de</dc:language>
    <generator>Serendipity 1.5.5 - http://www.s9y.org/</generator>
    
    

<item>
    <title>Windows-Firewall: WMI für Firewall </title>
    <link>http://hope-this-helps.de/serendipity/archives/317-Windows-Firewall-WMI-fuer-Firewall.html</link>
            <category>Clients</category>
            <category>Server</category>
            <category>TCP/IP</category>
            <category>VBS / WSH</category>
            <category>Windows</category>
            <category>WMI / Powershell</category>
    
    <comments>http://hope-this-helps.de/serendipity/archives/317-Windows-Firewall-WMI-fuer-Firewall.html#comments</comments>
    <wfw:comment>http://hope-this-helps.de/serendipity/wfwcomment.php?cid=317</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://hope-this-helps.de/serendipity/rss.php?version=2.0&amp;type=comments&amp;cid=317</wfw:commentRss>
    

    <author>nospam@example.com (Ralf Entner)</author>
    <content:encoded>
    &lt;strong&gt;Problem&lt;/strong&gt;&lt;br /&gt;
Man möchte mittels WMI auf einen PC zugreifen wir jedoch von der Firewall blockiert.&lt;br /&gt;
Die Firewall-Konfiguration stellt den WMI-Dienst nicht zur Verfügung um diesen freizugeben.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Lösung&lt;/strong&gt;&lt;br /&gt;
Die einfachste Möglichkeit die Freigabe zu aktivieren stellt der netsh-Befehl zur Verfügung.&lt;br /&gt;
Einfach in der Shell des Remote-Computers folgenden Befehl ausführen:&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote&gt;netsh firewall set service RemoteAdmin enable&lt;/blockquote&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Quelle: &lt;/strong&gt;&lt;a href=&quot;http://www.poweradmin.com/help/enableWMI.aspx&quot;&gt;poweradmin.com: Enable WMI (Windows Management Instrumentation)&lt;/a&gt; 
    </content:encoded>

    <pubDate>Mon, 12 Dec 2011 09:40:21 +0100</pubDate>
    <guid isPermaLink="false">http://hope-this-helps.de/serendipity/archives/317-guid.html</guid>
    
</item>
<item>
    <title>WSH/WMI: USB-Stick (Removable Devices) ermiteln</title>
    <link>http://hope-this-helps.de/serendipity/archives/307-WSHWMI-USB-Stick-Removable-Devices-ermiteln.html</link>
            <category>WMI / Powershell</category>
    
    <comments>http://hope-this-helps.de/serendipity/archives/307-WSHWMI-USB-Stick-Removable-Devices-ermiteln.html#comments</comments>
    <wfw:comment>http://hope-this-helps.de/serendipity/wfwcomment.php?cid=307</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://hope-this-helps.de/serendipity/rss.php?version=2.0&amp;type=comments&amp;cid=307</wfw:commentRss>
    

    <author>nospam@example.com (Ralf Entner)</author>
    <content:encoded>
    &lt;strong&gt;Problem:&lt;/strong&gt;&lt;br /&gt;
Um z.B. ein Backup-Lösung auf einen USB-Wechseldatenträger (Stick) zu ermöglichen, möchte man prüfen, ob ein &quot;Removable Device&quot; angeschlossen ist.&lt;br /&gt;
außerdem soll geprüft werden, ob es mehr als ein USB-Device gibt.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Lösung:&lt;/strong&gt;&lt;br /&gt;
Das nachfolgende Skript überprüft per WMI, ob &quot;Removable Devices&quot; angeschlossen sind. Sollten welche gefunden sein, wird die Anzahl, der Volumename und der Laufwerksbuchste davon ermittelt.&lt;br /&gt;
&lt;blockquote&gt;Option Explicit&lt;br /&gt;
&lt;br /&gt;
Dim WshShell&lt;br /&gt;
Dim strComputer, objWMIService, colItems, objItem&lt;br /&gt;
Dim USB, USize, UName, UAnzahl, Antwort&lt;br /&gt;
Dim BackupDir, UDesktop, UDateien, UFavoriten&lt;br /&gt;
&lt;br /&gt;
set WshShell = WScript.CreateObject(&quot;WScript.Shell&quot;)&lt;br /&gt;
&lt;br /&gt;
&#039;Setzt USB-Variablen zurück&lt;br /&gt;
USB =&quot;&quot;&lt;br /&gt;
UAnzahl = 0&lt;br /&gt;
USize = 0&lt;br /&gt;
UName = &quot;&quot;&lt;br /&gt;
&lt;br /&gt;
&#039;Ermittlung von Anzahl und Eigenschaften Wechseldatenträger&lt;br /&gt;
strComputer = &quot;.&quot;&lt;br /&gt;
Set objWMIService = GetObject(&quot;winmgmts:\\&quot; &amp;amp; strComputer &amp;amp; &quot;\root\cimv2&quot;)&lt;br /&gt;
Set colItems = objWMIService.ExecQuery(&quot;Select * from Win32_LogicalDisk&quot;)&lt;br /&gt;
&lt;br /&gt;
For Each objItem in colItems&lt;br /&gt;
&lt;br /&gt;
If objItem.DriveType = 2 Then &lt;br /&gt;
USB = objItem.Name &amp;amp; &quot;\&quot;&lt;br /&gt;
UName = objItem.VolumeName &lt;br /&gt;
USize = Int(objItem.FreeSpace /1048576)&lt;br /&gt;
UAnzahl = UAnzahl + 1 &#039;Anzahl WEchselmedien ermitteln&lt;br /&gt;
End if&lt;br /&gt;
&lt;br /&gt;
Next&lt;br /&gt;
&lt;br /&gt;
&#039;Überprüft, ob mehr als ein USB-Stick angesteckt ist&lt;br /&gt;
If UAnzahl &gt; 1 Then&lt;br /&gt;
MsgBox &quot;Mehrere USB-Sticks gefunden!&quot; &amp;amp; vbCRLF &amp;amp; &quot;Bitte nur Sicherungs-Stick einstecken und Sicherung neu starten.&quot;, vbOKOnly + vbCritical, &quot;Mehrere USB-Sticks gefunden&quot;&lt;br /&gt;
WScript.Quit&lt;br /&gt;
End if&lt;br /&gt;
&lt;br /&gt;
&#039;Überprüfen ob ein USB-Stick angesteckt ist&lt;br /&gt;
If USB = &quot;&quot; Then &lt;br /&gt;
MsgBox &quot;KEIN USB-Stick gefunden!&quot; &amp;amp; vbCrLf &amp;amp; &quot;Bitte überprüfen und Sicherung neu starten!&quot;, vbOKOnly + vbCritical, &quot;USB-Fehler&quot;&lt;br /&gt;
WScript.Quit&lt;br /&gt;
End If&lt;/blockquote&gt; 
    </content:encoded>

    <pubDate>Mon, 26 Sep 2011 15:57:28 +0200</pubDate>
    <guid isPermaLink="false">http://hope-this-helps.de/serendipity/archives/307-guid.html</guid>
    
</item>
<item>
    <title>CreateBackup.exe erstellt ein Backup eines Ordner</title>
    <link>http://hope-this-helps.de/serendipity/archives/302-CreateBackup.exe-erstellt-ein-Backup-eines-Ordner.html</link>
            <category>Scripts + Code Schnipsel</category>
            <category>Sonstiges</category>
            <category>VBS / WSH</category>
    
    <comments>http://hope-this-helps.de/serendipity/archives/302-CreateBackup.exe-erstellt-ein-Backup-eines-Ordner.html#comments</comments>
    <wfw:comment>http://hope-this-helps.de/serendipity/wfwcomment.php?cid=302</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://hope-this-helps.de/serendipity/rss.php?version=2.0&amp;type=comments&amp;cid=302</wfw:commentRss>
    

    <author>nospam@example.com (Christopher Pope)</author>
    <content:encoded>
    CreateBackup.exe erstellt ein Backup eines Ordner und zippt die Zieldatei nach einem eingestellten Muster&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote&gt;&lt;br /&gt;
Hilfe zu CreateBackup.exe&lt;br /&gt;
&lt;br /&gt;
/H      Zeigt diese Hilfe an&lt;br /&gt;
/Q:     Definiert die Quelle der Dateien&lt;br /&gt;
/Z:     Definiert das Ziel des Backups&lt;br /&gt;
/N:     Definiert das Muster des Dateinamens&lt;br /&gt;
&lt;br /&gt;
/N:DT   DT steht für DateTime (Standard)&lt;br /&gt;
/N:D    D steht für Datum&lt;br /&gt;
&lt;br /&gt;
 Beispiele :&lt;br /&gt;
&lt;br /&gt;
Erstellt eine Backupdatei mit dem Namen TagMonatJahr_StundeMinuteSekunde.zip&lt;br /&gt;
&lt;br /&gt;
CreateBackup.exe /Q:&quot;C:\Quelle Test&quot; /Z:C:\test /N:DT&lt;br /&gt;
&lt;br /&gt;
Erstellt eine Backupdatei mit dem Namen TagMonatJahr.zip&lt;br /&gt;
&lt;br /&gt;
CreateBackup.exe /Q:C:\Quelle /Z:C:\test /N:D&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Erstellt von Christopher Pope | NO WARRANTY !! | Freeware&lt;br /&gt;
&lt;/blockquote&gt;&lt;br /&gt;
&lt;br /&gt;
Download : &lt;a href=&quot;http://hope-this-helps.de/serendipity/uploads/Anwendungen/CreateBackup.exe&quot; title=&quot;CreateBackup.exe&quot; target=&quot;_blank&quot;&gt;CreateBackup.exe&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Source Code : &lt;a href=&quot;http://hope-this-helps.de/serendipity/index.php?serendipity[subpage]=Downloads&amp;thiscat=13&amp;file=57&quot;&gt;nur für registrierte Mitglieder&lt;/a&gt; 
    </content:encoded>

    <pubDate>Wed, 24 Aug 2011 10:56:53 +0200</pubDate>
    <guid isPermaLink="false">http://hope-this-helps.de/serendipity/archives/302-guid.html</guid>
    
</item>
<item>
    <title>Windows XP - WMI Abfrage auf Win32_Product ( Error 80041001 ) funktioniert nicht</title>
    <link>http://hope-this-helps.de/serendipity/archives/301-Windows-XP-WMI-Abfrage-auf-Win32_Product-Error-80041001-funktioniert-nicht.html</link>
            <category>Scripts + Code Schnipsel</category>
            <category>VBS / WSH</category>
            <category>WMI / Powershell</category>
    
    <comments>http://hope-this-helps.de/serendipity/archives/301-Windows-XP-WMI-Abfrage-auf-Win32_Product-Error-80041001-funktioniert-nicht.html#comments</comments>
    <wfw:comment>http://hope-this-helps.de/serendipity/wfwcomment.php?cid=301</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://hope-this-helps.de/serendipity/rss.php?version=2.0&amp;type=comments&amp;cid=301</wfw:commentRss>
    

    <author>nospam@example.com (Christopher Pope)</author>
    <content:encoded>
    &lt;strong&gt;Problem :&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
Sie möchten über WMI die installierte Software ermitteln , die hierzu gehörige Klasse Win32_Product läuft allerdings in den Fehler ( 80041001 ) , die Lösung hierzu ist ein Patch von Microsoft den man allerdings direkt anfordern muss. Das Problem selbst ist bei Windows XP und Windows Server 2003 bekannt.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Lösung :&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
Installieren des von Microsoft bereitgestellten Patches für das jeweilige System.&lt;br /&gt;
&lt;br /&gt;
Download des Patches für Windows Server 2003 : &lt;a href=&quot;http://support.microsoft.com/kb/972189&quot; title=&quot;WMI Win32_Product Hotfix für Windows Server 2003&quot;&gt;http://support.microsoft.com/kb/972189&lt;/a&gt;&lt;br /&gt;
Download des Patches für Windows XP : &lt;a href=&quot;http://support.microsoft.com/kb/970553&quot; title=&quot;WMI Win32_Product Hotfix für Windows XP&quot;&gt;http://support.microsoft.com/kb/970553&lt;/a&gt;             &lt;br /&gt;
&lt;a href=&quot;http://hope-this-helps.de/serendipity/index.php?serendipity[subpage]=Downloads&amp;thiscat=14&amp;file=56&quot; title=&quot;direkter Download&quot;&gt;WMI Win32_Product Hotfix für Windows XP&lt;/a&gt; 
    </content:encoded>

    <pubDate>Wed, 24 Aug 2011 08:53:05 +0200</pubDate>
    <guid isPermaLink="false">http://hope-this-helps.de/serendipity/archives/301-guid.html</guid>
    
</item>
<item>
    <title>Outlook VBA: Importieren von mehreren VCF-Dateien in Outlook-Kontakte</title>
    <link>http://hope-this-helps.de/serendipity/archives/300-Outlook-VBA-Importieren-von-mehreren-VCF-Dateien-in-Outlook-Kontakte.html</link>
            <category>Outlook</category>
            <category>VBA</category>
    
    <comments>http://hope-this-helps.de/serendipity/archives/300-Outlook-VBA-Importieren-von-mehreren-VCF-Dateien-in-Outlook-Kontakte.html#comments</comments>
    <wfw:comment>http://hope-this-helps.de/serendipity/wfwcomment.php?cid=300</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://hope-this-helps.de/serendipity/rss.php?version=2.0&amp;type=comments&amp;cid=300</wfw:commentRss>
    

    <author>nospam@example.com (Ralf Entner)</author>
    <content:encoded>
    &lt;strong&gt;Problem:&lt;/strong&gt;&lt;br /&gt;
Sie haben viele Kontakte als VCF-Dateien gespeichert und möchten diese alle in Ihre Outlook-Kontakte importieren. Generell kann man nur eine einzelne VCF-Datei öffrenn und diese dann in den Kontakten speichern, was eventuell sehr aufwendig sein kann, wenn es sich um einige hundert Kontakte handelt.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Lösung:&lt;/strong&gt;&lt;br /&gt;
Hier finden Sie ein Skript, dass im Outlook-VBA verfasst ist, welches alle VCF-Dateien, die im Ordner &quot;C:\VCARDS&quot; liegen, automatsich in die Outlook-Kontakte importiert. Einfach im Outlook ALT+F11 drücken und den Code hineinkopieren und das Skript abstarten.&lt;br /&gt;
Hinweis: Die VCF-Dateien werden in den persönlichen Kontakte-Ordner gespeichert. Bitte diesen vorher sichern und leeren, wenn man ein vermischen der Kontakte nicht wünscht.&lt;br /&gt;
Selbstverständlich kann der Pfad zu den VCF-Dateien im Skript angepaßt werden.&lt;br /&gt;
Ich selbst habe damit 880 VCF-Dateien in mein Outlook problemlos importieren können! Zuvor hatte ich es mit einigen Freetools vergeblich versucht!&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;blockquote&gt;Sub OpenSaveVCard()&lt;br /&gt;
   &lt;br /&gt;
Set fso = CreateObject(&quot;Scripting.FileSystemObject&quot;)&lt;br /&gt;
Set fsDir = fso.GetFolder(&quot;C:\VCARDS&quot;)&lt;br /&gt;
&lt;br /&gt;
For Each fsFile In fsDir.Files&lt;br /&gt;
&lt;br /&gt;
    strVCName = &quot;C:\VCARDS\&quot; &amp;amp; fsFile.Name&lt;br /&gt;
    Set objOL = CreateObject(&quot;Outlook.Application&quot;)&lt;br /&gt;
    Set colInsp = objOL.Inspectors&lt;br /&gt;
        If colInsp.Count = 0 Then&lt;br /&gt;
&lt;br /&gt;
Set objWSHShell = CreateObject(&quot;WScript.Shell&quot;)&lt;br /&gt;
objWSHShell.Run Chr(34) &amp;amp; strVCName &amp;amp; Chr(34)&lt;br /&gt;
DoEvents&lt;br /&gt;
Set colInsp = objOL.Inspectors&lt;br /&gt;
    If Err = 0 Then&lt;br /&gt;
&lt;br /&gt;
            Do Until colInsp.Count = 1&lt;br /&gt;
                DoEvents&lt;br /&gt;
            Loop&lt;br /&gt;
&lt;br /&gt;
            colInsp.Item(1).CurrentItem.Save&lt;br /&gt;
            colInsp.Item(1).Close olDiscard&lt;br /&gt;
            Set colInsp = Nothing&lt;br /&gt;
            Set objOL = Nothing&lt;br /&gt;
            Set objWSHShell = Nothing&lt;br /&gt;
&lt;br /&gt;
        End If&lt;br /&gt;
&lt;br /&gt;
    End If&lt;br /&gt;
&lt;br /&gt;
Next&lt;br /&gt;
&lt;br /&gt;
End Sub&lt;/blockquote&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Quelle des Skripts:&lt;/strong&gt; &lt;a href=&quot;http://forums.techguy.org/business-applications/532618-import-multiple-vcard-files-outlook.html&quot;&gt;Tech Support Guy Forum: Import multiple .vCard files in Outlook &lt;/a&gt; 
    </content:encoded>

    <pubDate>Tue, 16 Aug 2011 10:14:12 +0200</pubDate>
    <guid isPermaLink="false">http://hope-this-helps.de/serendipity/archives/300-guid.html</guid>
    
</item>
<item>
    <title>Outlook 2010: Skripte und Code in einem benutzerdefinierten Formular werden nicht ausgeführt</title>
    <link>http://hope-this-helps.de/serendipity/archives/295-Outlook-2010-Skripte-und-Code-in-einem-benutzerdefinierten-Formular-werden-nicht-ausgefuehrt.html</link>
            <category>Clients</category>
            <category>Exchange</category>
            <category>MS-Office</category>
            <category>Outlook</category>
            <category>Server</category>
            <category>VBA</category>
    
    <comments>http://hope-this-helps.de/serendipity/archives/295-Outlook-2010-Skripte-und-Code-in-einem-benutzerdefinierten-Formular-werden-nicht-ausgefuehrt.html#comments</comments>
    <wfw:comment>http://hope-this-helps.de/serendipity/wfwcomment.php?cid=295</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://hope-this-helps.de/serendipity/rss.php?version=2.0&amp;type=comments&amp;cid=295</wfw:commentRss>
    

    <author>nospam@example.com (Ralf Entner)</author>
    <content:encoded>
    &lt;strong&gt;Problem:&lt;/strong&gt;&lt;br /&gt;
Man hat ein benutzerdefiniertes Outlook-Formular erstellt und darin Skripte bzw. Code hinterlegt.&lt;br /&gt;
Wenn man das Formular testweise ausführt, klappt alles ohne Probleme.&lt;br /&gt;
Wenn man das Formular veröffentlicht und dann versucht das Skript per Button o.ä. auszuführen, passiert nichts!&lt;br /&gt;
Das Problem tritt nur bei Clients mit &lt;strong&gt;OUTLOOK 2010&lt;/strong&gt; auf.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Lösung:&lt;/strong&gt;&lt;br /&gt;
Seit Outlook 2010 wird per default das Ausführen von Code in öffentlichen Ordnern verhindert.&lt;br /&gt;
Dies kann umgangen werden, in dem man folgende Änderung in der Registry durchführt:&lt;br /&gt;
&lt;blockquote&gt;HKCU\Software\Microsoft\Office\14.0\Outlook\Security&lt;br /&gt;
 &lt;br /&gt;
DWORD Entry: PublicFolderScript&lt;br /&gt;
 &lt;br /&gt;
Value: 1&lt;br /&gt;
&lt;/blockquote&gt;&lt;br /&gt;
Nach einem Outlook-Neustart funktioniert das Formular problemlos.&lt;br /&gt;
&lt;br /&gt;
In der unten genannten Quelle findet man auch einen Lösungsweg per Policy mit ADM-Datei.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Quelle:&lt;/strong&gt; &lt;u&gt;&lt;a href=&quot;http://www.faq-o-matic.net/2010/06/17/homepage-fr-ffentliche-ordner-in-outlook-2010-anzeigen/&quot;&gt;faq-o-matic.net: Homepage für Öffentliche Ordner in Outlook 2010 anzeigen&lt;/a&gt;&lt;/u&gt; 
    </content:encoded>

    <pubDate>Wed, 27 Jul 2011 10:50:24 +0200</pubDate>
    <guid isPermaLink="false">http://hope-this-helps.de/serendipity/archives/295-guid.html</guid>
    
</item>
<item>
    <title>VBS / WSH Funktion um Meldungen auszugeben je nach Interpreter</title>
    <link>http://hope-this-helps.de/serendipity/archives/293-VBS-WSH-Funktion-um-Meldungen-auszugeben-je-nach-Interpreter.html</link>
            <category>Scripts + Code Schnipsel</category>
            <category>VBS / WSH</category>
    
    <comments>http://hope-this-helps.de/serendipity/archives/293-VBS-WSH-Funktion-um-Meldungen-auszugeben-je-nach-Interpreter.html#comments</comments>
    <wfw:comment>http://hope-this-helps.de/serendipity/wfwcomment.php?cid=293</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://hope-this-helps.de/serendipity/rss.php?version=2.0&amp;type=comments&amp;cid=293</wfw:commentRss>
    

    <author>nospam@example.com (Christopher Pope)</author>
    <content:encoded>
    Problem :&lt;br /&gt;
&lt;br /&gt;
Wenn man ein VBS Skript schreibt und Meldungen ausgeben möchte stehen einem mehrere Wege zur Verfügung die gängigsten sind eine MsgBox und WScript.Echo das Echo wird meistens verwendet wenn das Skript über cscript.exe gestartet wird , startet man es dann mit wscript.exe bekommt man für jede Zeile die ein Echo enthällt eine gesonderte Messagebox (MsgBox) &lt;br /&gt;
&lt;br /&gt;
Lösung :&lt;br /&gt;
&lt;br /&gt;
Ich hab hier eine kleine Funktion geschrieben die ermittelt über welchen Interpreter wscript / cscript das Skript gestartet wurde und die Meldung anpasst.&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote&gt;&lt;br /&gt;
Function ShowMessage(MSG,Titel)&lt;br /&gt;
Dim StrScriptInt : StrScriptInt = LCase(WScript.FullName)&lt;br /&gt;
&#039; --- Check Interpreter&lt;br /&gt;
If Right(StrScriptInt,11) = &quot;wscript.exe&quot; Then&lt;br /&gt;
	MsgBox MSG,vbOKOnly + vbInformation,Titel&lt;br /&gt;
Else&lt;br /&gt;
	WScript.Echo Titel &amp;amp; &quot;--------------&quot; &amp;amp; vbCrLf &amp;amp; MSG &amp;amp; vbCrLf&lt;br /&gt;
End If&lt;br /&gt;
End Function&lt;br /&gt;
&lt;/blockquote&gt; 
    </content:encoded>

    <pubDate>Wed, 20 Jul 2011 15:37:45 +0200</pubDate>
    <guid isPermaLink="false">http://hope-this-helps.de/serendipity/archives/293-guid.html</guid>
    
</item>
<item>
    <title>Neues Tool zum umziehen von Druckern</title>
    <link>http://hope-this-helps.de/serendipity/archives/292-Neues-Tool-zum-umziehen-von-Druckern.html</link>
            <category>Clients</category>
            <category>Scripts + Code Schnipsel</category>
            <category>Tools &amp; Utilities</category>
            <category>VBS / WSH</category>
            <category>Windows</category>
    
    <comments>http://hope-this-helps.de/serendipity/archives/292-Neues-Tool-zum-umziehen-von-Druckern.html#comments</comments>
    <wfw:comment>http://hope-this-helps.de/serendipity/wfwcomment.php?cid=292</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://hope-this-helps.de/serendipity/rss.php?version=2.0&amp;type=comments&amp;cid=292</wfw:commentRss>
    

    <author>nospam@example.com (Christopher Pope)</author>
    <content:encoded>
    Problem :&lt;br /&gt;
&lt;br /&gt;
Der Name des Druckservers hat sich verändert und soll jetzt automatisch beim anmelden der user in den verbundenen Drucker korrigiert werden.&lt;br /&gt;
Getestet mit Win 2000 / XP / 7&lt;br /&gt;
&lt;br /&gt;
Lösung :&lt;br /&gt;
&lt;br /&gt;
Ich hab mich ran gesetzt und eine neue Version ohne speichern auf File System Ebene geschrieben.&lt;br /&gt;
&lt;br /&gt;
Hier die möglichen Parameter :&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote&gt;&lt;br /&gt;
-o:[Servername] or /o:[Servername] = old print server&lt;br /&gt;
-n:[Servername] or /n:[Servername] = new print server&lt;br /&gt;
-l:[Logfile] or /l:[Logfile] = create an Logfile (path:filename)&lt;br /&gt;
-? or /? = shows this help&lt;br /&gt;
&lt;br /&gt;
replace [Servername] with the hostname / ip-adress without [ and ]&lt;br /&gt;
&lt;/blockquote&gt;&lt;br /&gt;
&lt;br /&gt;
Beispielaufruf sieht dann so aus :&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote&gt;Move_Printer.exe -o:ALTSERVER -n:NEUSERVER -l:C:\Logfile.txt&lt;/blockquote&gt;&lt;br /&gt;
&lt;br /&gt;
Download Tool : &lt;a href=&quot;http://hope-this-helps.de/serendipity/uploads/Anwendungen/Move_Printer.exe&quot; title=&quot;Move_Printer.exe&quot; target=&quot;_blank&quot;&gt;Move_Printer.exe&lt;/a&gt; (freier Download)&lt;br /&gt;
&lt;br /&gt;
Hier der download des Source Codes : &lt;a href=&quot;http://hope-this-helps.de/serendipity/index.php?serendipity[subpage]=Downloads&amp;thiscat=13&amp;file=55&quot; title=&quot;Source Code Move Printer&quot;&gt;Source Code&lt;/a&gt; (nur für registrierte Mitglieder)&lt;br /&gt;
 
    </content:encoded>

    <pubDate>Wed, 20 Jul 2011 15:25:49 +0200</pubDate>
    <guid isPermaLink="false">http://hope-this-helps.de/serendipity/archives/292-guid.html</guid>
    
</item>
<item>
    <title>EXCEL VBS: Ermitlung letzte Zeile/Spalte im Worksheet</title>
    <link>http://hope-this-helps.de/serendipity/archives/291-EXCEL-VBS-Ermitlung-letzte-ZeileSpalte-im-Worksheet.html</link>
            <category>Excel</category>
            <category>VBA</category>
    
    <comments>http://hope-this-helps.de/serendipity/archives/291-EXCEL-VBS-Ermitlung-letzte-ZeileSpalte-im-Worksheet.html#comments</comments>
    <wfw:comment>http://hope-this-helps.de/serendipity/wfwcomment.php?cid=291</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://hope-this-helps.de/serendipity/rss.php?version=2.0&amp;type=comments&amp;cid=291</wfw:commentRss>
    

    <author>nospam@example.com (Ralf Entner)</author>
    <content:encoded>
    Problem:&lt;br /&gt;
Hier noch die Ermittlung der letzten Zeile/Spalte unter VBS in Excel&lt;br /&gt;
&lt;br /&gt;
Lösung:&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote&gt;&lt;strong&gt;VBS&lt;/strong&gt;&lt;br /&gt;
&#039;letzte Zeile in &quot;A&quot; suchen&lt;br /&gt;
Zeilenanzahl = objXLS.Cells(objXLS.Rows.Count, 1).End(xlUp).Row&lt;br /&gt;
&lt;br /&gt;
&#039;letzte Spalte in Zeile 1 suchen&lt;br /&gt;
Spaltenanzahl = LZ = objXLS.Cells(objXLS.Columns.Count, 1).End(xlUp).Column&lt;/blockquote&gt;&lt;br /&gt;
&lt;br /&gt;
Selbstverständlich benötigen wir hierzu noch das entsprechende Objekt und eine Excel Workbook:&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote&gt;&#039;Excel-Objekt und Workbook erstellen&lt;br /&gt;
set objXLS = CreateObject(&quot;Excel.Application&quot;)&lt;br /&gt;
set objWB = objXLS.Workbooks&lt;br /&gt;
objWB.Add&lt;/blockquote&gt; 
    </content:encoded>

    <pubDate>Thu, 14 Jul 2011 09:25:02 +0200</pubDate>
    <guid isPermaLink="false">http://hope-this-helps.de/serendipity/archives/291-guid.html</guid>
    
</item>
<item>
    <title>VBS Progress Bar</title>
    <link>http://hope-this-helps.de/serendipity/archives/290-VBS-Progress-Bar.html</link>
            <category>VBS / WSH</category>
    
    <comments>http://hope-this-helps.de/serendipity/archives/290-VBS-Progress-Bar.html#comments</comments>
    <wfw:comment>http://hope-this-helps.de/serendipity/wfwcomment.php?cid=290</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://hope-this-helps.de/serendipity/rss.php?version=2.0&amp;type=comments&amp;cid=290</wfw:commentRss>
    

    <author>nospam@example.com (Christopher Pope)</author>
    <content:encoded>
    &lt;strong&gt;Problem:&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
Man möchte den einen Fortschrittsbalken in VBS anzeigen , leider bringt VBS diese Funktion nicht mit dadurch muss man den Internet Explorer verwenden&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Lösung :&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
North Atlanta Web Design hat eine Super Klasse dafür geschrieben, so umgeht man den Weg über HTA &lt;br /&gt;
&lt;br /&gt;
hier gehts zum Code : &lt;a href=&quot;http://www.northatlantawebdesign.com/index.php/2009/07/16/simple-vbscript-progress-bar/&quot; target=&quot;_blank&quot; title=&quot;VBS Class ProgressBar &quot;&gt;VBS Class ProgressBar &lt;/a&gt; 
    </content:encoded>

    <pubDate>Mon, 11 Jul 2011 12:12:05 +0200</pubDate>
    <guid isPermaLink="false">http://hope-this-helps.de/serendipity/archives/290-guid.html</guid>
    
</item>
<item>
    <title>VBS Funktion: ungelesene Mails im Posteingang von Outlook ermitteln</title>
    <link>http://hope-this-helps.de/serendipity/archives/289-VBS-Funktion-ungelesene-Mails-im-Posteingang-von-Outlook-ermitteln.html</link>
            <category>VBS / WSH</category>
    
    <comments>http://hope-this-helps.de/serendipity/archives/289-VBS-Funktion-ungelesene-Mails-im-Posteingang-von-Outlook-ermitteln.html#comments</comments>
    <wfw:comment>http://hope-this-helps.de/serendipity/wfwcomment.php?cid=289</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://hope-this-helps.de/serendipity/rss.php?version=2.0&amp;type=comments&amp;cid=289</wfw:commentRss>
    

    <author>nospam@example.com (Ralf Entner)</author>
    <content:encoded>
    Funktion zur Ermittlung der ungelesenen Nachrichten im Posteingang von Outlook.&lt;br /&gt;
Outlook muß installiert sein!&lt;br /&gt;
Läuft auch unter Outlook 2010.&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote&gt;Function unread_mails()&lt;br /&gt;
&#039;Funktion zum überprüfen auf neue Mails im Ordner &quot;Posteingang&quot;&lt;br /&gt;
&#039;In Variable &quot;u&quot; wird die Anzahl der ungelesenen Nachrichten übergeben&lt;br /&gt;
&lt;br /&gt;
Dim unread_items, mapi, inbox, mail&lt;br /&gt;
&lt;br /&gt;
Set outObj = CreateObject(&quot;Outlook.Application&quot;)&lt;br /&gt;
&lt;br /&gt;
u = 0 &#039;Zähler ungelesene Nachrichten zurücksetzen&lt;br /&gt;
    &lt;br /&gt;
Set mapi = outObj.GetNamespace(&quot;MAPI&quot;)&lt;br /&gt;
Set inbox = mapi.GetDefaultFolder(6) &#039;Zeiger auf Posteingang setzten - Posteingang = Folder(6)&lt;br /&gt;
&lt;br /&gt;
For Each mail In inbox.Items &#039;überprüfen auf ungelesene Mails&lt;br /&gt;
	If mail.unread Then unread_items = unread_items + 1&lt;br /&gt;
Next&lt;br /&gt;
&lt;br /&gt;
&#039;Ausgabe als Msgbox&lt;br /&gt;
MsgBox &quot;Sie haben &quot; &amp;amp; unread_items &amp;amp; &quot; ungelesene Mails in Ihrem Posteingang&quot;, vbOKOnly, &quot;Posteingang überprüft&quot;&lt;br /&gt;
&lt;br /&gt;
End Function&lt;/blockquote&gt; 
    </content:encoded>

    <pubDate>Mon, 11 Jul 2011 11:20:26 +0200</pubDate>
    <guid isPermaLink="false">http://hope-this-helps.de/serendipity/archives/289-guid.html</guid>
    
</item>
<item>
    <title>Überprüfen ob Prozess läuft mit VBS/WSH</title>
    <link>http://hope-this-helps.de/serendipity/archives/288-UEberpruefen-ob-Prozess-laeuft-mit-VBSWSH.html</link>
            <category>Scripts + Code Schnipsel</category>
            <category>VBS / WSH</category>
    
    <comments>http://hope-this-helps.de/serendipity/archives/288-UEberpruefen-ob-Prozess-laeuft-mit-VBSWSH.html#comments</comments>
    <wfw:comment>http://hope-this-helps.de/serendipity/wfwcomment.php?cid=288</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://hope-this-helps.de/serendipity/rss.php?version=2.0&amp;type=comments&amp;cid=288</wfw:commentRss>
    

    <author>nospam@example.com (Christopher Pope)</author>
    <content:encoded>
    Hier eine kleine Funktion die überprüft ob ein Prozess läuft oder nicht , sie baut auf VBS / WSH und WMI auf und liefert TRUE oder FALSE zurück.&lt;br /&gt;
&lt;br /&gt;
Funktion : &lt;br /&gt;
&lt;blockquote&gt;&lt;br /&gt;
Function CheckProcess(name)&lt;br /&gt;
&#039;------------------ check for running process&lt;br /&gt;
	Dim ObjProcess&lt;br /&gt;
	Set ObjProcess = OBJWMI.ExecQuery(&quot;select * from win32_process where name=&#039;&quot; &amp;amp; name &amp;amp; &quot;&#039; &quot;)&lt;br /&gt;
	If ObjProcess.Count &lt;&gt; 0 Then&lt;br /&gt;
		CheckProcess = True&lt;br /&gt;
	Else&lt;br /&gt;
		CheckProcess = False&lt;br /&gt;
	End If&lt;br /&gt;
	Set ObjProcess = Nothing&lt;br /&gt;
End Function&lt;br /&gt;
&lt;/blockquote&gt;&lt;br /&gt;
&lt;br /&gt;
diese Funktion kann z.B. so eingebunden werden&lt;br /&gt;
&lt;br /&gt;
Beispiel :&lt;br /&gt;
&lt;blockquote&gt;&lt;br /&gt;
Do&lt;br /&gt;
     BoolCkProc = CheckProcess(&quot;notepad.exe&quot;)&lt;br /&gt;
     WScript.Sleep 5000&lt;br /&gt;
Loop Until BoolCkProc = False&lt;br /&gt;
&lt;/blockquote&gt;&lt;br /&gt;
&lt;br /&gt;
Benötigt wird natürlich das WMI interface&lt;br /&gt;
&lt;blockquote&gt;&lt;br /&gt;
Dim StrComputer : StrComputer = &quot;.&quot; &#039;-- lokaler Rechner&lt;br /&gt;
Dim OBJWMI : Set OBJWMI = GetObject(&quot;winmgmts:{impersonationLevel=impersonate}!\\&quot; &amp;amp; StrComputer &amp;amp; &quot;\root\cimv2&quot;)&lt;br /&gt;
&lt;/blockquote&gt; 
    </content:encoded>

    <pubDate>Wed, 06 Jul 2011 11:24:31 +0200</pubDate>
    <guid isPermaLink="false">http://hope-this-helps.de/serendipity/archives/288-guid.html</guid>
    <category>Process</category>
<category>Prozess</category>
<category>scripts + code schnipsel</category>
<category>vbs / wsh</category>
<category>wmi</category>

</item>
<item>
    <title>EXCEL VBA: Ermitlung letzte Zeile/Spalte im Worksheet</title>
    <link>http://hope-this-helps.de/serendipity/archives/287-EXCEL-VBA-Ermitlung-letzte-ZeileSpalte-im-Worksheet.html</link>
            <category>VBA</category>
    
    <comments>http://hope-this-helps.de/serendipity/archives/287-EXCEL-VBA-Ermitlung-letzte-ZeileSpalte-im-Worksheet.html#comments</comments>
    <wfw:comment>http://hope-this-helps.de/serendipity/wfwcomment.php?cid=287</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://hope-this-helps.de/serendipity/rss.php?version=2.0&amp;type=comments&amp;cid=287</wfw:commentRss>
    

    <author>nospam@example.com (Ralf Entner)</author>
    <content:encoded>
    &lt;strong&gt;Problem:&lt;/strong&gt;&lt;br /&gt;
Weil ich es mir nicht merken kann...hier die Ermittlung der letzten Zeile/Spalte unter VBA in Excel&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Lösung:&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote&gt;&lt;strong&gt;VBA&lt;/strong&gt;&lt;br /&gt;
&#039;letzte Zeile in &quot;A&quot; suchen&lt;br /&gt;
Zeilenanzahl = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row&lt;br /&gt;
&lt;br /&gt;
&#039;letzte Spalte in Zeile 1 suchen&lt;br /&gt;
Spaltenanzahl = ActiveSheet.Cells(1, Columns.Count).End(xlToLeft).Column&lt;/blockquote&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Quelle:&lt;/strong&gt; &lt;u&gt;&lt;a href=&quot;http://www.schmittis-page.de/index.html?/excel/vba/t17.htm&quot;&gt;schmittis-page.de: Letzte Zeile/Spalte eines Datenbereiches finden&lt;/a&gt;&lt;/u&gt; 
    </content:encoded>

    <pubDate>Tue, 05 Jul 2011 14:09:16 +0200</pubDate>
    <guid isPermaLink="false">http://hope-this-helps.de/serendipity/archives/287-guid.html</guid>
    
</item>
<item>
    <title>VBS Logfile schreiben | Funktion</title>
    <link>http://hope-this-helps.de/serendipity/archives/281-VBS-Logfile-schreiben-Funktion.html</link>
            <category>Scripts + Code Schnipsel</category>
            <category>VBS / WSH</category>
    
    <comments>http://hope-this-helps.de/serendipity/archives/281-VBS-Logfile-schreiben-Funktion.html#comments</comments>
    <wfw:comment>http://hope-this-helps.de/serendipity/wfwcomment.php?cid=281</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://hope-this-helps.de/serendipity/rss.php?version=2.0&amp;type=comments&amp;cid=281</wfw:commentRss>
    

    <author>nospam@example.com (Christopher Pope)</author>
    <content:encoded>
    Funktion um ein Logfile in VBS zu schreiben , der neue Eintrag wird immer angehängt.&lt;br /&gt;
&lt;br /&gt;
Benötigt einen Verweis auf &lt;br /&gt;
&lt;blockquote&gt;Dim ObjFso		:	Set ObjFso = CreateObject(&quot;Scripting.FileSystemObject&quot;)&lt;br /&gt;
&lt;/blockquote&gt;&lt;br /&gt;
&lt;br /&gt;
Und die Variable FIL_LOG muss deklariert sein !&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote&gt;Dim FIL_LOG		:	FIL_LOG = &quot;C:\&quot; &amp;amp; Replace(WScript.ScriptName,&quot;.vbs&quot;,&quot;.log&quot;) &lt;br /&gt;
&lt;/blockquote&gt;&lt;br /&gt;
&lt;br /&gt;
Funktion :&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote&gt;Function WriteLog(Inhalt)&lt;br /&gt;
&#039;------------------ Schreibt ein Logfile&lt;br /&gt;
	Dim FileOut&lt;br /&gt;
		Set FileOut = ObjFso.OpenTextFile(FIL_LOG,8,true)&lt;br /&gt;
		FileOut.WriteLine (Inhalt)&lt;br /&gt;
		FileOut.Close&lt;br /&gt;
		Set FileOut = Nothing&lt;br /&gt;
	End Function&lt;br /&gt;
&lt;/blockquote&gt; 
    </content:encoded>

    <pubDate>Wed, 08 Jun 2011 14:15:15 +0200</pubDate>
    <guid isPermaLink="false">http://hope-this-helps.de/serendipity/archives/281-guid.html</guid>
    <category>funktion</category>
<category>logfile</category>
<category>scripts + code schnipsel</category>
<category>vbs</category>
<category>vbs / wsh</category>
<category>wsh</category>

</item>
<item>
    <title>VBS: Blinkende Tastatur</title>
    <link>http://hope-this-helps.de/serendipity/archives/273-VBS-Blinkende-Tastatur.html</link>
            <category>VBS / WSH</category>
    
    <comments>http://hope-this-helps.de/serendipity/archives/273-VBS-Blinkende-Tastatur.html#comments</comments>
    <wfw:comment>http://hope-this-helps.de/serendipity/wfwcomment.php?cid=273</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://hope-this-helps.de/serendipity/rss.php?version=2.0&amp;type=comments&amp;cid=273</wfw:commentRss>
    

    <author>nospam@example.com (Ralf Entner)</author>
    <content:encoded>
    &lt;strong&gt;Problem:&lt;/strong&gt;&lt;br /&gt;
Um Aufmerksamkeit zu erregen, soll eine LED an der Tastatur blinken.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Lösung:&lt;/strong&gt;&lt;br /&gt;
Die ScrollLock-LED blinkt, und auf dem Bildschirm erscheint ein PopUp, mit dem das Blinken abgestellt werden kann.&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote&gt;set WshShell = WScript.CreateObject(&quot;WScript.Shell&quot;)&lt;br /&gt;
do&lt;br /&gt;
WshShell.SendKeys &quot;{SCROLLLOCK}&quot;&lt;br /&gt;
Abbruch = WshShell.PopUp(&quot;Blinker stop&quot;,1,&quot;Mail&quot;,0)&lt;br /&gt;
if Abbruch&lt;&gt;-1 then exit do&lt;br /&gt;
loop&lt;/blockquote&gt; 
    </content:encoded>

    <pubDate>Tue, 12 Apr 2011 16:58:52 +0200</pubDate>
    <guid isPermaLink="false">http://hope-this-helps.de/serendipity/archives/273-guid.html</guid>
    
</item>
<item>
    <title>VBS: ZIP-Datei überprüfen</title>
    <link>http://hope-this-helps.de/serendipity/archives/272-VBS-ZIP-Datei-ueberpruefen.html</link>
            <category>VBS / WSH</category>
    
    <comments>http://hope-this-helps.de/serendipity/archives/272-VBS-ZIP-Datei-ueberpruefen.html#comments</comments>
    <wfw:comment>http://hope-this-helps.de/serendipity/wfwcomment.php?cid=272</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://hope-this-helps.de/serendipity/rss.php?version=2.0&amp;type=comments&amp;cid=272</wfw:commentRss>
    

    <author>nospam@example.com (Ralf Entner)</author>
    <content:encoded>
    &lt;strong&gt;Problem:&lt;/strong&gt;&lt;br /&gt;
Man möchte den Inhalt einer ZIP-Datei bzw. die Anzahl der Dateien in der ZIP-Datei überprüfen.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Lösung:&lt;/strong&gt;&lt;br /&gt;
Mit folgendem VB-Skript kann man die Anzahl der Dateien innerhalb der ZIP-Datei überprüfen.&lt;br /&gt;
Sollte die Anzahl (filesinzip.Count) 0 sein, dann ist die ZIP-Datei entweder beschädigt oder leer.&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote&gt;Set objApp = CreateObject(&quot;Shell.Application&quot;) &lt;br /&gt;
set filesInzip=objApp.NameSpace(&quot;C:\test.zip&quot;).Items&lt;br /&gt;
Msgbox filesinzip.Count&lt;/blockquote&gt;&lt;br /&gt;
&lt;br /&gt;
 
    </content:encoded>

    <pubDate>Tue, 12 Apr 2011 12:48:09 +0200</pubDate>
    <guid isPermaLink="false">http://hope-this-helps.de/serendipity/archives/272-guid.html</guid>
    
</item>
<item>
    <title>vsFTP OpenSuse - neuen Benutzer anlegen mit Skript</title>
    <link>http://hope-this-helps.de/serendipity/archives/270-vsFTP-OpenSuse-neuen-Benutzer-anlegen-mit-Skript.html</link>
            <category>Bash</category>
            <category>Linux</category>
            <category>Scripts + Code Schnipsel</category>
            <category>Server</category>
    
    <comments>http://hope-this-helps.de/serendipity/archives/270-vsFTP-OpenSuse-neuen-Benutzer-anlegen-mit-Skript.html#comments</comments>
    <wfw:comment>http://hope-this-helps.de/serendipity/wfwcomment.php?cid=270</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://hope-this-helps.de/serendipity/rss.php?version=2.0&amp;type=comments&amp;cid=270</wfw:commentRss>
    

    <author>nospam@example.com (Christopher Pope)</author>
    <content:encoded>
    &lt;strong&gt;Problem :&lt;/strong&gt;&lt;br /&gt;
Ich betreibe einen kleinen FTP Server der unter vsFTP arbeitet , öfter kommen neue Benutzer hinzu , um mir die Tipparbeit zu sparen hab ich ein kleines Bashscript geschrieben das das für mich übernimmt. Es ist nicht so kompliziert nimmt einem aber viel Arbeit ab &lt;img src=&quot;http://hope-this-helps.de/serendipity/templates/default/img/emoticons/wink.png&quot; alt=&quot;;-)&quot; style=&quot;display: inline; vertical-align: bottom;&quot; class=&quot;emoticon&quot; /&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Lösung :&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote&gt;&lt;br /&gt;
# !/bin/bash&lt;br /&gt;
echo -n &quot;Bitte Benutzernamen angeben : &quot;&lt;br /&gt;
read username&lt;br /&gt;
echo &quot;-- Erstelle Home Verzeichnis für $username&quot;&lt;br /&gt;
mkdir /home/$username&lt;br /&gt;
echo &quot;-- Erstelle Benutzer $username&quot;&lt;br /&gt;
useradd $username -d /home/$username -g ftpgroup -s /bin/false&lt;br /&gt;
chown nobody:ftpgroup /home/$username&lt;br /&gt;
chmod 1770 /home/$username&lt;br /&gt;
echo &quot;Bitte geben Sie das Password für den Benutzer $username an&quot;&lt;br /&gt;
passwd $username&lt;br /&gt;
echo $username &gt;&gt; /etc/vsftpd.user_list&lt;br /&gt;
echo &quot;Benutzer $username wurde angelegt&quot;&lt;br /&gt;
&lt;/blockquote&gt; 
    </content:encoded>

    <pubDate>Tue, 29 Mar 2011 18:42:01 +0200</pubDate>
    <guid isPermaLink="false">http://hope-this-helps.de/serendipity/archives/270-guid.html</guid>
    <category>bash</category>
<category>linux</category>
<category>opensuse</category>
<category>script</category>
<category>scripts + code schnipsel</category>
<category>server</category>
<category>useradd</category>
<category>vsftp</category>

</item>
<item>
    <title>VBS zum automatischen umziehen der lokalen Druckerverbindungen</title>
    <link>http://hope-this-helps.de/serendipity/archives/268-VBS-zum-automatischen-umziehen-der-lokalen-Druckerverbindungen.html</link>
            <category>Clients</category>
            <category>Scripts + Code Schnipsel</category>
            <category>Server</category>
            <category>VBS / WSH</category>
            <category>Windows</category>
    
    <comments>http://hope-this-helps.de/serendipity/archives/268-VBS-zum-automatischen-umziehen-der-lokalen-Druckerverbindungen.html#comments</comments>
    <wfw:comment>http://hope-this-helps.de/serendipity/wfwcomment.php?cid=268</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://hope-this-helps.de/serendipity/rss.php?version=2.0&amp;type=comments&amp;cid=268</wfw:commentRss>
    

    <author>nospam@example.com (Christopher Pope)</author>
    <content:encoded>
    &lt;u&gt;&lt;strong&gt;Problem :&lt;/strong&gt;&lt;/u&gt;&lt;br /&gt;
&lt;br /&gt;
Der Name des Printservers hat sich geändert , jetzt kann man zu Fuß an alle Clients gehen und die Drucker umstellen oder man nimmt dieses Skript ins Loginskript auf und das erledigt einem diese Aufgabe ....&lt;br /&gt;
&lt;br /&gt;
&lt;u&gt;&lt;strong&gt;Skript :&lt;/strong&gt;&lt;/u&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote&gt;Option Explicit&lt;br /&gt;
&lt;br /&gt;
Dim ObjWsh 		: Set ObjWsh = CreateObject(&quot;WScript.Shell&quot;)&lt;br /&gt;
Dim ObjNet   	: Set ObjNet = CreateObject(&quot;WScript.Network&quot;)&lt;br /&gt;
Dim ObjFso   	: Set ObjFso = CreateObject(&quot;Scripting.FileSystemObject&quot;)&lt;br /&gt;
Dim objEnv   	: Set objEnv = ObjWsh.Environment(&quot;Process&quot;)&lt;br /&gt;
Dim Logfile  	: Logfile = objEnv(&quot;USERPROFILE&quot;) &amp;amp; &quot;\PrtUmzug.txt&quot;&lt;br /&gt;
Dim objNetPr,NPR,DUMMY,ToDo,Zeile,Inhalt,Entry,Printer_New,OLDSERVER,NEWSERVER&lt;br /&gt;
&lt;br /&gt;
OLDSERVER = &quot;SERVERALT&quot;   &#039; ----------------------------&gt; Hier den Namen des alten Printservers eintragen&lt;br /&gt;
NEWSERVER = &quot;SERVERNEU&quot;   &#039; ----------------------------&gt; Hier den Namen des neuen Printservers eintragen&lt;br /&gt;
&lt;br /&gt;
&#039; ------------------ routine&lt;br /&gt;
WScript.Echo &quot;&quot;&lt;br /&gt;
WScript.Echo &quot;-----------------------------------------------------&quot;&lt;br /&gt;
If Not ObjFso.FileExists(Logfile) then&lt;br /&gt;
WScript.Echo &quot;|-&gt; Ihre Druckerverbindungen werden überprüft &amp;amp; korrigiert&quot;&lt;br /&gt;
Inhalt = GetPrinterNames()&lt;br /&gt;
WriteLog Logfile,Inhalt&lt;br /&gt;
ReadLog Logfile&lt;br /&gt;
Else&lt;br /&gt;
WScript.Echo &quot;|-&gt; Druckerverbindungen wurden bereits überprüft&quot;&lt;br /&gt;
End If&lt;br /&gt;
WScript.Echo &quot;-----------------------------------------------------&quot;&lt;br /&gt;
WScript.Quit (1)&lt;br /&gt;
&#039; ------------------ funktionen&lt;br /&gt;
Function GetPrinterNames() 				&#039;--- liest die verbundenen Netzwerkdrucker aus&lt;br /&gt;
  Set objNetPr = ObjNet.EnumPrinterConnections&lt;br /&gt;
  For NPR = 0 to objNetPr.Count - 1 Step 2&lt;br /&gt;
    If Left(objNetPr.Item(NPR + 1),2) = &quot;\\&quot; then&lt;br /&gt;
      If DUMMY = &quot;&quot; then&lt;br /&gt;
        DUMMY = &quot;NPR|&quot; &amp;amp; objNetPr.Item(NPR) &amp;amp; &quot;|&quot; &amp;amp; objNetPr.Item(NPR + 1)&lt;br /&gt;
      Else&lt;br /&gt;
        DUMMY = DUMMY &amp;amp; vbCrLf &amp;amp; &quot;NPR|&quot; &amp;amp; objNetPr.Item(NPR) &amp;amp; &quot;|&quot; &amp;amp; objNetPr.Item(NPR + 1)&lt;br /&gt;
      End If&lt;br /&gt;
    End If&lt;br /&gt;
  Next &lt;br /&gt;
  GetPrinterNames = DUMMY&lt;br /&gt;
  DUMMY = &quot;&quot;&lt;br /&gt;
  Set objNetPr = nothing&lt;br /&gt;
End Function&lt;br /&gt;
Function SetPrinterNames(Line) 			&#039;--- verbindet einen Netzwerkdrucker&lt;br /&gt;
	On Error Resume Next&lt;br /&gt;
	Entry = split(Line,&quot;|&quot;)&lt;br /&gt;
	If UBound(Entry) = 2 Then&lt;br /&gt;
		Printer_New = Replace(lcase(Entry(2)),OLDSERVER,NEWSERVER)&lt;br /&gt;
		ObjNet.RemovePrinterConnection Entry(2)&lt;br /&gt;
		ObjNet.AddWindowsPrinterConnection Printer_New&lt;br /&gt;
	End If&lt;br /&gt;
End Function&lt;br /&gt;
Function ReadLog(File) 					&#039;--- überprüft ob Logfile existiert wenn ja liet Datei aus und spielt gesicherte Einträge zurück&lt;br /&gt;
	If ObjFso.FileExists(File) Then&lt;br /&gt;
		Set Dummy = ObjFso.OpenTextFile(File)&lt;br /&gt;
			Do Until Dummy.AtEndOfStream&lt;br /&gt;
				Zeile = trim(Dummy.Readline)&lt;br /&gt;
				SetPrinterNames(Zeile)&lt;br /&gt;
			Loop&lt;br /&gt;
	End If&lt;br /&gt;
End Function&lt;br /&gt;
Function WriteLog(File,Content) 		&#039;--- löscht die Datei wenn vorhanden und erstellt eine aktualisierte&lt;br /&gt;
  If ObjFso.FileExists(File) Then&lt;br /&gt;
    ObjFso.DeleteFile(File)&lt;br /&gt;
  End If&lt;br /&gt;
  Dim ObjLogFile : Set ObjLogFile = ObjFso.OpenTextFile(File,8,true)&lt;br /&gt;
  ObjLogFile.WriteLine (Content)&lt;br /&gt;
  Set ObjLogFile = Nothing&lt;br /&gt;
End Function&lt;/blockquote&gt; 
    </content:encoded>

    <pubDate>Thu, 24 Feb 2011 10:40:06 +0100</pubDate>
    <guid isPermaLink="false">http://hope-this-helps.de/serendipity/archives/268-guid.html</guid>
    
</item>
<item>
    <title>VBS zum Löschen von Dateien mit bestimmter Extension nach x Tagen</title>
    <link>http://hope-this-helps.de/serendipity/archives/258-VBS-zum-Loeschen-von-Dateien-mit-bestimmter-Extension-nach-x-Tagen.html</link>
            <category>VBS / WSH</category>
    
    <comments>http://hope-this-helps.de/serendipity/archives/258-VBS-zum-Loeschen-von-Dateien-mit-bestimmter-Extension-nach-x-Tagen.html#comments</comments>
    <wfw:comment>http://hope-this-helps.de/serendipity/wfwcomment.php?cid=258</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://hope-this-helps.de/serendipity/rss.php?version=2.0&amp;type=comments&amp;cid=258</wfw:commentRss>
    

    <author>nospam@example.com (Ralf Entner)</author>
    <content:encoded>
    &lt;blockquote&gt;&lt;strong&gt;&#039;DEL_X_DAYS_EXT_FILES.VBS&lt;br /&gt;
&#039;&lt;br /&gt;
&#039;Skript zum löschen von Dateien mit der Extension sExt im Pfad sDirectoryPath,&lt;br /&gt;
&#039;die älter als iDaysOld Tage sind&lt;br /&gt;
&#039;&lt;br /&gt;
&#039;&lt;br /&gt;
&#039;sDirectoryPath = Pfad zum Verzeichnis, in dem die zu löschenden Dateien liegen (ohne abschließnden Backslash)&lt;br /&gt;
&#039;sExt = Extension, der Dateien, die gelöscht werden können/sollen&lt;br /&gt;
&#039;iDaysOld = Angabe des Dateialters in ganzen Tagen&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
Option Explicit &lt;br /&gt;
On Error Resume Next &lt;br /&gt;
Dim oFSO, oFolder, sDirectoryPath &lt;br /&gt;
Dim oFileCollection, oFile, sDir &lt;br /&gt;
Dim iDaysOld, sExt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;&#039;Variablen definieren&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
sDirectoryPath = &quot;D:\BACKUP&quot;&lt;br /&gt;
sExt = &quot;bak&quot;&lt;br /&gt;
iDaysOld = 1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;&#039;Zugriff auf Ordner und Dateien&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
Set oFSO = CreateObject(&quot;Scripting.FileSystemObject&quot;) &lt;br /&gt;
Set oFolder = oFSO.GetFolder(sDirectoryPath) &lt;br /&gt;
Set oFileCollection = oFolder.Files &lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;&#039;Durchsuchen des Zielordners nach allen Dateien mit der Endung sExt&lt;/strong&gt;&lt;br /&gt;
For each oFile in oFileCollection&lt;br /&gt;
	&lt;br /&gt;
	If LCase(Right(Cstr(oFile.Name), 3)) = sExt Then&lt;br /&gt;
 	&lt;br /&gt;
 		If oFile.DateLastModified &lt; (Date() - iDaysOld) Then &#039;lösche Datei, wenn diese älter als iDaysOld Tage ist&lt;br /&gt;
 		&#039;oFile.Delete(True) &lt;strong&gt;&#039;----&gt; Zeile ist nicht aktiv, bitte noch Dokemtarzeiehn davor herausnhemen!!!&lt;/strong&gt;&lt;br /&gt;
		msgbox oFile.Name&lt;strong&gt; &#039;----&gt; Es wird nur der Name der zu löschenden Datei angezeigt!!&lt;/strong&gt;&lt;br /&gt;
 		End If &lt;br /&gt;
 &lt;br /&gt;
	End If   &lt;br /&gt;
&lt;br /&gt;
Next &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;&#039;Variablen zurücksetzen&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
Set oFSO = Nothing &lt;br /&gt;
Set oFolder = Nothing &lt;br /&gt;
Set oFileCollection = Nothing &lt;br /&gt;
Set oFile = Nothing &lt;/blockquote&gt; 
    </content:encoded>

    <pubDate>Wed, 22 Dec 2010 22:17:10 +0100</pubDate>
    <guid isPermaLink="false">http://hope-this-helps.de/serendipity/archives/258-guid.html</guid>
    
</item>
<item>
    <title>VBS zum Ermitteln der neuesten Datei an einem Verzeichnis abhängig von der Extension</title>
    <link>http://hope-this-helps.de/serendipity/archives/257-VBS-zum-Ermitteln-der-neuesten-Datei-an-einem-Verzeichnis-abhaengig-von-der-Extension.html</link>
            <category>VBS / WSH</category>
    
    <comments>http://hope-this-helps.de/serendipity/archives/257-VBS-zum-Ermitteln-der-neuesten-Datei-an-einem-Verzeichnis-abhaengig-von-der-Extension.html#comments</comments>
    <wfw:comment>http://hope-this-helps.de/serendipity/wfwcomment.php?cid=257</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://hope-this-helps.de/serendipity/rss.php?version=2.0&amp;type=comments&amp;cid=257</wfw:commentRss>
    

    <author>nospam@example.com (Ralf Entner)</author>
    <content:encoded>
    &lt;blockquote&gt;&lt;strong&gt;&#039;Ermittlung der neuesten Datei mit Extension sExt im Pfad sPfath&lt;br /&gt;
&#039;&lt;br /&gt;
&#039;&lt;br /&gt;
&#039;Das Skript durchsucht den gewünschten Pfad &quot;sPath&quot; nach Dateien mit der Extension &quot;sExt&quot;&lt;br /&gt;
&#039;und gibt dann den kompletten Pfad mit Dateinamen von der neuesten Dateu aus sNewestFile&lt;br /&gt;
&lt;br /&gt;
&#039;Variablen für Pfad und Extension&lt;br /&gt;
&#039;sPfad ohne abschließenden Backslash angeben&lt;br /&gt;
&#039;sExt ohne Punkt davor angeben&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
sPath = &quot;C:\Windows\System32&quot;&lt;br /&gt;
sExt = &quot;dll&quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;&#039;Filesystemobject genereieren&lt;/strong&gt;&lt;br /&gt;
Set oFSO = CreateObject(&quot;Scripting.FileSystemObject&quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;&#039;Funtkion GetNewestFile ausführen&lt;/strong&gt;&lt;br /&gt;
sNewestFile = GetNewestFile(sPath)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;&#039;Ausgabe der neuesten Datei&lt;br /&gt;
&#039;Wenn keine Datei ermittelt werden konnte, dann auch melden&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
If sNewestFile &lt;&gt; &quot;&quot; Then&lt;br /&gt;
	WScript.Echo &quot;Die neuste Datei mit der Extension &quot; &amp;amp; sExt &amp;amp; &quot; ist &quot; &amp;amp; sNewestFile&lt;br /&gt;
Else&lt;br /&gt;
   	WScript.Echo &quot;Verzeichnis ist leer&quot;&lt;br /&gt;
End If&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;&#039;Funktion NewestFile&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
Function GetNewestFile(ByVal sPath)&lt;br /&gt;
&lt;br /&gt;
   sNewestFile = Null  &lt;strong&gt; &#039; initialisiere Wert&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
   Set oFSO = CreateObject(&quot;Scripting.FileSystemObject&quot;)&lt;br /&gt;
   Set oFolder = oFSO.GetFolder(sPath)&lt;br /&gt;
   Set oFiles = oFolder.Files&lt;br /&gt;
&lt;br /&gt;
  &lt;strong&gt; &#039; Finde die neueste Datei unter allen anderen Dateien&lt;/strong&gt;&lt;br /&gt;
For Each oFile In oFiles&lt;br /&gt;
&lt;br /&gt;
	if lcase(oFSO.GetExtensionName(ofile)) = sExt then &lt;strong&gt;&#039;selektiere Dateien mit der gewünschten Endung aus&lt;/strong&gt;&lt;br /&gt;
	On Error Resume Next&lt;br /&gt;
&lt;br /&gt;
     		If IsNull(sNewestFile) Then&lt;br /&gt;
       			sNewestFile = oFile.Path&lt;br /&gt;
       			dPrevDate = oFile.DateLastModified&lt;br /&gt;
     			Elseif dPrevDate &lt; oFile.DateLastModified Then&lt;br /&gt;
       			sNewestFile = oFile.Path&lt;br /&gt;
     		End If&lt;br /&gt;
&lt;br /&gt;
	end if&lt;br /&gt;
&lt;br /&gt;
     On Error Goto 0&lt;br /&gt;
   Next&lt;br /&gt;
&lt;br /&gt;
   If IsNull(sNewestFile) Then sNewestFile = &quot;&quot;&lt;br /&gt;
&lt;br /&gt;
   GetNewestFile = sNewestFile&lt;br /&gt;
End Function&lt;br /&gt;
&lt;br /&gt;
&lt;/blockquote&gt; 
    </content:encoded>

    <pubDate>Wed, 22 Dec 2010 22:13:52 +0100</pubDate>
    <guid isPermaLink="false">http://hope-this-helps.de/serendipity/archives/257-guid.html</guid>
    
</item>
<item>
    <title>PHP Funktion um Strings zu zerlegen</title>
    <link>http://hope-this-helps.de/serendipity/archives/251-PHP-Funktion-um-Strings-zu-zerlegen.html</link>
            <category>PHP</category>
            <category>Scripts + Code Schnipsel</category>
    
    <comments>http://hope-this-helps.de/serendipity/archives/251-PHP-Funktion-um-Strings-zu-zerlegen.html#comments</comments>
    <wfw:comment>http://hope-this-helps.de/serendipity/wfwcomment.php?cid=251</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://hope-this-helps.de/serendipity/rss.php?version=2.0&amp;type=comments&amp;cid=251</wfw:commentRss>
    

    <author>nospam@example.com (Christopher Pope)</author>
    <content:encoded>
    &lt;strong&gt;Beschreibung :&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
Funktion findet ein bestimmtes Vorkommen eines vorgegebenen Suchstring in einem anderen String&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Beispiel :&lt;/strong&gt;&lt;br /&gt;
&lt;blockquote&gt;&lt;br /&gt;
$Text = &quot;Ihre Artikelnummer ist 1212121212 der Bestellwert ...&quot;&lt;br /&gt;
$TXT = FindInformationInString($Text,&#039;ist &#039;,&#039;der &#039;); &lt;br /&gt;
&lt;br /&gt;
echo $TXT; // liefert &quot;1212121212&quot; zurück&lt;br /&gt;
&lt;/blockquote&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Funktion :&lt;/strong&gt;&lt;br /&gt;
&lt;blockquote&gt;&lt;br /&gt;
function FindInformationInString($String,$Start,$Ende) {&lt;br /&gt;
    // $String = Der String in dem eine Zeichenkette gesucht werden soll&lt;br /&gt;
    // $Start = Nach welchem String soll gesucht werden &lt;br /&gt;
    // $Ende = Mit welchen Zeichen hört der gesuchte String auf&lt;br /&gt;
    $FI_STR = stripos($String,$Start);&lt;br /&gt;
    If ($FI_STR &gt; 0){&lt;br /&gt;
        $FI_END = stripos($String,$Ende,$FI_STR);&lt;br /&gt;
        $FI_Len = $FI_END - $FI_STR;&lt;br /&gt;
        $FI_STRING = substr($String,$FI_STR,$FI_Len);&lt;br /&gt;
        $FI_STRING = Str_replace($Start,&#039;&#039;,$FI_STRING);     // Start String aus Ergebnis entfernen&lt;br /&gt;
        $FI_STRING = trim(strip_tags($FI_STRING));            // entfernen der HTML Tags&lt;br /&gt;
        If (empty($FI_STRING)) {&lt;br /&gt;
            return &#039;n/a&#039;;&lt;br /&gt;
            } else {&lt;br /&gt;
            return $FI_STRING;&lt;br /&gt;
            }&lt;br /&gt;
        }else{&lt;br /&gt;
        return &#039;n/a&#039;;&lt;br /&gt;
        }&lt;br /&gt;
}&lt;br /&gt;
&lt;/blockquote&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Verwendete PHP Funktionen : &lt;/strong&gt; &lt;a href=&quot;http://php.net/manual/de/function.strip-tags.php&quot; title=&quot;strip_tags&quot; target=&quot;_blank&quot;&gt;strip_tags&lt;/a&gt; | &lt;a href=&quot;http://www.php.net/manual/de/function.substr.php&quot; title=&quot;substr&quot; target=&quot;_blank&quot;&gt;substr&lt;/a&gt; | &lt;a href=&quot;http://www.php.net/manual/de/function.stripos.php&quot; title=&quot;stripos&quot; target=&quot;_blank&quot;&gt;stripos&lt;/a&gt; | &lt;a href=&quot;http://www.php.net/manual/de/function.trim.php&quot; title=&quot;trim&quot; target=&quot;_blank&quot;&gt;trim&lt;/a&gt; | &lt;a href=&quot;http://www.php.net/manual/de/function.str-replace.php&quot; title=&quot;str_replace&quot; target=&quot;_blank&quot;&gt;str_replace&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 
    </content:encoded>

    <pubDate>Sun, 14 Nov 2010 10:38:35 +0100</pubDate>
    <guid isPermaLink="false">http://hope-this-helps.de/serendipity/archives/251-guid.html</guid>
    <category>php</category>
<category>scripts + code schnipsel</category>
<category>string</category>
<category>stripos</category>
<category>str_replace</category>
<category>trim</category>
<category>zerlegen</category>

</item>
<item>
    <title>Konvertierung VBE zu VBS</title>
    <link>http://hope-this-helps.de/serendipity/archives/250-Konvertierung-VBE-zu-VBS.html</link>
            <category>Scripts + Code Schnipsel</category>
            <category>VBS / WSH</category>
    
    <comments>http://hope-this-helps.de/serendipity/archives/250-Konvertierung-VBE-zu-VBS.html#comments</comments>
    <wfw:comment>http://hope-this-helps.de/serendipity/wfwcomment.php?cid=250</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://hope-this-helps.de/serendipity/rss.php?version=2.0&amp;type=comments&amp;cid=250</wfw:commentRss>
    

    <author>nospam@example.com (Ralf Entner)</author>
    <content:encoded>
    &lt;strong&gt;Problem&lt;/strong&gt;&lt;br /&gt;
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?&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Lösung&lt;/strong&gt;&lt;br /&gt;
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 -&gt; test.vbe_decrypted.txt). Hier nun das Skript...dieses einfach als decrypt_vbs.vbs speichern und die gewünschte VBE-Datei entweder per Drag&amp;Drop fallen lassen oder per integrierter Browse-Funktion suchen.&lt;br /&gt;
&lt;blockquote&gt;&lt;br /&gt;
option explicit&lt;br /&gt;
Dim oArgs, NomFichier&lt;br /&gt;
&#039;Optional argument : the encoded filename&lt;br /&gt;
NomFichier=&quot;&quot;&lt;br /&gt;
Set oArgs = WScript.Arguments&lt;br /&gt;
Select Case oArgs.Count&lt;br /&gt;
Case 0 &#039;No Arg, popup a dialog box to choose the file&lt;br /&gt;
	NomFichier=BrowseForFolder(&quot;Choose an encoded file&quot;, &amp;H4031, &amp;H0011)&lt;br /&gt;
Case 1&lt;br /&gt;
	If Instr(oArgs(0),&quot;?&quot;)=0 Then &#039;-? ou /? =&gt; aide&lt;br /&gt;
		NomFichier=oArgs(0)&lt;br /&gt;
	End If&lt;br /&gt;
Case Else&lt;br /&gt;
	WScript.Echo &quot;Too many parameters&quot;&lt;br /&gt;
End Select&lt;br /&gt;
Set oArgs = Nothing&lt;br /&gt;
&lt;br /&gt;
If NomFichier&lt;&gt;&quot;&quot; Then&lt;br /&gt;
	Dim fso&lt;br /&gt;
	Set fso=WScript.CreateObject(&quot;Scripting.FileSystemObject&quot;)&lt;br /&gt;
	If fso.FileExists(NomFichier) Then&lt;br /&gt;
		Dim fic,contenu,ofile&lt;br /&gt;
		Set fic = fso.OpenTextFile(NomFichier, 1)&lt;br /&gt;
		Contenu=fic.readAll&lt;br /&gt;
		fic.close&lt;br /&gt;
		Set fic=Nothing&lt;br /&gt;
&lt;br /&gt;
		Const TagInit=&quot;#@~^&quot; &#039;#@~^awQAAA==&lt;br /&gt;
		Const TagFin=&quot;==^#~@&quot; &#039;&amp;amp; chr(0)&lt;br /&gt;
		Dim DebutCode, FinCode&lt;br /&gt;
		Do&lt;br /&gt;
			FinCode=0&lt;br /&gt;
			DebutCode=Instr(Contenu,TagInit)&lt;br /&gt;
			If DebutCode&gt;0 Then&lt;br /&gt;
				If (Instr(DebutCode,Contenu,&quot;==&quot;)-DebutCode)=10 Then &#039;If &quot;==&quot; follows the tag&lt;br /&gt;
					FinCode=Instr(DebutCode,Contenu,TagFin)&lt;br /&gt;
					If FinCode&gt;0 Then&lt;br /&gt;
						Contenu=Left(Contenu,DebutCode-1) &amp;amp; _&lt;br /&gt;
						Decode(Mid(Contenu,DebutCode+12,FinCode-DebutCode-12-6)) &amp;amp; _&lt;br /&gt;
						Mid(Contenu,FinCode+6)&lt;br /&gt;
					End If&lt;br /&gt;
				End If&lt;br /&gt;
			End If&lt;br /&gt;
		Loop Until FinCode=0&lt;br /&gt;
		WScript.Echo contenu&lt;br /&gt;
		Set oFile = fso.OpenTextFile(NomFichier &amp;amp; &quot;_decrypted.txt&quot;,2,True)&lt;br /&gt;
		oFile.WriteLine contenu&lt;br /&gt;
		oFile.close&lt;br /&gt;
	Else&lt;br /&gt;
		WScript.Echo Nomfichier &amp;amp; &quot; not found&quot;&lt;br /&gt;
	End If&lt;br /&gt;
	Set fso=Nothing&lt;br /&gt;
Else&lt;br /&gt;
	WScript.Echo &quot;Please give a filename&quot;&lt;br /&gt;
	WScript.Echo &quot;Usage : &quot; &amp;amp; wscript.fullname  &amp;amp; &quot; &quot; &amp;amp; WScript.ScriptFullName &amp;amp; &quot; &lt;filename&gt;&quot;&lt;br /&gt;
End If&lt;br /&gt;
&lt;br /&gt;
Function Decode(Chaine)&lt;br /&gt;
	Dim se,i,c,j,index,ChaineTemp&lt;br /&gt;
	Dim tDecode(127)&lt;br /&gt;
	Const Combinaison=&quot;1231232332321323132311233213233211323231311231321323112331123132&quot;&lt;br /&gt;
&lt;br /&gt;
	Set se=WSCript.CreateObject(&quot;Scripting.Encoder&quot;)&lt;br /&gt;
	For i=9 to 127&lt;br /&gt;
		tDecode(i)=&quot;JLA&quot;&lt;br /&gt;
	Next&lt;br /&gt;
	For i=9 to 127&lt;br /&gt;
		ChaineTemp=Mid(se.EncodeScriptFile(&quot;.vbs&quot;,string(3,i),0,&quot;&quot;),13,3)&lt;br /&gt;
		For j=1 to 3&lt;br /&gt;
			c=Asc(Mid(ChaineTemp,j,1))&lt;br /&gt;
			tDecode(c)=Left(tDecode(c),j-1) &amp;amp; chr(i) &amp;amp; Mid(tDecode(c),j+1)&lt;br /&gt;
		Next&lt;br /&gt;
	Next&lt;br /&gt;
	&#039;Next line we correct a bug, otherwise a &quot;)&quot; could be decoded to a &quot;&gt;&quot;&lt;br /&gt;
	tDecode(42)=Left(tDecode(42),1) &amp;amp; &quot;)&quot; &amp;amp; Right(tDecode(42),1)&lt;br /&gt;
	Set se=Nothing&lt;br /&gt;
&lt;br /&gt;
	Chaine=Replace(Replace(Chaine,&quot;@&amp;&quot;,chr(10)),&quot;@#&quot;,chr(13))&lt;br /&gt;
	Chaine=Replace(Replace(Chaine,&quot;@*&quot;,&quot;&gt;&quot;),&quot;@!&quot;,&quot;&lt;&quot;)&lt;br /&gt;
	Chaine=Replace(Chaine,&quot;@$&quot;,&quot;@&quot;)&lt;br /&gt;
	index=-1&lt;br /&gt;
	For i=1 to Len(Chaine)&lt;br /&gt;
		c=asc(Mid(Chaine,i,1))&lt;br /&gt;
		If c&lt;128 Then index=index+1&lt;br /&gt;
		If (c=9) or ((c&gt;31) and (c&lt;128)) Then&lt;br /&gt;
			If (c&lt;&gt;60) and (c&lt;&gt;62) and (c&lt;&gt;64) Then&lt;br /&gt;
				Chaine=Left(Chaine,i-1) &amp;amp; Mid(tDecode(c),Mid(Combinaison,(index mod 64)+1,1),1) &amp;amp; Mid(Chaine,i+1)&lt;br /&gt;
			End If&lt;br /&gt;
		End If&lt;br /&gt;
	Next&lt;br /&gt;
	Decode=Chaine&lt;br /&gt;
End Function&lt;br /&gt;
&lt;br /&gt;
Function BrowseForFolder(ByVal pstrPrompt, ByVal pintBrowseType, ByVal pintLocation)&lt;br /&gt;
	Dim ShellObject, pstrTempFolder, x&lt;br /&gt;
	Set ShellObject=WScript.CreateObject(&quot;Shell.Application&quot;)&lt;br /&gt;
	On Error Resume Next&lt;br /&gt;
	Set pstrTempFolder=ShellObject.BrowseForFolder(&amp;H0,pstrPrompt,pintBrowseType,pintLocation)&lt;br /&gt;
	BrowseForFolder=pstrTempFolder.ParentFolder.ParseName(pstrTempFolder.Title).Path&lt;br /&gt;
	If Err.Number&lt;&gt;0 Then BrowseForFolder=&quot;&quot;&lt;br /&gt;
	Set pstrTempFolder=Nothing&lt;br /&gt;
	Set ShellObject=Nothing&lt;br /&gt;
End Function&lt;br /&gt;
&lt;/blockquote&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Quelle:&lt;/strong&gt; &lt;u&gt;&lt;a href=&quot;http://www.interclasse.com/scripts/decovbe.php&quot;&gt;Decode all files encoded (original version)&lt;/a&gt;&lt;/u&gt; 
    </content:encoded>

    <pubDate>Mon, 18 Oct 2010 10:31:17 +0200</pubDate>
    <guid isPermaLink="false">http://hope-this-helps.de/serendipity/archives/250-guid.html</guid>
    <category>entschlüsseln</category>
<category>scripts + code schnipsel</category>
<category>vbe</category>
<category>vbs</category>
<category>vbs / wsh</category>

</item>
<item>
    <title>VBS / WSH Pseudo Timestamp erstellen</title>
    <link>http://hope-this-helps.de/serendipity/archives/244-VBS-WSH-Pseudo-Timestamp-erstellen.html</link>
            <category>Scripts + Code Schnipsel</category>
            <category>VBS / WSH</category>
    
    <comments>http://hope-this-helps.de/serendipity/archives/244-VBS-WSH-Pseudo-Timestamp-erstellen.html#comments</comments>
    <wfw:comment>http://hope-this-helps.de/serendipity/wfwcomment.php?cid=244</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://hope-this-helps.de/serendipity/rss.php?version=2.0&amp;type=comments&amp;cid=244</wfw:commentRss>
    

    <author>nospam@example.com (Christopher Pope)</author>
    <content:encoded>
    Diese Funktion erstellt einen Pseudotimestamp , ist ganz gut wenn man Logfiles oder ähnliches schreiben möchte&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote&gt;&lt;br /&gt;
Function PTimestamp()&lt;br /&gt;
Dim JAH,MON,SEK,STU,TAG,MIN&lt;br /&gt;
JAH = Year(Now)&lt;br /&gt;
If Month(Now) &lt; 10 then&lt;br /&gt;
	mon = &quot;0&quot; &amp;amp; Month(Now)&lt;br /&gt;
Else&lt;br /&gt;
	mon = Month(Now)&lt;br /&gt;
End If&lt;br /&gt;
If Day(Now) &lt; 10 then&lt;br /&gt;
	TAG = &quot;0&quot; &amp;amp; Day(Now)&lt;br /&gt;
Else&lt;br /&gt;
	TAG = Day(Now)&lt;br /&gt;
End If&lt;br /&gt;
If Hour(Now) &lt; 10 then&lt;br /&gt;
	STU = &quot;0&quot; &amp;amp; Hour(Now)&lt;br /&gt;
Else&lt;br /&gt;
	STU = Hour(Now)&lt;br /&gt;
End If&lt;br /&gt;
If Minute(now) &lt; 10 then&lt;br /&gt;
	MIN = &quot;0&quot; &amp;amp; Minute(now)&lt;br /&gt;
Else&lt;br /&gt;
	MIN = Minute(now)&lt;br /&gt;
End If&lt;br /&gt;
If Second(Now) &lt; 10 then&lt;br /&gt;
	SEK = &quot;0&quot; &amp;amp; Second(Now)&lt;br /&gt;
Else&lt;br /&gt;
	SEK = Second(Now)&lt;br /&gt;
End If&lt;br /&gt;
PTimestamp = TAG &amp;amp; MON &amp;amp; JAH &amp;amp; STU &amp;amp; MIN &amp;amp; SEK &lt;br /&gt;
End Function&lt;br /&gt;
&lt;/blockquote&gt;&lt;br /&gt;
&lt;br /&gt;
Die Funktion kann dann z.B. so aufgerufen werden.&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote&gt;&lt;br /&gt;
MsgBox &quot;TEST_&quot; &amp;amp; PTimestamp()&lt;br /&gt;
&lt;/blockquote&gt; 
    </content:encoded>

    <pubDate>Thu, 29 Jul 2010 10:25:06 +0200</pubDate>
    <guid isPermaLink="false">http://hope-this-helps.de/serendipity/archives/244-guid.html</guid>
    <category>date</category>
<category>scripts + code schnipsel</category>
<category>timestamp</category>
<category>vbs</category>
<category>vbs / wsh</category>

</item>
<item>
    <title>NetInformations.hta</title>
    <link>http://hope-this-helps.de/serendipity/archives/209-NetInformations.hta.html</link>
            <category>HTA</category>
    
    <comments>http://hope-this-helps.de/serendipity/archives/209-NetInformations.hta.html#comments</comments>
    <wfw:comment>http://hope-this-helps.de/serendipity/wfwcomment.php?cid=209</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://hope-this-helps.de/serendipity/rss.php?version=2.0&amp;type=comments&amp;cid=209</wfw:commentRss>
    

    <author>nospam@example.com (Christopher Pope)</author>
    <content:encoded>
    &lt;strong&gt;Problem :&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
Man sucht verschiedenste Informationen über einen Benutzer / Gruppe oder einen Computer zu ermitteln.&lt;br /&gt;
Es stehen einige Bordmittel für Windows zur Verfügung, wer sich mit der Kommandozeile auskennt weiß das,&lt;br /&gt;
für alle anderen gibt diese GUI die die Abfragen etwas erleichtert.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Lösung :&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
Eine kleine GUI für die MS Tools :&lt;br /&gt;
&lt;br /&gt;
- ping&lt;br /&gt;
- nbtstat&lt;br /&gt;
- qwinsta&lt;br /&gt;
- net group&lt;br /&gt;
- net user&lt;br /&gt;
&lt;br /&gt;
Download : &lt;a href=&quot;http://hope-this-helps.de/serendipity/index.php?serendipity[subpage]=Downloads&amp;thiscat=13&amp;file=44&quot; title=&quot;GUI für verschiedene Netztools&quot;&gt;NetInformations.hta&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Bilder :&lt;br /&gt;
&lt;!-- s9ymdb:33 --&gt;&lt;img class=&quot;serendipity_image_left&quot; width=&quot;755&quot; height=&quot;213&quot;  src=&quot;http://hope-this-helps.de/serendipity/uploads/Bilder/Netinfo_02.JPG&quot;  alt=&quot;&quot; /&gt;&lt;!-- s9ymdb:32 --&gt;&lt;img class=&quot;serendipity_image_left&quot; width=&quot;369&quot; height=&quot;207&quot;  src=&quot;http://hope-this-helps.de/serendipity/uploads/Bilder/Netinfo_01.JPG&quot;  alt=&quot;&quot; /&gt;&lt;br /&gt;
&lt;br /&gt;
Letztes Update am 26.03.2010 
    </content:encoded>

    <pubDate>Fri, 26 Mar 2010 09:42:00 +0100</pubDate>
    <guid isPermaLink="false">http://hope-this-helps.de/serendipity/archives/209-guid.html</guid>
    <category>HTA</category>

</item>
<item>
    <title>Inputbox an bestimmter Position anzeigen</title>
    <link>http://hope-this-helps.de/serendipity/archives/220-Inputbox-an-bestimmter-Position-anzeigen.html</link>
            <category>VBS / WSH</category>
    
    <comments>http://hope-this-helps.de/serendipity/archives/220-Inputbox-an-bestimmter-Position-anzeigen.html#comments</comments>
    <wfw:comment>http://hope-this-helps.de/serendipity/wfwcomment.php?cid=220</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://hope-this-helps.de/serendipity/rss.php?version=2.0&amp;type=comments&amp;cid=220</wfw:commentRss>
    

    <author>nospam@example.com (Ralf Entner)</author>
    <content:encoded>
    &lt;strong&gt;Problem&lt;/strong&gt;&lt;br /&gt;
Man möchte eine Inputbox an eine bestimmte Position am Bildschirm anzeigen lassen um z.B. eine andere Anwendung nicht zu verdecken.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Lösung&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote&gt;InputBox ( &quot;title&quot;, &quot;Prompt&quot; [, &quot;Default&quot; [, &quot;password char&quot; [, Width, Height [, Left, Top [, TimeOut]]]]] )&lt;/blockquote&gt;&lt;br /&gt;
&lt;strong&gt;Parameter&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;title&lt;/strong&gt; = Der Titel der InputBox &lt;br /&gt;
&lt;strong&gt;prompt&lt;/strong&gt; = Ein Beschreibungstext für den Nutzer, damit er weiß, was er eingeben soll. &lt;br /&gt;
&lt;strong&gt;password char [optional]&lt;/strong&gt; = Das Zeichen, mit dem alle eingegebenen Zeichen maskiert werden. Wenn du willst, dass das echte Zeichen angezeigt werden soll, dann übergebe einen leeren String (&quot;&quot;) (Standardwert) oder ein Leerzeichen als erstes Zeichen. Wenn du einen mehrere Zeichen langen String angibst, wird nur das erste Zeichen zum Maskieren genutzt. Die weiteren Zeichen haben eine besondere Bedutung. Siehe dazu die Bemerkungen. &lt;br /&gt;
&lt;strong&gt;width [optional] &lt;/strong&gt;= Die Breite des Fensters. Wenn die Breite definiert wird, muss auch die Höhe angegeben werden. Gib -1 an, um die Standardbreite zu verwenden. &lt;br /&gt;
&lt;strong&gt;height [optional]&lt;/strong&gt; =Die Höhe des Fensters. Wenn die Höhe definiert wird, muss auch die Breite angegeben werden. Gib -1 an, um die Standardhöhe zu verwenden &lt;br /&gt;
&lt;strong&gt;left [optional] &lt;/strong&gt;= Horizontale Position der InputBox. Standardmäßig wird die Box zentriert. Wenn angegeben, muss auch die vertikale Position bestimmt werden. &lt;br /&gt;
&lt;strong&gt;top [optional] &lt;/strong&gt;= Vertikale Position der InputBox. Standardmäßig wird die Box zentriert. Wenn angegeben, muss auch die horizontale Position bestimmt werden. &lt;br /&gt;
&lt;strong&gt;timeout [optional]&lt;/strong&gt; = Wie viele Sekunden soll gewartet werden, bis die InputBox automatisch über den Cancel-Button verlassen wird. &lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Quelle autoit.de:&lt;/strong&gt; &lt;a href=&quot;http://www.autoit.de/dokumentation/functions/InputBox.htm&quot;&gt;InputBox - Referenz&lt;/a&gt; 
    </content:encoded>

    <pubDate>Thu, 25 Mar 2010 16:19:38 +0100</pubDate>
    <guid isPermaLink="false">http://hope-this-helps.de/serendipity/archives/220-guid.html</guid>
    <category>VBS / WSH</category>

</item>

</channel>
</rss>
