VB-Script

LDAP Abfrage global

Dieses Script ist der gezielten LDAP-Abfrage sehr ähnlich.

Jedoch sucht es für jeden vorhandenen Service im Serververzeichnis die Zuordnung im AD heraus.

Was dabei herauskommt, ist für einen Audit evtl. ganz nützlich ...

Link erstellen

Oft hat man bei der SW-Verteilung das Problem, dass Links, also Verknüpfungen im Startmenü neu erstellt werden müssen.

Um nicht jedes mal aufs neue einen Link erstellen, paketieren und verteilen zu müssen, kann man auf VBScript zurückgreifen, das für dieses Problem eine ideale Lösung ist.

 

Read the fucking MSI

Um den Kollegen die Arbeit etwas zu erleichtern, kam dieses Script zustande.

Ein durch Repackaging erzeugtes MSI wird ausgelesen (Property-Table) und die gewünschten Daten werden in eine SMS-Datei (vormals PDF Package Definition File) geschrieben.
Statt "Company" kann man auch den Namen seiner Firma eintragen

Nix großes, aber die MSI-Datenbank anzuzapfen ist dann doch ganz witzig.

Hilfe kam hier von MS.

Das Script erwartet als Parameter den Dateinamen eines MSI-Files. Also am besten per Drag'n Drop das MSI auf die VBS-Datei ziehen.
Ein paar Zeilen weiter unten git es eine Angabe für das Zielverzeichnis der SMS-Datei. Entweder Sie legen das Verzeichnis analog zur Angabe unten an, oder Sie ändern hier im Script die Angabe.

Kommentar eines Nutzers:

online classes 2017-04-20 11:18

It's actually a great and helpful piece of
info. I'm happy that you just shared this useful information with us.
Please keep us informed like this. Thanks for sharing.

Query MSIExec

Das Problem:

Aus einer Batch heraus wird eine setup.exe gestartet, die wiederum mehrere msiexec-Prozesse startet und sich selbst dann beendet.
Da die exe-Datei beendet ist, läuft die Batch weiter und beendet sich im ungünstigsten Falle selbst. Man hat also keinerlei Möglichkeit zur Kontrolle der Installation. Nahe liegend ist eine Abfrage nach den msiexec-Prozessen. Jetzt wird es interessant, denn ein Prozess bleibt auch nach der Installation immer noch im Taskmanager, nämlich der gestartete Windows Installer Dienst.
Ich kann also nicht darauf warten, bis jeder msiexec-Prozess sich beendet hat, sonst läuft das Script in einer Endlos-Schleife.
Hier kommt die Lösung aus dem WMI. Ich frage einfach die Summe der gestarteten msiexec-Prozesse ab und erst wenn nur noch einer läuft, beendet sich mein Script.
Eingebaut in eine Batch lässt sich so wieder der Verlauf steuern.

Read the fucking MSI (Part II)

Die gleiche Routine wie bei "MSI auslesen", aber hier erfolgt die Datenübergabe an %comspec% per wscript.echo.

Batches können in dieser Konstellation drei Parameter abgreifen.

Nämlich so :

set MSI-Datei = lalala.msi
for /f "delims=* tokens=1-3" %%a in ('cscript //nologo "%~dp0Data\setenv2.vbs" "%~dp0install\%MSI-Datei%"') do (
set Produktname=%%a
set Installversion=%%b
set MSIGUID=%%c
)

 

Der scharfäugige Beobachter sieht natürlich sofort, dass die VBS.Datei aus einer CMD heraus aufgerufen wird und vom VBS ausgelesene Werte einer MSI-Datei zurückgibt.

 

Parent Directory

Dieses Script war die Antwort auf einen "Hilferuf" aus dem Web.

Dateien eines bestimmten Typs sollen an eine zentrale Stelle kopiert werden. Existiert die übergeordnete Ordnerstruktur der Quelldatei nicht auf dem Ziellaufwerk, so wird diese dort angelegt.
Bisher werden nur Dateien eines vorher definierten Typs kopiert, jedoch kann man die Routine entwerder variablisieren oder per Inputbox arbeiten...
Dieses Script fragt einen Pfad ab, aus dem heraus Dateien kopiert werden sollen. Wenn im Ziel die Ordnerstruktur nicht vorhanden ist, so wird diese angelegt.

CheckProcess

Dieses kleine Script erwartet als Startparameter einen Prozessnamen.

Solange dieser Prozess läuft, wartet die Routine in einem Loop. Erst wenn der Prozess beendet ist, beendet sich auch das Script.

Ich habe dieses Script erstellt, um einen Kontrollmechanismus zu ermöglichen für automatische Installationen, die aus einer Batchdatei heraus gestartet werden. Man könnt jetzt auch sagen, dafür gibt es doch auch Tools wie tlist.exe, aber hier spielt wohl auch der persönliche Ehrgeiz eine Rolle... :-)

Hier kommt der Code :

Read Excel

Dieses Script habe ich aus der Anforderung heraus geschrieben, die SW-Inventur von SMS mit dem Inhalt eines DFS-Share zu vergleichen.
Die Inventur von SMS wird aus einem gelieferten Excelsheet gelesen und mit dem Inhalt einer CSV-Datei verglichen.
Zum guten Schluss wird in eine dritte Datei das Ergebnis geschrieben.

RegDump

Sinn und Zweck dieses Scriptes ist das Vergleichen der lokalen Registry vor und nach dem Installieren einer Software.
Gerade große SW-Pakete bringen eine Reihe von einzelnen Setups mit sich, die als Prereq oder zur Laufzeit der SW gebraucht werden.
Diese zusätzliche Software soll erfasst werden, um dem Softwaremanagement einen besseren Überblickt über eingesetzte Produkte zu geben.

Nachstehendes Script ist NOCH NICHT fertig. Es fehlt der funktionierende Dateienvergleich
und damit das erstellen des Deltas.

Filesearch recursive

Mit freundlicher Erlaubnis eines Kollegen.

Remote Filecopy

Wieder mal was neues...

Eine lokale Datei soll auf einen Remote-Share übertragen werden. Allerdings nur, wenn sie lokal neuer ist, als auf dem Share.

Das Script kopiert also nicht stur vor sich hin, sondern überprüft auf die Timestamps, was den aufkommenden Datentransfer angesichts täglicher Logins von PCs (im 4-stelligen Bereich) natürlich erheblich verringert.

Hier kommt der Code :

ResourceCopy

Dieses Script ist mir in meinem derzeitigen Projekt in Hamburg sehr nützlich.
Nachdem mir in den ersten Tagen Kopiervorgänge in das Netzwerk mehrfach abgebrochen sind, und ich dann also immer wieder von vorne beginnen musste, habe ich mich an robocopy erinnert.

Dank einiger toller Scripte von Dieseyer und aus dem Source-Center, die zwar für einen anderen Zweck gedacht waren, ging die Arbeit natürlich etwas leichter von statten.

Zunächst wird vorausgesetzt, dass wenn von Laufwerk C: kopiert werden soll, in einen vorbestimmten Zielordner kopiert wird. Ist die Quelle nicht auf dem C: - Laufwerk, erscheint ein Auswahldialog für den Zielordner.

Im nächsten Schritt wird der Speicherort von robocopy abgefragt und in die Registry geschrieben. Ist dieser Wert einmal vorhanden, dann erscheint dieser Dialog auch nicht mehr.

Als Goodie gibt es dann noch einen Link im SendTo, also im Kontextmenü.

Das Script erwartet einen Parameter zur Laufzeit. Wird es per Doppelklick gestartet, gibt es eine Fehlermeldung.

Also beim ersten Start einfach den Quellordner auf das VBS-Script ziehen. Danach über "Senden an".

Viel Spass damit.

<<  1 [23  >>