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

Umfangreiches Projekt zum Ermitteln des Arbeitsspeicherumfangs eines PCs

Frage Entwicklung Batch & Shell

Mitglied: Teraphine

Teraphine (Level 1) - Jetzt verbinden

12.06.2008, aktualisiert 18.10.2012, 5157 Aufrufe, 27 Kommentare

Hallöchen, ich bin neu hier

Ich bin derzeit Praktikantin in einer etwas größeren Firma die Diverse PCs und Server für Firmen bereitstellt.

Nun habe ich eine Aufgabe bekommen, die vom Umfang her für meine Kenntnisse doch ein wenig hoch ist, aber da ich ein ehrgeiziger Mensch bin möchte ich mich doch daran versuchen.

Hier erstmal grob was gemacht werden sollte:

Bei einigen Kunden der Firma stehen noch recht alte PCs, die Kunden beklagen sich das diese zu langsam sind.
Ich muss nun also mit einer Batch/cmd Datei herrausfinden, wie groß der Arbeitsspeicher der Rechner ist.
Das ganze lässt sich recht einfach mit dem Programm CPUz machen, dies kann eine Text datei oder HTML Datei erstellen, in der man dann auch die Größe des Arbeitsspeichers einsehen kann.
Leider kann ich es nicht mit Windows Internen Programmen machen, da das ganze wie gesagt über eine Batch Datei laufen soll.

Das Problem dabei ist nämlich, das die PCs meistens Windows 2000 installiert haben und dort gibt es meines Wissens nach keinen Befehl der einem die Grundsätzlichen Systemkomponenten anzeigen kann. Einige wenige PCs haben Windows XP installiert, bei XP gibt es ja den CMD Befehl systeminfo, dieser gibt eine kleine Übersicht über die Systemkomponenten und ist auch Remotefähig.

Die Clients sind mit einem Server verbunden der entweder Windows 2000 Server oder Windows 2003 Server nutzt.

Da man aber nicht sofort die ganzen IP-Adressen parat hat und nicht weiß, wie viele PCs den nun am Server hängen, muss man sich das erst besorgen.

Unter "C:\WINDOWS\system32\drivers\etc" gibt es eine Datei mit dem Namen "hosts" (Ohne eine Endung), in dieser sind alle mit dem Server verbundenen PCs in Form von IP-Adressen aufgeführt.


Das müssten so grob die Rahmenbedingungen sein.

Was die Batch Datei nun also können sollte:

Sie soll auf dem Server liegen
Die "hosts" Datei auslesen
IP-Adressen aus dieser Datei Auslesen (Vielleicht in eine Text Datei verfrachten)
Jede einzelne IP-Adresse abfragen nach der Größe des Arbeitsspeichers
Das in eine Textdatei verfrachten und auf dem Server hinterlegen


Ehrlich gesagt weiß ich nicht genau, ob das mit einer Batch-Datei lösbar ist, die Datei darf auch gerne ein anderes Programm aufrufen, aber es muss alles Automatisch funktionieren.
(Deshalb die Verwendung von CPUz, dies kann mit dem Parameter -txt=system eine Textdatei mit dem Name System ausgeben der einen kleinen Überblick über die Systeme verschafft und bleibt gleichzeitig "unsichtbar" (Silent))


Ich hoffe das man mir hier soweit folgen kann was genau ich machen muss, besser kann ich es im moment nicht erklären.
Anmerkung ist noch das Firewalls keine Probleme machen werden, dafür ist schon gesorgt.

Ich glaube das es besser ist, erst die einzelnen Schritte zu verwirklichen als sich sofort auf das gesamte "Programm" zu stürzen.

Für die ganze Sache habe ich ungefähr 16 Wochentage Zeit und es ist keine Pflicht, aber ich würde es trotzdem gern versuchen

Ich bin über jeden Ratschlag hocherfreut und werde so schnell wie Möglich antworten.
Außerdem habe ich hier vor Ort einen Server an dem 2 Clients dranhängen, mit dessen Hilfe kann ich alles testen.

Nun, das wäre es von meiner Seite gewesen, nun warte ich auf eure Antworten, Ratschläge etc.

LG Teraphine
27 Antworten
Mitglied: Jochem
12.06.2008, aktualisiert 08.08.2014
Moin,
machs Dir doch nicht so schwer und wirf mal einen Blick auf:
http://www.administrator.de/Computerinventur_per_BGinfo.html

PS: Ist schon ein schwaches Bild, wenn in Eurem Laden keiner weiß, welche IP-Adressen die Kisten haben und wieviele es davon überhaupt gibt. Und die Lösung, alle Adressen in der host-Datei zu pflegen ist gelinde gesagt "suboptimal".


Gruß J chem
Bitte warten ..
Mitglied: 60730
12.06.2008, aktualisiert 18.10.2012
Hi und willkommen,

gib mal

dxdiag /t \\server\freigabe\%computername%.txt
ipconfig -all >> \\server\freigabe\%computername%.txt
ein.

Damit kriegst du mit Boardmitteln sehr viele Infos des Systems heraus.

Das würde ich mal bei den Anwendern ins Loginskript schreiben.

Das Auslesen der hosts (wtf) hat die denn erstellt - gibts keinen DNS Server? - würde ich nicht wirklich machen.
Was passiert, wenn einer der Rechner aus ist?

Alternativ - ohne Boardmittel - schau mal nach dieser Anleitung
http://www.administrator.de/wissen/computerinventur-per-bginfo-%28rewor ...
Gruß
Bitte warten ..
Mitglied: miniversum
12.06.2008 um 11:06 Uhr
Die IP Adressen aus der hosts Datei kannst du in einer Batch per For Schleife so auslesen:
01.
FOR /F "eol=# delims= " %%i in ("%windir%\system32\drivers\etc\hosts") do echo %%i
Was vielleicht auch eine Möglichkeit wäre, wenn due PCs startsyipts benutzen könntest du dort doch CPUz dort dan ausführen und die Dateien auf ein Verzeichnis des Servers speichern worauf alle Zugriff haben. Als Parameter kanst dud an angeben
-txt=\\Serverfreigabe\%computername%.txt
So hast du dann wenn jeder PC mal hochgefahren wurde von jedem eine Datei mit seinen Komponenten.
Bitte warten ..
Mitglied: Teraphine
12.06.2008 um 11:34 Uhr
Das ihr so schnell im Antworten seid, hätte ich nicht gedacht

Also, das mit der Computerinventur ist leider nicht möglich, da weder auf dem Server Office Installiert ist, noch auf dem Client die "Microsoft Data Access Components (MDAC) 2.8" installiert sind.

Ich sag es mal so, bei den meisten "Clients" handelt es sich um Kassensysteme, die Tagsüber immer laufen den mit ihrer Hilfe werden ja die Kunden in den Läden bedient. Die anderen sind kleine Desktop PCs die auch den ganzen Tag lang laufen, wenn nichts dazwischen kommt.


Zum Thema warumm die Firma keinen Überblick hat:

Es sind im moment etwas über 300 Kunden die jeweils meist mindestens 3 Client PCs haben, das da die Übersicht flöten geht ist vielleicht verständlich.
Klar sind die IP-Adressen notiert, diese Aufzeichnungen liegen aber in einer anderen Geschäftsstelle und sind für uns im moment nicht erreichbar da der dazu benötige Mann Urlaub hat.

Schonmal danke an TimoBeil und miniversum, eure Vorschläge werde ich jetzt mal ausprobieren
Bitte warten ..
Mitglied: 56153
12.06.2008 um 11:40 Uhr
hi,

du kannst es auch mit Spiceworks probieren. http://www.spiceworks.com

Ist ein kostenloses Inventarisierungstool. Einfach auf einen Rechner (z.B. Notebook) installieren, das Ding mit in die Domäne(n) hängen und scannen lassen.

Der gibt dir alle nötigen Infos in schön formatierten Berichten (Excel, CSV, PDF) zurück
Bitte warten ..
Mitglied: Teraphine
12.06.2008 um 12:01 Uhr
Mit Spiceworks wird das leider auch nichts, da man sich dazu anmelden muss und man nicht weiß, was dann mit denn Daten passiert.

@ TimoBeil

Die Lösund mit DXDIAG klappt leider nicht, da auf den Clientsystemen nur DirectX 7.0 installiert ist, aber das Parameter /t erst ab 8.0 Unterstützt wird.
Wenn ich das so eingebe, dann macht der Windows 2000 Rechner garnichts, da DX7, der XP Rechner mit DX8 legt aber sofort los und speichert es in eine Datei.

@ miniversum

Bei deiner for Schleife macht er bei mir nichts, er gibt keinen Wert aus und speichert auch nichts.
Tschuldige aber ich habe von der Thematik mit BATch Dateien noch nicht besonders viel durchblick und auch von anderen Programmiersprachen ist bei mir nicht viel mehr.

Könntest du mir den Befehl mal erklären?
Bitte warten ..
Mitglied: miniversum
12.06.2008 um 12:52 Uhr
Das war ungetestet gepostet.
So sollte es gehen:
01.
FOR /F "eol=# delims= " %%i in ('type "%windir%\system32\drivers\etc\hosts"') do echo %%i
Dabei liest der die hosts Datei aus.
Zeilen die mit einem # beginnen überspringt er.
Der Aufbau der hosts Datei ist ja nach folgendem Schema:
127.0.0.1 localhost
Es wird also immer das ausgelesen was am anfang der Zeile steht bis zum ersten Leerzeichen.
Bitte warten ..
Mitglied: 60730
12.06.2008 um 13:07 Uhr
Hi,

ok dann mal anders.....

Von dieser Seite habe ich folgenden Schnippsel...
01.
Option Explicit 
02.
Dim objWMIService, objComputer, colComputer 
03.
Dim strLogonUser, strComputer 
04.
 
05.
strComputer = "." 
06.
 
07.
Set objWMIService = GetObject("winmgmts:" _ 
08.
& "{impersonationLevel=impersonate}!\\" _ 
09.
& strComputer & "\root\cimv2") 
10.
Set colComputer = objWMIService.ExecQuery _ 
11.
("Select * from Win32_ComputerSystem") 
12.
 
13.
For Each objComputer in colComputer 
14.
Wscript.Echo "System Name: " & objComputer.Name _ 
15.
& vbCr & "Total RAM " & objComputer.TotalPhysicalMemory 
16.
Next 
17.
 
18.
WScript.Quit 
19.
 
Wenn du das als memory.vbs abspeicherst und es mit
memory.vbs //NoLogo > C:\%computername%.txt
aufrufst - hast du für deinen Rechner strComputer = "." schon mal den Ramwert. (in der Datei C:\%computername%.txt)

Nun gibt es sowohl die Variante das vbs temporär zu erstellen und jeweils den Computernamen (strComputer = ".") in dem Script zu ändern, oder per Psexec dieses vbs von einem Rechner zu starten und dort alle Systeme aus der hosts anzusteuern.
E.d.i.t. - vorne eine Leere Zeile gelöscht, die "hinten unbedingt drin sein muß.
Variante 1:
memory1.tmp
01.
Option Explicit 
02.
Dim objWMIService, objComputer, colComputer 
03.
Dim strLogonUser, strComputer 
04.
 
memory3.tmp
01.
Set objWMIService = GetObject("winmgmts:" _ 
02.
& "{impersonationLevel=impersonate}!\\" _ 
03.
& strComputer & "\root\cimv2") 
04.
Set colComputer = objWMIService.ExecQuery _ 
05.
("Select * from Win32_ComputerSystem") 
06.
For Each objComputer in colComputer 
07.
Wscript.Echo "System Name: " & objComputer.Name _ 
08.
& vbCr & "Total RAM " & objComputer.TotalPhysicalMemory 
09.
Next 
10.
 
11.
WScript.Quit
Jetzt müsstest du nur folgendes machen:

01.
echo strComputer = "%computername%" > memory2.tmp 
02.
copy /b memory1.tmp + memory2.tmp + memory3.tmp memory.vbs 
03.
memory.vbs //NoLogo > C:\%computername%.txt 
04.
del /q memory?.tmp 
05.
del /q memory.vbs
Und es gibt ganz sicher noch viele Wege / Varianten mehr. Aber dazu würde ich auch ganz gerne noch unsere beiden Spezialisten hören- abwarten und Tee trinken.

Und wegen der hosts - kopier dir die doch einfach und lösche die Kommentare -die mit ### anfangen.
Bitte warten ..
Mitglied: Teraphine
12.06.2008 um 14:03 Uhr
Dein Erstes VBS Script funktioniert soweit, bis darauf das in der erstellten Textdatei mit dem Computernamen nichts drin steht, sie ist auch 0kb groß.
Bitte warten ..
Mitglied: 60730
12.06.2008 um 14:18 Uhr
upps..

starte das vbs mal "alleine"

memory.vbs //NoLogo

kommt da auch nix?
Bitte warten ..
Mitglied: Teraphine
12.06.2008 um 14:32 Uhr
Es bleibt genau so wie es vorher auch war, Datei ist leer und 0kb groß.
Bitte warten ..
Mitglied: 60730
12.06.2008 um 14:40 Uhr
ja -das ist in dem Fall klar - durch das weglassen von > C:\%computername%.txt nach dem .vbs Aufruf wird die datei auch nicht geschrieben und die Ausgabe sollte aber dann in einem Popoupfenster auftauchen.
Ich hab Hier W2k, da läuft es.

Probiers bitte mal mit
Cscript memory.vbs
Anzeige incl. Script Host in der Dosbox
und
Wscript memory.vbs
Popupfenster
Bitte warten ..
Mitglied: Teraphine
12.06.2008 um 15:03 Uhr
Ich habe es zusammem mit deinem ersten Codebeispiel verwendet und es funktioniert!
Jetzt müsste nur noch das Auslesen der hosts Datei funktionieren, und das automatische Abarbeiten der Inhalte der hosts Datei mit dem ersten Codebeispiel.

Das alles dann zusammen in eine BATch Datei und ich habe dank dir fertig
Bitte warten ..
Mitglied: 60730
12.06.2008 um 16:52 Uhr
Bitte folgendes in c:\host - als host.cmd abspeichern
01.
if not exist c:\host md c:\host 
02.
echo off 
03.
findstr 1 %windir%\system32\drivers\etc\hosts >c:\host\host.txt 
04.
FOR /f  %%f IN (c:\host\host.txt) DO (@echo strComputer = "%%f" >c:\host\memory2.tmp 
05.
 copy /b memory1.tmp + memory2.tmp + memory3.tmp %%f.vbs ) 
06.
FOR /f  %%f IN ('DIR /b c:\host\*.vbs') Do (cscript /nologo c:\host\%%f>>C:\host\komplett.txt)
Dazu noch die vorherigen Schnippsel memory1.tmp und memory3.tmp auch in den Ordner c:\host

Wenn du das nun laufen läßt, sollte in c:\host für jeden Rechner ein eigenes .vbs liegen (edit) UNd auch gestartet werden.

"weiter" hab ich die Idee nicht gesponnen, denn wenn ein Rechner nicht ansprechbar ist - gibts einen Fehler.
Von daher mußt du warten, bis jemand eine bessere Idee / Ansatz hat.

Bitte beachte - bei memory1.tmp muß am Ende eine Leere Zeile sein!
Bitte warten ..
Mitglied: miniversum
12.06.2008 um 19:52 Uhr
Als kleine Verbesserung könntest Du diese vbs Datei auch nur einmal erstellen und die IP Adresse als Parameter übergeben.
Das ganze würde dann so aussehen:
Die memory.vbs Datei:
01.
Option Explicit 
02.
Dim objWMIService, objComputer, colComputer 
03.
Dim strLogonUser, strComputer 
04.
 
05.
strComputer = "" & WScript.Arguments(0) & "" 
06.
if strComputer = "" then strComputer = "." 
07.
 
08.
Set objWMIService = GetObject("winmgmts:" _ 
09.
& "{impersonationLevel=impersonate}!\\" _ 
10.
& strComputer & "\root\cimv2") 
11.
Set colComputer = objWMIService.ExecQuery _ 
12.
("Select * from Win32_ComputerSystem") 
13.
 
14.
For Each objComputer in colComputer 
15.
Wscript.Echo "System Name: " & objComputer.Name _ 
16.
& vbCr & "Total RAM " & objComputer.TotalPhysicalMemory 
17.
Next 
18.
 
19.
WScript.Quit
Und die Batch dann so:
01.
@echo off 
02.
if not exist c:\host md c:\host 
03.
type %windir%\system32\drivers\etc\hosts >c:\host\host.txt 
04.
FOR /F "eol=# delims= " %%f in (c:\host\host.txt) DO ( 
05.
echo PC %%f: >>C:\host\komplett.txt 
06.
cscript /nologo c:\host\memory.vbs %%f >>C:\host\komplett.txt 
07.
)
Bitte warten ..
Mitglied: 51705
12.06.2008 um 20:26 Uhr
Hallo,

bei XP gibt es ja den CMD Befehl systeminfo

welcher in ähnlicher Form in win2k existiert, siehe:

"C:\Programme\Gemeinsame Dateien\Microsoft Shared\MSInfo\msinfo32.exe" /?

Grüße, Steffen
Bitte warten ..
Mitglied: Teraphine
13.06.2008 um 08:36 Uhr
Es scheint so zu klappen, wie ihr es mir gesagt habt
Jetzt hab ich aber nur noch ein Problem, die Ausgabe in KiloBytes ist immer ziemlich verwirrent (oder sind es sogar nur Bytes !?).
Deshalb müsste man die nur noch kürzen, dann kann ich das ganze auf dem Server testen ;)
Bitte warten ..
Mitglied: Teraphine
13.06.2008 um 08:37 Uhr
Das ist ja genial, funktioniert sogar
Aber durch miniversum und TimoBeil brauche ich das im moment ja nicht mehr, aber ich werde es im Hinterkopf behalten, man weiß ja nie...
Bitte warten ..
Mitglied: Teraphine
16.06.2008 um 08:22 Uhr
Also leider bin ich mit meinem Problem noch nicht ganz am Ende.

Als erstes müsste man die Anzeige des Arbeitsspeichers noch auf MB kürzen, habe es schon anhand mehrer Beispiele versucht, aber so recht schlau bin ich nicht daraus geworden und funktioniert hat auch nichts.

Als nächstes muss ich das per Remote Befehl ausführen, habe dazu PSEXEC runtergeladen, er ruft die Batch Datei auch auf, aber sie Arbeitet ganz anders als wenn ich sie auf dem Server direkt starte.
Wenn ich sie auf dem Server starte, gibt sie nach einer weile den Arbeitsspeicher des Servers und der 2 Client PCs aus, so wie es sein sollte.

Führe ich sie hingegen durch PSEXEC auf dem Server per Remote aus, findet die Batch Datei die beiden Clients nicht und gibt nur die Arbeitsspeichergröße des Servers aus.

Als letztes bekomme ich dann eine Liste (TXT Form) von vielen Servern, die bei den Kunden stehen, diese soll ich dann mit einer Batch Datei automatisch mit dem gebastelten Scripts nach den Arbeitsspeichergrößen suchen lassen.

Das wäre es dann auch "schon" gewesen

Der erste Teil müsste dann hier mit rein:
01.
Option Explicit 
02.
Dim objWMIService, objComputer, colComputer 
03.
Dim strLogonUser, strComputer 
04.
 
05.
strComputer = "" & WScript.Arguments(0) & "" 
06.
if strComputer = "" then strComputer = "." 
07.
 
08.
Set objWMIService = GetObject("winmgmts:" _ 
09.
& "{impersonationLevel=impersonate}!\\" _ 
10.
& strComputer & "\root\cimv2") 
11.
Set colComputer = objWMIService.ExecQuery _ 
12.
("Select * from Win32_ComputerSystem") 
13.
 
14.
For Each objComputer in colComputer 
15.
Wscript.Echo "System Name: " & objComputer.Name _ 
16.
& vbCr & "Total RAM " & objComputer.TotalPhysicalMemory 
17.
Next 
18.
 
19.
WScript.Quit
LG Teraphine
Bitte warten ..
Mitglied: 60730
16.06.2008 um 10:37 Uhr
Moin,

poste doch bitte mal das, was du bisher gebatcht hast. dann finden wir auch den Fehler.

findstr 1 %windir%\system32\drivers\etc\hosts >c:\host\host.txt
FOR /f %%f IN (c:\host\host.txt) DO (psexec usw)

Das "konstrukt geht davon aus, das alle Clients eine 1xxx.xxx.xxx.xxx als IP haben und das es einen Ordner c:\hosts gibt. (indem das Script liegt)
Ändere den Teil mal in \\server\freigabe und stelle vorher fest daß du mit dem Konto, daß psexec benutzt dort \\deinserver\deine Freigabe Rechte zum schreiben hast.
Bitte warten ..
Mitglied: Teraphine
16.06.2008 um 14:01 Uhr
Also ich verstehe dich gerade nicht ganz, aber ich poste erstmal alles so, wie ich es im moment habe.

START.bat:
01.
NET USE Z: \\COMPUTERNAME\C$ /user:administrator PW /persistent:no 
02.
xcopy c:\host Z:\host /i /s /e 
03.
psexec \\COMPUTERNAME C:\host\host.cmd /k 
04.
xcopy Z:\host\*.txt C:\host
host.cmd:
01.
@echo off 
02.
if not exist c:\host md c:\host 
03.
type %windir%\system32\drivers\etc\hosts >c:\host\host.txt 
04.
FOR /F "eol=# delims= " %%f in (c:\host\host.txt) DO ( 
05.
echo PC %%f: >>C:\host\%computername%.txt 
06.
cscript /nologo c:\host\memory.vbs %%f >>C:\host\%computername%.txt 
07.
)
memory.vbs:
01.
Option Explicit 
02.
Dim objWMIService, objComputer, colComputer 
03.
Dim strLogonUser, strComputer 
04.
 
05.
strComputer = "" & WScript.Arguments(0) & "" 
06.
if strComputer = "" then strComputer = "." 
07.
 
08.
Set objWMIService = GetObject("winmgmts:" _ 
09.
& "{impersonationLevel=impersonate}!\\" _ 
10.
& strComputer & "\root\cimv2") 
11.
Set colComputer = objWMIService.ExecQuery _ 
12.
("Select * from Win32_ComputerSystem") 
13.
 
14.
For Each objComputer in colComputer 
15.
Wscript.Echo "System Name: " & objComputer.Name _ 
16.
& vbCr & "Total RAM " & objComputer.TotalPhysicalMemory 
17.
Next 
18.
 
19.
WScript.Quit
So das wäre es dann also, die START.bat ruft alles auf was gemacht werden soll.

Bearbeitung: Habe jetzt verstanden was du meintest, ich bin dort als Administrator eingeloggt und kopiere das Script immer in den Ordner C:\host auf dem Server, wie du ja sicherlich der START.bat entnehmen kannst.
Bitte warten ..
Mitglied: 60730
16.06.2008 um 14:14 Uhr
ok,

ähmm nun hab ich aber eine Gegenfrage - bisher bin ich davon ausgegangen, daß die Hosts auf einem Server liegt - das was das script nun aber macht - ist:

Es prüft auf dem Client (den wir per Hosts ermittelt haben) die Hosts und führt dort auf alle anderen Clients, die in der Hosts sind das memory.vbs auf.

War das so gedacht? *grübel*
Und mach dir mal keine Sorgen wegen der Umrechnung, wenn die komplette Liste da ist, zur Not einfach mit Excel etwas rechnen oder nnoch mal eine Abfrage in der kompletten Liste.
Erstmal sollten wir die Liste bekommen, dann der nächste Schritt

edit:
Also ich verstehe dich gerade nicht ganz, aber ich poste erstmal alles so, wie ich es im moment habe
Ok - ich ging davon aus, das du noch diese Zeile drin hast
findstr 1 %windir%\system32\drivers\etc\hosts >c:\host\host.txt
Du nutzt aber die Variante, die das garnicht abfragt.
Bitte warten ..
Mitglied: Teraphine
16.06.2008 um 14:26 Uhr
Hm okay, kann sein das ich das etwas unglücklich formuliert habe

Also nochmal kurz:

Ich bin hier in der Firma mit einem Server verbunden und möchte jetzt quasi mit meinem PC, der nicht in der Domäne des Servers hängt, den Befehl ausführen.
Er startet ihn ja auch, nur trägt er nur den Arbeitsspeicher des Servers ein und nicht den der Clients (2 Stück, ein Kassensystem und ein normaler Desktop PC, beide Windows 2000).

Wenn ich es auf dem Server per Hand starte funktioniert es tadellos, nur eben per Fernaufruf nicht.

Der Fernaufruf muss deshalb funktionieren:

Dieser Server mit dem ich dann später verbunden bin, hat Verbindung zu allen Servern die bei den Kunden stehen, das sind weit über 300 Stück.
Das alles per Hand abzuarbeiten wäre ein riesiger Umstand.

Deshalb das Script, durch dieses wollen wir Schnellstmöglich die größe des Arbeitsspeichers ermitteln auf den Servern sowie den Clients.

Es wäre sonst echt zu Umständlich auf jeden einzelnen Client zu gehen und per VNC dort per Hand nachzuschauen, wie viel Arbeitsspeicher den nun drinsteckt.
Bitte warten ..
Mitglied: 60730
16.06.2008 um 14:45 Uhr
ok,

bevor das nun noch ellenlang nud damit undurchsichtiger wird,
1) Kopiere den Kram auf den Server.
2) Verbinde dich mit VNC auf den Server
3) Kopiere Teile der Hosts und speicher Sie im gleichen Ordner als test ab nachdem du nur noch 3 exemplarische System drin hast
4) Ändere überall in den Scripten wo host (ohne .txt) steht in test und lass das mal laufen.
Bitte warten ..
Mitglied: Teraphine
16.06.2008 um 14:56 Uhr
Das funktioniert, genau so wie es vorher auch funktioniert hat.
Habe erfundene IP-Adressen eingetragen, diese hat er selbstredent nicht gefunden.
Bitte warten ..
Mitglied: miniversum
16.06.2008 um 18:00 Uhr
Mal kurz zur umrechnung:
Ändere Zeile 16 von
& vbCr & "Total RAM " & objComputer.TotalPhysicalMemory
in
& vbCr & "Total RAM " & objComputer.TotalPhysicalMemory / 1024 / 1024 & "MB"
Bitte warten ..
Mitglied: Teraphine
17.06.2008 um 08:02 Uhr
Okay, dann hätten wir das schonmal, so wie es jetzt ist geht das.

Jetzt müssten wir halt noch hinbekommen, das der Aufruf auf dem Server durch PSEXEC klappt und das er dann automatisch eine Liste von IPs Abarbeiten kann, wo er das Script ausführen soll.
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Windows Netzwerk
gelöst GPO auf alle PCs mit bestimmtes Computernamen Schema anwenden lassen (5)

Frage von Michael-ITler zum Thema Windows Netzwerk ...

Virtualisierung
Projekt: Zugriff auf VM über Browser (11)

Frage von oemer.aydin zum Thema Virtualisierung ...

Windows Netzwerk
Windows 10 PC auf andere PCs klonen für Domainbetrieb (7)

Frage von Mikel56 zum Thema Windows Netzwerk ...

DNS
Hostnames für mehrere IPs ermitteln (3)

Frage von Oneil-1989 zum Thema DNS ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (20)

Frage von Xaero1982 zum Thema Microsoft ...

Outlook & Mail
gelöst Outlook 2010 findet ost datei nicht (19)

Frage von Floh21 zum Thema Outlook & Mail ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Festplatten, SSD, Raid
M.2 SSD wird nicht erkannt (14)

Frage von uridium69 zum Thema Festplatten, SSD, Raid ...