Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Script für BG info

Frage Entwicklung Basic

Mitglied: davidson

davidson (Level 1) - Jetzt verbinden

22.01.2011, aktualisiert 18.10.2012, 7770 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!
Mitglied: pieh-ejdsch
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

01.
@echo off & setlocal 
02.
set "RegKey=hklm\SOFTWARE\Microsoft\Windows NT\CurrentVersion" 
03.
set "Eintragsname=RegisteredOwner" 
04.
set "BgInfo=D:\bginfo.exe" 
05.
for /f "tokens=2,*" %%i in ('reg query "%RegKey%" /v %Eintragsname% ^| more +2') do @echo "%BgInfo%" /iq\\%%j\Odner\Text.txt /timer:0
PS. vllt verschiebst Du den Beitrag nach "Batch und Shell"
Gruß Phil
Bitte warten ..
Mitglied: Schwinni79
22.01.2011 um 12:42 Uhr
Hallo davidson,

ich habe eine Verständnisfrage zu deinem Vorhaben... Deine User oder du melden sich auf einem Server an. Der Name des aktuellen Servers soll bei jedem Anmeldevorgang neu abgefragt werden und dann auf dem Desktop angezeigt werden?

Michael
Bitte warten ..
Mitglied: 60730
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.

  • 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ß
Bitte warten ..
Mitglied: pieh-ejdsch
22.01.2011 um 15:04 Uhr
moin Timo,

da ich nicht die genaue Syntax von Bginfo weis, hatte ich es Versuchsweise so geschrieben.

Bruß Phil
Bitte warten ..
Mitglied: Friemler
22.01.2011 um 19:54 Uhr
Hallo davidson,

das folgende Skript könnte Dein Problem lösen:
01.
const ForReading = 1 
02.
 
03.
strServerNameRegKeyPath = "HKLM\SOFTWARE\Microsoft\servername\meinservername" 
04.
strTextFilePath = "\Freigabe\Ordner\Textdatei" 
05.
 
06.
set WshShell = CreateObject("WScript.Shell") 
07.
strServerName = WshShell.RegRead(strServerNameRegKeyPath) 
08.
 
09.
set FSO = CreateObject("Scripting.FileSystemObject") 
10.
set F = FSO.OpenTextFile("\\" & strServerName & strTextFilePath, ForReading) 
11.
Echo F.ReadAll() 
12.
F.Close 
13.
 
14.
set F = Nothing 
15.
set FSO = Nothing 
16.
set WshShell = Nothing
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:
bginfo "[[Laufwerk:\]Pfad\]<Konfigurationsdatei>.bgi" /popup
Wenn alles stimmt, in der Verknüpfung zum Aufruf aus dem Autostart-Verzeichnis den Parameter /popup weglassen.

Gruß
Friemler
Bitte warten ..
Mitglied: davidson
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
Bitte warten ..
Mitglied: Friemler
23.01.2011 um 14:53 Uhr
Hallo davidson,

wie sieht denn nun der Inhalt des Registry-Eintrags aus? Haben die Freigaben auf den Servern immer den gleichen Namen? Ist der Pfad zu den anzuzeigenden Textdateien auf den Servern immer gleich?

Gruß
Friemler
Bitte warten ..
Mitglied: davidson
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.
Bitte warten ..
Mitglied: Friemler
23.01.2011 um 20:50 Uhr
Hallo davidson,

habe das Skript oben nach Deinen Angaben angepasst.

Gruß
Friemler
Bitte warten ..
Mitglied: davidson
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"
Bitte warten ..
Mitglied: 60730
25.01.2011, aktualisiert 18.10.2012
Moin,

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
please do not use a messagebox into a silent runner


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ß
Bitte warten ..
Mitglied: davidson
25.01.2011 um 11:33 Uhr
Ich schaffe das nicht, kommt immer Fehlermeldung. Warum ist so schwierig?
Bitte warten ..
Mitglied: Friemler
25.01.2011 um 12:05 Uhr
Hallo davidson,

Zitat von davidson:
Ich habe den Script benutzt, hat leider nicht funktioniert

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
Bitte warten ..
Mitglied: davidson
25.01.2011 um 15:07 Uhr
hallo
habe das hingekriegt, danke für die Hilfe.

Noch eine Frage, hoffentlich stelle ich nicht so viel Frage.

Wie kann man SQL Statements in VBA ausführen. Ich muss werte von Datenbank lesen via BG info wieder.

Danke bitte sorry wenn ich so viele Frage stelle
Bitte warten ..
Mitglied: 60730
25.01.2011 um 18:24 Uhr
Moin,

Zitat von davidson:
Danke bitte sorry wenn ich so viele Frage stelle

Bitte - gerne - aber nur unter einer Bedingung...

script BGinfo ist mir eine zu banale Umschreibung für das Thema.
  • In BGinfo variable Textdatei anzeigen
oder irgendwas anderes sinniges - wäre doch eine Alternative für deine Überschrift. Script für BG info ist doch etwas dünn


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 warten ..
Mitglied: davidson
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



Bitte warten ..
Mitglied: davidson
26.01.2011 um 11:04 Uhr
Nochmal DANKE DANKE DANKE DANKE DANKE
Bitte warten ..
Neuester Wissensbeitrag
DSL, VDSL

Telekom blockiert immer noch den Port 7547 in ihrem Netz

(3)

Erfahrungsbericht von joachim57 zum Thema DSL, VDSL ...

Ähnliche Inhalte
Batch & Shell
gelöst PowerShell Script Move-Item nach x Tagen (5)

Frage von lupolo zum Thema Batch & Shell ...

VB for Applications
VBS Script zum versenden mehrerer Verknüpfungen zu Dateien per Lotus Notes

Frage von Sentinel87 zum Thema VB for Applications ...

Batch & Shell
Script zum Auflösen einer Ordnerstruktur und zurück gesucht (12)

Frage von websolutions zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (34)

Frage von patz223 zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (21)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Viren und Trojaner
Aufgepasst: Neue Ransomware Goldeneye verbreitet sich rasant (20)

Link von Penny.Cilin zum Thema Viren und Trojaner ...