Script für BG info
davidson (Level 1) - Jetzt verbinden
22.01.2011, aktualisiert 18.10.2012, 9367 Aufrufe, 17 Kommentare
Script für BG info
Hallo
Ich habe ein kleines Problem. Ich benutze Bg info, jetzt will ich Inhalt einer Text datei auf meinem Desktop haben. Die Text Datei liegt auf einem Freigegeben Ordner. Zb \\meineserver\odner\textdatei. Der Name des Servers ist immer unterschidlich, der richtige Name liegt in der Registry. Das heißt gibt einen Eintrag in registry mit dem aktuelen Namen des Servers.
Nach meiner rechechen kann man mit VBS script machen aber mit vbs habe ich nicht viel Ahnung.
Können sie mir bitte helfen.
Danke!
Ich habe ein kleines Problem. Ich benutze Bg info, jetzt will ich Inhalt einer Text datei auf meinem Desktop haben. Die Text Datei liegt auf einem Freigegeben Ordner. Zb \\meineserver\odner\textdatei. Der Name des Servers ist immer unterschidlich, der richtige Name liegt in der Registry. Das heißt gibt einen Eintrag in registry mit dem aktuelen Namen des Servers.
Nach meiner rechechen kann man mit VBS script machen aber mit vbs habe ich nicht viel Ahnung.
Können sie mir bitte helfen.
Danke!
17 Antworten
- LÖSUNG pieh-ejdsch schreibt am 22.01.2011 um 12:20:01 Uhr
- LÖSUNG Schwinni79 schreibt am 22.01.2011 um 12:42:06 Uhr
- LÖSUNG 60730 schreibt am 22.01.2011 um 13:37:53 Uhr
- LÖSUNG pieh-ejdsch schreibt am 22.01.2011 um 15:04:55 Uhr
- LÖSUNG Friemler schreibt am 22.01.2011 um 19:54:24 Uhr
- LÖSUNG davidson schreibt am 23.01.2011 um 08:42:37 Uhr
- LÖSUNG Friemler schreibt am 23.01.2011 um 14:53:06 Uhr
- LÖSUNG davidson schreibt am 23.01.2011 um 17:25:37 Uhr
- LÖSUNG Friemler schreibt am 23.01.2011 um 20:50:57 Uhr
- LÖSUNG davidson schreibt am 25.01.2011 um 09:04:47 Uhr
- LÖSUNG 60730 schreibt am 25.01.2011 um 10:49:47 Uhr
- LÖSUNG davidson schreibt am 25.01.2011 um 11:33:26 Uhr
- LÖSUNG Friemler schreibt am 25.01.2011 um 12:05:54 Uhr
- LÖSUNG davidson schreibt am 25.01.2011 um 15:07:24 Uhr
- LÖSUNG 60730 schreibt am 25.01.2011 um 18:24:43 Uhr
- LÖSUNG davidson schreibt am 26.01.2011 um 11:01:48 Uhr
- LÖSUNG davidson schreibt am 26.01.2011 um 11:04:16 Uhr
- LÖSUNG davidson schreibt am 26.01.2011 um 11:01:48 Uhr
- LÖSUNG 60730 schreibt am 25.01.2011 um 18:24:43 Uhr
- LÖSUNG davidson schreibt am 25.01.2011 um 15:07:24 Uhr
- LÖSUNG 60730 schreibt am 25.01.2011 um 10:49:47 Uhr
- LÖSUNG davidson schreibt am 25.01.2011 um 09:04:47 Uhr
- LÖSUNG Friemler schreibt am 23.01.2011 um 20:50:57 Uhr
- LÖSUNG davidson schreibt am 23.01.2011 um 17:25:37 Uhr
- LÖSUNG Friemler schreibt am 23.01.2011 um 14:53:06 Uhr
- LÖSUNG davidson schreibt am 23.01.2011 um 08:42:37 Uhr
LÖSUNG 22.01.2011 um 12:20 Uhr
moin davidson,
Willkommen im Forum
in einer Batch könntest Du das ganze so machen:
RegKey, Eintagsname und BgInfo sowie Ordner\Text.txt etc.... sind noch anzupassen.
beim in der CMD starten - zeigt es aber nur an was es täte wenn es funktioniert
wenn dem so ist entfernst Du in Zeile 05 das @echo
PS. vllt verschiebst Du den Beitrag nach "Batch und Shell"
Gruß Phil
Willkommen im Forum
in einer Batch könntest Du das ganze so machen:
RegKey, Eintagsname und BgInfo sowie Ordner\Text.txt etc.... sind noch anzupassen.
beim in der CMD starten - zeigt es aber nur an was es täte wenn es funktioniert
wenn dem so ist entfernst Du in Zeile 05 das @echo
@echo off & setlocal
set "RegKey=hklm\SOFTWARE\Microsoft\Windows NT\CurrentVersion"
set "Eintragsname=RegisteredOwner"
set "BgInfo=D:\bginfo.exe"
for /f "tokens=2,*" %%i in ('reg query "%RegKey%" /v %Eintragsname% ^| more +2') do @echo "%BgInfo%" /iq\\%%j\Odner\Text.txt /timer:0
Gruß Phil
LÖSUNG 22.01.2011 um 12:42 Uhr
LÖSUNG 22.01.2011 um 13:37 Uhr
moin mädelz,
die Frage ist so "komplex" und trotzdem kurz gefasst, dass Pietsch @ Schwinni das Vorhaben falsch interpretiert haben.
Aber heute hab ich frei, muß keine Server warten, nur mit dem Kind spielen...
Gruß
die Frage ist so "komplex" und trotzdem kurz gefasst, dass Pietsch @ Schwinni das Vorhaben falsch interpretiert haben.
- AFAIK will er aus der Reg (welcher genau?) eine Info ziehen, wo der Server zu finden ist und dann als Zeile mit einem Pfad erweitern, wo die textdatei zu finden ist (nicht als Pfad für die .bgi) im Bginfo verwenden.
- Kann klappen, aber würde ich wohl eher so auch nicht veranstalten.
- evtl. mit einer (der logon) Batch den Pfad "zusammenbraten" die Datei auslesen und den Inhalt der Datei als Regkey hinterlegen
- und den dann mit einem vbs im Bginfo auslesen.
Aber heute hab ich frei, muß keine Server warten, nur mit dem Kind spielen...
Gruß
LÖSUNG 22.01.2011 um 15:04 Uhr
LÖSUNG 22.01.2011 um 19:54 Uhr
Hallo davidson,
das folgende Skript könnte Dein Problem lösen:
Die Variablen strServerNameRegKeyPath und strTextFilePath müssen angepasst werden. Schau Dir auch nochmal den Servernamen, so wie er in der Registry steht, und Zeile 10 an. Wenn in der Registry vor dem Servernamen bereits die beiden Backslashs eingetragen sind, musst Du sie in Zeile 10 entfernen.
Die Freigabe müsste auf jedem Server gleich heißen. Zugriffsrechte auf die Freigabe und das Verzeichnis mit der Textdatei müssen natürlich eingerichtet sein.
Um das ganze mit Timo's Vorschlag zu kombinieren, schau Dir den Quelltext an. Wie man die Textdatei mit dem Pfad zur anzuzeigenden Textdatei öffnet und ausließt kannst Du daraus ableiten. Statt ReadAll dafür aber ReadLine verwenden.
Falls Du nicht weißt, wie man das VBS-Skript in BGInfo einbindet:
Auf den Button Custom klicken, dann New.... In dem dann erscheinenden Dialog im oberen Eingabefeld einen Titel für den neuen Eintrag eingeben (z.B. "Meine Textdatei"), dann Radiobutton VB Script file. Über den Durchsuchen-Button des unteren Eingabefeldes die Datei mit obigem Code auswählen, dann beide Dialoge mit OK schließen. Im Hauptdialog in der Liste mit den verfügbaren Feldern das eben erstellte Feld auswählen (würde z.B. unter dem Namen "Meine Textdatei" dort auftauchen) und neben dem Button Custom auf den Button <- Add klicken, um das neu erstellte Feld in die Liste der anzuzeigenden Felder zu übernehmen. Im Menü File->Save As... auswählen und die aktuelle Konfiguration speichern.
Aufruf zum testen:
Wenn alles stimmt, in der Verknüpfung zum Aufruf aus dem Autostart-Verzeichnis den Parameter /popup weglassen.
Gruß
Friemler
das folgende Skript könnte Dein Problem lösen:
const ForReading = 1
strServerNameRegKeyPath = "HKLM\SOFTWARE\Microsoft\servername\meinservername"
strTextFilePath = "\Freigabe\Ordner\Textdatei"
set WshShell = CreateObject("WScript.Shell")
strServerName = WshShell.RegRead(strServerNameRegKeyPath)
set FSO = CreateObject("Scripting.FileSystemObject")
set F = FSO.OpenTextFile("\\" & strServerName & strTextFilePath, ForReading)
Echo F.ReadAll()
F.Close
set F = Nothing
set FSO = Nothing
set WshShell = Nothing
Die Freigabe müsste auf jedem Server gleich heißen. Zugriffsrechte auf die Freigabe und das Verzeichnis mit der Textdatei müssen natürlich eingerichtet sein.
Um das ganze mit Timo's Vorschlag zu kombinieren, schau Dir den Quelltext an. Wie man die Textdatei mit dem Pfad zur anzuzeigenden Textdatei öffnet und ausließt kannst Du daraus ableiten. Statt ReadAll dafür aber ReadLine verwenden.
Falls Du nicht weißt, wie man das VBS-Skript in BGInfo einbindet:
Auf den Button Custom klicken, dann New.... In dem dann erscheinenden Dialog im oberen Eingabefeld einen Titel für den neuen Eintrag eingeben (z.B. "Meine Textdatei"), dann Radiobutton VB Script file. Über den Durchsuchen-Button des unteren Eingabefeldes die Datei mit obigem Code auswählen, dann beide Dialoge mit OK schließen. Im Hauptdialog in der Liste mit den verfügbaren Feldern das eben erstellte Feld auswählen (würde z.B. unter dem Namen "Meine Textdatei" dort auftauchen) und neben dem Button Custom auf den Button <- Add klicken, um das neu erstellte Feld in die Liste der anzuzeigenden Felder zu übernehmen. Im Menü File->Save As... auswählen und die aktuelle Konfiguration speichern.
Aufruf zum testen:
bginfo "[[Laufwerk:\]Pfad\]<Konfigurationsdatei>.bgi" /popup
Gruß
Friemler
LÖSUNG 23.01.2011 um 08:42 Uhr
Danke an allen, @pieh-ejdsch; @Friemler ich werde das probieren.
ich kann nochmal genau erklären wie das ist. Clients werden gegen verschiedene Server installiert. Auf Desktop des clients müssen mittels Bg info daten ( Server Daten und Cleint daten) eingezeigt werden. Die clients sind nicht immer gegen den gleichen Server installiert. Wie man rausfindet gegen welchen Server der cleint installiert ist muss man in registry gucken.
Auf Desktop des client muss inhalt einer Datei (text datei) angezeigt werden. Die text Datei liegt auf einem Server gegen dem der client installiert ist.
Der bg info datei muss für alle clients gelten ( nur eine bg info datei soll benutz sein) und die clients sind nicht gegen der gleichen Server installiert. Um zu finden gegen welchen Server der Client installiert ist muss man in regisrty.
Ich hoffe habe das gut erklärt, wenn nicht bitte einfach fragen. Nachmal danke
ich kann nochmal genau erklären wie das ist. Clients werden gegen verschiedene Server installiert. Auf Desktop des clients müssen mittels Bg info daten ( Server Daten und Cleint daten) eingezeigt werden. Die clients sind nicht immer gegen den gleichen Server installiert. Wie man rausfindet gegen welchen Server der cleint installiert ist muss man in registry gucken.
Auf Desktop des client muss inhalt einer Datei (text datei) angezeigt werden. Die text Datei liegt auf einem Server gegen dem der client installiert ist.
Der bg info datei muss für alle clients gelten ( nur eine bg info datei soll benutz sein) und die clients sind nicht gegen der gleichen Server installiert. Um zu finden gegen welchen Server der Client installiert ist muss man in regisrty.
Ich hoffe habe das gut erklärt, wenn nicht bitte einfach fragen. Nachmal danke
LÖSUNG 23.01.2011 um 14:53 Uhr
LÖSUNG 23.01.2011 um 17:25 Uhr
Hallo @ Friemler
Registry inhalt ist ungefähr so HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\servername\meinservername. ( das ist bur ein beispiel)
Die Freigabe auf den Servern haben gleichen Namen nur die Server Namen sind anders.. Der pfad zu dem Server ist immer gleich nur die Server Name sind anders.
Danke voraus.
Registry inhalt ist ungefähr so HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\servername\meinservername. ( das ist bur ein beispiel)
Die Freigabe auf den Servern haben gleichen Namen nur die Server Namen sind anders.. Der pfad zu dem Server ist immer gleich nur die Server Name sind anders.
Danke voraus.
LÖSUNG 23.01.2011 um 20:50 Uhr
LÖSUNG 25.01.2011 um 09:04 Uhr
hallo
Ich habe den Script benutzt, hat leider nicht funktioniert, ich habe gegoogel und einen gebastelt, der lauft einwandfrei aber wenn ich in BG Info den Script einfüg kommt eine Fehlermeldung. Der Script läuft ganz gut aber in BG Info nicht. kannst du mir bitte helfen
msgboxJN = TRUE
const HKEY_LOCAL_MACHINE = &H80000002
strComputer = "."
Set StdOut = WScript.StdOut
Set oReg=GetObject( _
"winmgmts:{impersonationLevel=impersonate}!\\" &_
strComputer & "\root\default:StdRegProv")
strKeyPath = "SOFTWARE\meineserver\servername"
strValueName = "blabla_Config_Databaseserver"
strTextFilePath = "\datei\datei.txt"
oReg.GetStringValue HKEY_LOCAL_MACHINE,strKeyPath,strValueName,swValue
if msgboxJN then MsgBox "swValue: "&swValue, vbInformation & vbOKOnly, Title
unc_path = "\\" &swValue &strTextFilePath
set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile(unc_path, ForReading)
if msgboxJN then MsgBox "UNC Path : \\" & swValue & strTextFilePath, vbInformation & vbOKOnly, Title
Const ForReading = 1
Dim arrFileLines()
i = 0
Do Until objFile.AtEndOfStream
Redim Preserve arrFileLines(i)
arrFileLines(i) = objFile.ReadLine
i = i + 1
Loop
objFile.Close
'Then you can iterate it like this
For Each strLine in arrFileLines
WScript.Echo strLine
Next
Fehlermeldung:
Error evaluating scripted field "SvrLevel"
Microsoft VBScript rutine error
Line 4, position 0
Object required: "WScript"
Ich habe den Script benutzt, hat leider nicht funktioniert, ich habe gegoogel und einen gebastelt, der lauft einwandfrei aber wenn ich in BG Info den Script einfüg kommt eine Fehlermeldung. Der Script läuft ganz gut aber in BG Info nicht. kannst du mir bitte helfen
msgboxJN = TRUE
const HKEY_LOCAL_MACHINE = &H80000002
strComputer = "."
Set StdOut = WScript.StdOut
Set oReg=GetObject( _
"winmgmts:{impersonationLevel=impersonate}!\\" &_
strComputer & "\root\default:StdRegProv")
strKeyPath = "SOFTWARE\meineserver\servername"
strValueName = "blabla_Config_Databaseserver"
strTextFilePath = "\datei\datei.txt"
oReg.GetStringValue HKEY_LOCAL_MACHINE,strKeyPath,strValueName,swValue
if msgboxJN then MsgBox "swValue: "&swValue, vbInformation & vbOKOnly, Title
unc_path = "\\" &swValue &strTextFilePath
set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile(unc_path, ForReading)
if msgboxJN then MsgBox "UNC Path : \\" & swValue & strTextFilePath, vbInformation & vbOKOnly, Title
Const ForReading = 1
Dim arrFileLines()
i = 0
Do Until objFile.AtEndOfStream
Redim Preserve arrFileLines(i)
arrFileLines(i) = objFile.ReadLine
i = i + 1
Loop
objFile.Close
'Then you can iterate it like this
For Each strLine in arrFileLines
WScript.Echo strLine
Next
Fehlermeldung:
Error evaluating scripted field "SvrLevel"
Microsoft VBScript rutine error
Line 4, position 0
Object required: "WScript"
LÖSUNG 25.01.2011, aktualisiert 18.10.2012
Moin,
zwei Sachen:

btw: Ich habe das Script nicht mit dem Rechner, nur mit den Augen grob durchgeparst.
(Und eigentlich hatte ich mir auch was mit dem "Umweg" nicht alles per VBS abzukaspern gedacht)
Gruß
zwei Sachen:
- Benutze bitte <code> </code> Tags für Scripte
- Dann lese dir u.a mal das da durch.
- Und dann siehst du auch, warum in Zeile 4 das Object Wscript angemeckert wurde.
- if msgboxJN then MsgBox
btw: Ich habe das Script nicht mit dem Rechner, nur mit den Augen grob durchgeparst.
(Und eigentlich hatte ich mir auch was mit dem "Umweg" nicht alles per VBS abzukaspern gedacht)
Gruß
LÖSUNG 25.01.2011 um 11:33 Uhr
LÖSUNG 25.01.2011 um 12:05 Uhr
Hallo davidson,
mein Script läuft nicht außerhalb von BGInfo. Du musst es schon einbinden. Und weil Dein Script ausserhalb von BGInfo läuft, läuft es NICHT, wenn Du es einbindest. Statt WScript.Echo muss z.B. einfach nur Echo zum ausgeben von Text verwendet werden. Mit StdOut kannst Du auch nichts machen. => Hilfe von BGInfo lesen.
Gruß
Friemler
mein Script läuft nicht außerhalb von BGInfo. Du musst es schon einbinden. Und weil Dein Script ausserhalb von BGInfo läuft, läuft es NICHT, wenn Du es einbindest. Statt WScript.Echo muss z.B. einfach nur Echo zum ausgeben von Text verwendet werden. Mit StdOut kannst Du auch nichts machen. => Hilfe von BGInfo lesen.
Gruß
Friemler
LÖSUNG 25.01.2011 um 15:07 Uhr
LÖSUNG 25.01.2011 um 18:24 Uhr
Moin,
Bitte - gerne - aber nur unter einer Bedingung...
Dann würde das auch jemand anderes finden.
Und weil VBA SQL BGinfo nun garnix mit der ursprungsfrage gemeinsam hat - bitte hier nen Grünen Haken dran, evtl das geänderte Skript der Nachwelt präsentieren und frei nach dem Motto:
Neue Frage, neuer Fred und anderen die Chance geben zu helften oder später gehilftet zu bekommen.
Schankedöhn
Gruß
Bitte - gerne - aber nur unter einer Bedingung...
script BGinfo ist mir eine zu banale Umschreibung für das Thema.
- In BGinfo variable Textdatei anzeigen
Dann würde das auch jemand anderes finden.
Und weil VBA SQL BGinfo nun garnix mit der ursprungsfrage gemeinsam hat - bitte hier nen Grünen Haken dran, evtl das geänderte Skript der Nachwelt präsentieren und frei nach dem Motto:
Neue Frage, neuer Fred und anderen die Chance geben zu helften oder später gehilftet zu bekommen.
Schankedöhn
Gruß
LÖSUNG 26.01.2011 um 11:01 Uhr
Sofort !!
So sieht das aus. EINE WOCHE ARBEIT. Frag mich bitte nicht was jede Line bedeutet. Hauptsache tut.
msgboxJN = TRUE
const HKEY_LOCAL_MACHINE = &H80000002
strComputer = "."
Set oReg=GetObject( _
"winmgmts:{impersonationLevel=impersonate}!\\" &_
strComputer & "\root\default:StdRegProv")
strKeyPath = "SOFTWARE\blablabla\blablabla\blablabla"
strValueName = "ServerHostname"
strTextFilePath = "\Datei\Datei.txt"
oReg.GetStringValue HKEY_LOCAL_MACHINE,strKeyPath,strValueName,swValue
unc_path = "\\" &swValue &strTextFilePath
set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile(unc_path, ForReading)
Const ForReading = 1
Dim arrFileLines()
i = 0
Do Until objFile.AtEndOfStream
Redim Preserve arrFileLines(i)
arrFileLines(i) = objFile.ReadLine
i = i + 1
Loop
objFile.Close
'Then you can iterate it like this
For Each strLine in arrFileLines
Echo strLine
Next

So sieht das aus. EINE WOCHE ARBEIT. Frag mich bitte nicht was jede Line bedeutet. Hauptsache tut.
msgboxJN = TRUE
const HKEY_LOCAL_MACHINE = &H80000002
strComputer = "."
Set oReg=GetObject( _
"winmgmts:{impersonationLevel=impersonate}!\\" &_
strComputer & "\root\default:StdRegProv")
strKeyPath = "SOFTWARE\blablabla\blablabla\blablabla"
strValueName = "ServerHostname"
strTextFilePath = "\Datei\Datei.txt"
oReg.GetStringValue HKEY_LOCAL_MACHINE,strKeyPath,strValueName,swValue
unc_path = "\\" &swValue &strTextFilePath
set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile(unc_path, ForReading)
Const ForReading = 1
Dim arrFileLines()
i = 0
Do Until objFile.AtEndOfStream
Redim Preserve arrFileLines(i)
arrFileLines(i) = objFile.ReadLine
i = i + 1
Loop
objFile.Close
'Then you can iterate it like this
For Each strLine in arrFileLines
Echo strLine
Next