guppinator
Goto Top

Benutzernamen über Netzwerk auslesen (Möglichst per Batch)

Hallo, ich bin neu hier im Forum und wollte mal fragen, ob es möglich ist die Benutzernamen über das Netzwerk auszulesen.
Das dürften so um die 20 Rechner sein, die alle über das Netzwerk verbunden sind. Nun möchte ich möglichst eine Batch-datei haben welche ich starte und mir dann die Rechnernamen (also %computername%) anzeigt und direkt hinter dem Rechnernamen auch noch den Benutzernamen, unter dem gerade gearbeitet wird (also %username%) auflistet.
Wäre schön, wenn es da etwas geben würde, wie "\\Platz16 -%username%"... Nur leider funktioniert das ja nicht ;)
Und jetzt bei jedem Start der Rechner eine Datei erstellen zu lassen, diese dann über das Netzwerk abzurufen und auszulesen wäre auf ein bisschen aufwändig. Gibt es da einfachere Methoden?

Schonmal vielen Dank für eure Antworten!!
LG

Content-Key: 107154

Url: https://administrator.de/contentid/107154

Ausgedruckt am: 28.03.2024 um 15:03 Uhr

Mitglied: 60730
60730 26.01.2009, aktualisiert am 18.10.2012 um 18:37:39 Uhr
Goto Top
Servus,

mir fällt keiner ein - denn wenn du es Remote machst, dann ist %username% das Konto, das die Abfrage macht.

Aber mal ganz unverblümt gefragt, was ist aufwändig?

Ich lerne ja immer noch gerne dazu.

Wobei ich persönlich den Weg "suche den letzten Ordner" unterhalb von "Dokumente und Einstellungen" auf jedem Client wirklich als zu aufwändig betrachte.

Gruß
Mitglied: Guppinator
Guppinator 26.01.2009 um 18:06:01 Uhr
Goto Top
Nagut, wenn es einfacheres geben würde, wäre es umständlich face-smile
Nein, das Problem ist, dass ich da eine Datei in das Autostart-Verzeichnis kopieren müsste oder einen Registry-Wert eintragen müsste. Das Problem ist nur, das wir ein Ghost-Image auf den Rechnern haben, d.H. beim starten des OS wird die Festplatte zurückgesetzt.

LG
Mitglied: 60730
60730 26.01.2009 um 18:10:50 Uhr
Goto Top
?

ich kann heut nicht bis 3 ähh 8 zählen..

Nochmal die Frage, das Problem?
Mitglied: Guppinator
Guppinator 26.01.2009 um 18:14:38 Uhr
Goto Top
Das Problem:

1. Die Festplatten werden nach jedem Start zurückgesetzt (D.h. keine Daten werden gespeichert. Alles was drauf war wird formatiert.

2. Wie kann ich das per Batch machen? Am liebsten würde ich das mit Autostart umgehen. Am besten wäre das, dass wenn man die Batch-Datei öffnet Daten einfach nur ausgelesen werden, ohne weitere Dateien auf den anderen rechnern zu erstellen.
Mitglied: 60730
60730 26.01.2009 um 18:18:37 Uhr
Goto Top
Zitat von @Guppinator:
Das Problem:

1. Die Festplatten werden nach jedem Start zurückgesetzt (D.h.
keine Daten werden gespeichert. Alles was drauf war wird formatiert.

*Huch* Schau dir Steady State mal an, auch wenns von MS ist - datt tut et face-wink

2. Wie kann ich das per Batch machen? Am liebsten würde ich das
mit Autostart umgehen. Am besten wäre das, dass wenn man die
Batch-Datei öffnet Daten einfach nur ausgelesen werden, ohne
weitere Dateien auf den anderen rechnern zu erstellen.

sorry, ich kann heute nicht mal bis zwei zählen, wie ich gerade merke...
Aber schau dir erst mal meine Antwort zu ersterem an, vielleicht muß ich dann auch nicht bis zwei zählen face-wink

Gruß
Mitglied: Guppinator
Guppinator 26.01.2009 um 18:37:52 Uhr
Goto Top
Sorry, ich habe den Link bei deinem Post übersehen ;)

Ja, aber das sind ja schon viel mehr Funktionen, als ich haben möchte. Ich möchte ja nur ein gaanz einfaches Programm, welches mir lediglich Benutzername und Computername auflistet. Muss nicht sowas kompliziertes sein. Das Programm soll nur diese eine Funktion haben.
Mitglied: Guppinator
Guppinator 26.01.2009 um 20:01:09 Uhr
Goto Top
Ich glaube ich habe eine Möglchkeit gefunden das ganze so umzusetzen, wie ich es haben will. Kennst du das Tool psexec? Das kann ich auf alle rechner im netzwerk draufziehen, dann kopiert mir das Tool die Datei 'name.exe' auf jeden Rechner (Die Datei Name.exe ist eine konvertierte Batch-Datei in der steht):

@echo off
echo %username% > Neu.txt
exit

Danach startet das Tool die Datei 'Name.exe' auf den Rechnern. Ein Textdokument wird auf jedem rechner erstellt und dann werden die Textdokumente auf meinen Rechner gezogen und dann wird mir der Inhalt der Textdateien angezeigt. Das ganze würde dann so aussehen. Ich muss morgen mal gucken, ob das alles so geht...

@echo off
xcopy psexec.exe \\Platz16\C$
xcopy psexec.exe \\Platz17\C$
xcopy psexec.exe \\Platz18\C$
xcopy psexec.exe \\Platz19\C$
xcopy psexec.exe \\Platz20\C$
xcopy psexec.exe \\Platz21\C$
xcopy psexec.exe \\Platz22\C$
xcopy psexec.exe \\Platz23\C$
xcopy psexec.exe \\Platz24\C$
xcopy psexec.exe \\Platz25\C$
xcopy psexec.exe \\Platz26\C$
xcopy psexec.exe \\Platz27\C$

psexec \\Platz16 -c name.exe
psexec \\Platz17 -c name.exe
psexec \\Platz18 -c name.exe
psexec \\Platz19 -c name.exe
psexec \\Platz20 -c name.exe
psexec \\Platz21 -c name.exe
psexec \\Platz22 -c name.exe
psexec \\Platz23 -c name.exe
psexec \\Platz24 -c name.exe
psexec \\Platz25 -c name.exe
psexec \\Platz26 -c name.exe
psexec \\Platz27 -c name.exe

psexec \\Platz16 name.exe
psexec \\Platz17 name.exe
psexec \\Platz18 name.exe
psexec \\Platz19 name.exe
psexec \\Platz20 name.exe
psexec \\Platz21 name.exe
psexec \\Platz22 name.exe
psexec \\Platz23 name.exe
psexec \\Platz24 name.exe
psexec \\Platz25 name.exe
psexec \\Platz26 name.exe
psexec \\Platz27 name.exe

cd \\Platz16\C$
rename Neu.txt Neu1.txt
cd \\Platz17\C$
rename Neu.txt Neu3.txt
cd \\Platz18\C$
rename Neu.txt Neu5.txt
cd \\Platz19\C$
rename Neu.txt Neu7.txt
cd \\Platz20\C$
rename Neu.txt Neu9.txt
cd \\Platz21\C$
rename Neu.txt Neu11.txt
cd \\Platz22\C$
rename Neu.txt Neu13.txt
cd \\Platz23\C$
rename Neu.txt Neu15.txt
cd \\Platz24\C$
rename Neu.txt Neu17.txt
cd \\Platz25\C$
rename Neu.txt Neu19.txt
cd \\Platz26\C$
rename Neu.txt Neu21.txt
cd \\Platz27\C$
rename Neu.txt Neu23.txt

attrib +s +r +h \\Platz16\C$\Neu1.txt
attrib +s +r +h \\Platz17\C$\Neu3.txt
attrib +s +r +h \\Platz18\C$\Neu5.txt
attrib +s +r +h \\Platz19\C$\Neu7.txt
attrib +s +r +h \\Platz20\C$\Neu9.txt
attrib +s +r +h \\Platz21\C$\Neu11.txt
attrib +s +r +h \\Platz22\C$\Neu13.txt
attrib +s +r +h \\Platz23\C$\Neu15.txt
attrib +s +r +h \\Platz24\C$\Neu17.txt
attrib +s +r +h \\Platz25\C$\Neu19.txt
attrib +s +r +h \\Platz26\C$\Neu21.txt
attrib +s +r +h \\Platz27\C$\Neu23.txt

xcopy /F /S /Q \\Platz16\C$\Neu1.txt C:\
xcopy /F /S /Q \\Platz17\C$\Neu3.txt C:\
xcopy /F /S /Q \\Platz18\C$\Neu5.txt C:\
xcopy /F /S /Q \\Platz19\C$\Neu7.txt C:\
xcopy /F /S /Q \\Platz20\C$\Neu9.txt C:\
xcopy /F /S /Q \\Platz21\C$\Neu11.txt C:\
xcopy /F /S /Q \\Platz22\C$\Neu13.txt C:\
xcopy /F /S /Q \\Platz23\C$\Neu15.txt C:\
xcopy /F /S /Q \\Platz24\C$\Neu17.txt C:\
xcopy /F /S /Q \\Platz25\C$\Neu19.txt C:\
xcopy /F /S /Q \\Platz26\C$\Neu21.txt C:\
xcopy /F /S /Q \\Platz27\C$\Neu23.txt C:\

cd C:\

for %%a in (Neu1.txt) do type %%a
for %%b in (Neu3.txt) do type %%b
for %%c in (Neu5.txt) do type %%c
for %%d in (Neu7.txt) do type %%d
for %%e in (Neu9.txt) do type %%e
for %%f in (Neu11.txt) do type %%f
for %%g in (Neu13.txt) do type %%g
for %%h in (Neu15.txt) do type %%h
for %%i in (Neu17.txt) do type %%i
for %%j in (Neu19.txt) do type %%j
for %%k in (Neu21.txt) do type %%k
for %%l in (Neu23.txt) do type %%l
Mitglied: 36831
36831 27.01.2009 um 03:20:26 Uhr
Goto Top
Moin,

wenn du schon mit den PsTools am arbeiten bist, gucke dir doch auch mal PsLoggedOn an. Wie du das in eine Batch verbastelst, solltest du in diversen Kommentaren finden.

MfG,
VW
Mitglied: 60730
60730 27.01.2009 um 19:01:33 Uhr
Goto Top
Zitat von @Guppinator:
Ich glaube ich habe eine Möglchkeit gefunden das ganze so
umzusetzen, wie ich es haben will. Kennst du das Tool psexec?

Servus,

yupp - und auch den "besseren" Schalter -v anstatt -c face-wink

105 Zeilen - und meine Lösung war dir zu aufwändig *gg*
Egal, hauptsache es läuft so - wie du es dir gedacht hast face-wink

@echo off 
@echo %username% >c:\Neu.txt 
@attrib +s +r +h c:\Neu.txt 
exit

@if not exist c:\log md c:\log
@SET "HOST=Platz"  
@FOR /L %%i IN (10,1,16) DO (
 	@title %Host%%%i
	@psexec \\%Host%%%i -v name.exe && xcopy /F /S /Q \\%Host%%%i\C$\neu.txt C:\log\%Host%%%i.txt
)

wie gut, dass ich heute Unterstüzung hab und nicht - dank des Code Blocks - selber zählen muß face-wink
sollte fast das gleiche bringen.

Gruß
Mitglied: Biber
Biber 27.01.2009 um 19:57:29 Uhr
Goto Top
@t-mo,

wie gut, dass ich heute [...] nicht [...] selber zählen muß

@for /L %%i IN (10,1,16) DO ( ...

Ich will da ja nicht Salz in die Wunde reiben, aber....
Um diese Platz16...Platz27-Rechner und die Neu1...Neu23.txt-Dateien in einer Zeile hochzuzählen, müsste es ähnlich wie hier zusammengeklimpert sein...

>mode con cols=166 lines=55
(=19:56:06  D:\temp=)
>Setlocal EnableDelayedExpansion & Set "lfd=1" & @FOR /L %i IN (16,1,27) DO @(Echo xcopy /f /s /q \\Platz%i\C$\Neu!lfd!.txt c:\) & @(Set /a Lfd+=2)>nul  
xcopy /f /s /q \\Platz16\C$\Neu1.txt c:\
xcopy /f /s /q \\Platz17\C$\Neu3.txt c:\
xcopy /f /s /q \\Platz18\C$\Neu5.txt c:\
xcopy /f /s /q \\Platz19\C$\Neu7.txt c:\
xcopy /f /s /q \\Platz20\C$\Neu9.txt c:\
xcopy /f /s /q \\Platz21\C$\Neu11.txt c:\
xcopy /f /s /q \\Platz22\C$\Neu13.txt c:\
xcopy /f /s /q \\Platz23\C$\Neu15.txt c:\
xcopy /f /s /q \\Platz24\C$\Neu17.txt c:\
xcopy /f /s /q \\Platz25\C$\Neu19.txt c:\
xcopy /f /s /q \\Platz26\C$\Neu21.txt c:\
xcopy /f /s /q \\Platz27\C$\Neu23.txt c:\

FOR /L zählt
FOR /L %i in (startwert, intervall, letzterWert)


Grüße
Biber

P.S. @t-mo: Wir zählen auf Dich.. face-wink
Mitglied: Guppinator
Guppinator 27.01.2009 um 22:11:11 Uhr
Goto Top
Hi,

vielen Dank für eure Antworten. Ich habe das heute mal mit PSTools ausprobiert. Jedoch zeigt mir das Textdokument, welches auf einem anderen Rechner per name.exe erstellt wurde später meinen PC-Namen und meinen Benutzernamen an. Wie kann das sein?

LG
Mitglied: Guppinator
Guppinator 27.01.2009 um 22:31:05 Uhr
Goto Top
Und ich habe noch eine Frage...
Gibt es etwas, was dieses Problem löst?
(Jetzt nur mal als Beispiel...)

@echo off
for /L %%a in (1,1,3) do (
for /L %%b in (1,1,3) do (
echo 1.Hallo: %%a
echo md C:\%%a
echo 2.Hallo: %%b
echo md C:\%%b
)
)
pause > NUL

Also mein Problem ist halt, das hier (Bei Zeile 3 und 4):

@echo off
set "ho=Platz"  
FOR /L %%t IN (16,1,27) DO (
FOR /L %%x IN (1,1,11) DO (
if exist %systemdrive%\Log\*.txt del /F /S /Q %systemdrive%\Log\*.txt
if not exist %systemdrive%\Log md %systemdrive%\Log
if exist \\%ho%%%t\C$\ rename \\%ho%%%t\C$\Neu.txt Neu%%x.fcx && xcopy /C /Q /H \\%ho%%%t\C$\Neu%%x.fcx %systemdrive%\Log
)
)
pause > NUL
cls
echo Schritt 1 erledigt!
ping -n 2 localhost > NUL
cls
cd %systemdrive%\Log

set "N=Neu"  
FOR /L %%u IN (1,1,12) DO (
FOR %%b IN (%N%%%u.fcx) DO type %%b
echo.
pause > NUL
Mitglied: 60730
60730 28.01.2009 um 01:43:44 Uhr
Goto Top
Zitat von @Guppinator:
Hi,

vielen Dank für eure Antworten. Ich habe das heute mal mit PSTools ausprobiert. Jedoch zeigt mir das Textdokument, welches auf
einem anderen Rechner per name.exe erstellt wurde später meinen PC-Namen und meinen Benutzernamen an. Wie kann das sein?

Servus,

mir war so, als ob ich jemandem so was vorausgesagt habe - aber wo nur?
mir fällt keiner ein - denn wenn du es Remote machst, dann ist %username% das Konto, das die Abfrage macht.
War die erste (ich hab dreimal nachgezählt) Antwort, die gegeben wurde)

Also nimm entweder den Tipp von VW oder vielleicht doch den ersten verlinkten?
.. und wegen der anderen Frage - ist ne komplett neue Baustelle - vielleicht besser hier löschen/editieren und einen separaten Thread aufmachen.

LG
zurück
neuer Tag - neues Glück- nun mach ich Ihn wirklich aus, mein angebissenes Apfelstück
Mitglied: Guppinator
Guppinator 28.01.2009 um 13:08:16 Uhr
Goto Top
Ich nehme jetzt doch die Möglichkeit mit dem Autostart... ;)
Und ich habe jetzt eine Datei(Diese Datei wird auf die Rechner der anderen gespielt und beim starten von Windows gestartet":

'name.bat'
Der Inhalt der Datei:

@echo off
echo %username% > %computername%.txt
rename %computername%.txt %computername%.fcx
exit

Meine 2. Datei habe ICH und kann damit die erstellten Textdokumente der anderen Rechner einsammeln.

'einsammeln.bat'
Der Inhalt der Datei:

@echo off
if not exist %systemdrive%\Log md %systemdrive%\Log
if exist %systemdrive%\Log\*.fcx del /F /S /Q %systemdrive%\Log\*.fcx
set "ho=Platz"  
FOR /L %%t IN (16,1,27) DO (
if exist \\%ho%%%t\C$\ xcopy /C /Q /H \\%ho%%%t\C$\*.fcx %systemdrive%\Log
)
pause > NUL
cls
echo Schritt 1 erledigt!
ping -n 2 localhost > NUL
cls
cd %systemdrive%\Log
set "ho=Platz"  
FOR /L %%i IN (16,1,27) DO (
FOR %%y IN (%ho%%%i.fcx) DO echo %%y
FOR %%b IN (%ho%%%i.fcx) DO type %%b
)
pause > NUL

Müsste so funktionieren, oder?
Mitglied: Biber
Biber 28.01.2009, aktualisiert am 18.10.2012 um 18:37:40 Uhr
Goto Top
Moin Guppinator,

hast Du zufällig mitgelesen, was ich am 27.01.2009 um 19:57:29 Uhr geschrieben habe?

Da habe ich doch Deine beiden asynchronen Zählschleifen in einer Zeile abgefackelt...?

Aber jetzt willst Du statt der zwei Zähler doch wieder nur einen?

Welcher Beitrag ist denn jetzt in Arbeit - dieser hier oder For Schleife Batch unter "Tools & Utilities"?

Irritiert
Biber

[Edit] Auch wenn ich Wortspielereien liebe ... ich will hier aber niemand anzählen.
[/Edit]
Mitglied: 60730
60730 28.01.2009 um 14:56:45 Uhr
Goto Top
Servus Biber,
Welcher Beitrag ist denn jetzt in Arbeit - dieser hier oder For Schleife Batch unter "Tools & Utilities"?

muß ich wohl auf meine Kappe nehmen / zumindestens die eine Hälfte..

.. und wegen der anderen Frage - ist ne komplett neue Baustelle - vielleicht besser hier löschen/editieren und einen separaten Thread aufmachen.
Das waren meine letzten Zeilen, bevor ich meine horizontale Ruheposition eingenommen habe.

Ich dachte, Guppi würde den Thread hier dann editieren/löschen.

Gruß & mea Culpa
Ps: Danke, dass du auf mich zählst - und mich nicht auszählst
Mitglied: Guppinator
Guppinator 28.01.2009 um 16:20:21 Uhr
Goto Top
Okay, ich schließe jetzt diesen Thread! Vielen Dank für eure Antworten!!
LG