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

User auslesen via batch und in textdatei schreiben

Frage Entwicklung Batch & Shell

Mitglied: Roadrunner777

Roadrunner777 (Level 1) - Jetzt verbinden

06.04.2011, aktualisiert 11.04.2011, 8018 Aufrufe, 15 Kommentare

hallo ich möchte gerne automatisiert vom beliebigen windowspc alle vorhandenen user via batch auslesen und in eine textdatei schrieben,...

hiermit bin ich schon sehr weit gekommen,...

for /F %%i in ('net user') do echo %%i >> user_tmp.txt

jetzt hab ich aber noch zwei zeilen müll drinnen,...

Benutzerkonten

wie kann ich das rausfiltern?
ist das immer gleich? XP, windows vista windows 7?

danke
Mitglied: bastla
06.04.2011 um 18:09 Uhr
Hallo Roadrunner777!

Das Stichwort "skip" sollte Dich weiter bringen ...

... aber falls Du das mit dem "Filtern" wörtlich verstanden wissen willst: "findstr /?" (Du willst ja sicher auch die letzte Zeile noch loswerden)
Mit Deiner Schleife wirst Du allerdings nur ein (starkes) Drittel der Benutzer erhalten ...

Grüße
bastla
Bitte warten ..
Mitglied: Biber
06.04.2011 um 18:20 Uhr
Moin Roadrunner777,

Gute Nachrichten, schlechte Nachrichten...

Die guten zuerst
Zum Üben des Zusammenspiels einer FOR/F-Anweisung mit Find/Findstr /v ist das Beispiel gut geeignet.

Grundsächlich könntest du als prinzipiell funktinierenden Ansatz einfach alles [nacheinander] wegfiltern, was dich stört.
Beispiel am CMD-Prompt:
net user |findstr /v "\-\-"|findstr /v "erfolgreich"|findstr /v "Benutzerkonten"
kannst du auch kombinieren mit einer "skip=3"-Angabe in der FOR/F-Anweisung.
Lässt sich weiter eindampfen und kürzer fassen... bekommst du hin.


Schlechte Nachricht

Wenn du mal zwei Schritt zurücktrittst und dann nochmal einen gelassenen Blick auf Input, Aufwand, maximal erreichbaren Nutzen/Output wirfst...

Hey, der Output von "Net user" ist unter Brüdern gesagt denkbar ungeeignet als Basis.
Egal, womit eine nachträgliche Strukturierung erfolgen soll.
Ist Dönekens, damit rumzualbern, besonders da du für jedes OS und jede Sprachversion damit rechnen kannst, dass es NICHT MEHR passt.

--> nimm ein anderes Tool, das die Userliste als "ein User pro Zeile" ausgibt.
Es gibt ein paar One-Trick-Tools, die (nur) das können. Deren Namen sind relativ naheliegend (netuser.exe, netusers.exe, ListUsers.exe...)-->Suchmaschine

Grüße
Biber
Bitte warten ..
Mitglied: Skyemugen
06.04.2011 um 18:22 Uhr
Aloha,

zusätzlich noch die Anmerkung: (weiß jetzt nicht, wie die Auflistung bei Windows XP ist)

Ohne etwas für bzw. gegen die Leerzeichen zu tun, kommt (bei WIn 7 zumindest) nicht allzuviel bei raus. ;) - aber delims sollen dagegen gut wirken, habe ich gehört

greetz André

P.S.: stört dich das Der Befehl wurde erfolgreich ausgeführt. eigentlich nicht in der txt? ^.^ - falls doch greife mal auf bastlas Hinweis mit findstr zurück, damit kannst du dann auch etwas ausschließen

edit: too late ... Biber, Biber *grml* ^_^
Bitte warten ..
Mitglied: Roadrunner777
06.04.2011 um 18:35 Uhr
wow, danke das ging schnell,...

ich werd mich mal durchbeisen
Bitte warten ..
Mitglied: 99045
06.04.2011 um 20:05 Uhr
Hi,

vielleicht genügt dir ja die Einzeilenlösung ohne externes Tool bzw. Zusatztool?
01.
dir /ad /b "%homedrive%%homepath%\.." >  userliste.txt
Voraussetzung dafür ist allerdings, dass alle User, die auf dem Rechner eingerichtet sind, sich wenigstens einmal angemeldet haben, so dass das Profilverzeichnis auch existiert.
Bitte warten ..
Mitglied: Biber
06.04.2011 um 20:19 Uhr
Moin Kaputtnick,

...Voraussetzung dafür ist allerdings...sich wenigstens einmal angemeldet haben...
im Prinzip jein....

Das ist zwar eine notwendige Bedingung, um diejenigen Usernamen zu erwischen, die er haben will.
Aber es ist nicht hinreichend, um die auszuschliessen, die er nicht wissen will.
>dir /ad /b "%userprofile%\.." 
Administrator --->ok 
All Users  -->???, na ja 
Default User  --->??? na ja 
Biber  -->ok 
OtherUser --> ok 
LocalService ---->?? wc ... wohl caum 
NetworkService --->?? wohl caum
[die eventuellen Diskrepanzen zwischen %userprofile% und den beiden Explorervariablen %homeBLA% sind mir nicht weiter wichtig.]

Grüße
Biber
Bitte warten ..
Mitglied: 99045
06.04.2011 um 20:27 Uhr
Moin Biber,

man muss ja nicht alles mundgerecht vorkauen. Manchmal reicht auch eine Anregung.

Wie man mit findstr einzelne Begriffe ausklammern kann, hast du ja in dankenswerter Weise bereits dokumentiert..

Man könnte allerdings die von dir aufgezeigte Ausgabe anschließend noch zerlegen, indem man den Ausgabestring spaltenweise trennt. Für den Usernamen sind ja gezielt feste Stellen vorgegeben.

[und um das mal klarzustellen: "alle vorhandenen User" schließt auch die ein, die DU nicht haben willst.]

Grüße
Bitte warten ..
Mitglied: Biber
06.04.2011 um 20:37 Uhr
Moin Kaputtnick,

und BTW noch ein nachträgliches Willkommen im Forum,
jepp, mit diesem Nachtrag der nötigen Nachbehandlung ist dein Ansatz ein vollwertiger Ersatz für die von mir genannten One-Trick-Utilities.

Und was das Vorkauen-Müssen betrifft... okay, er hatte geschrieben, er wolle sich durchbeissen.
Vielleicht habe ich das zu leichtfertig überlesen.

Grüße
Biber
[Edit]
[und um das mal klarzustellen: "alle vorhandenen User" schließt auch die ein, die DU nicht haben willst.]
im Prinzip jein ... ich mag ja alle User, ob blond, ob rothaarig...

Dennoch:
Bei der NET USER-Anzeige werden mir zusätzlich "Gast" und "Hilfeassistent" angezeigt, nicht aber "Default User" und "All Users" oder "LocalService"...
[/Edit]
Bitte warten ..
Mitglied: 99045
06.04.2011 um 20:57 Uhr
Ok, 1:1
Da habe ich sogar noch ein paar mehr bei der Anzeige von net user.

Man beachte allerdings meine Einleitung:
vielleicht genügt dir ja .... ?

Das war eine Frage. :-P

Grüße
Bitte warten ..
Mitglied: Biber
06.04.2011 um 21:13 Uhr
[OT]
Zitat von 99045:
> vielleicht genügt dir ja .... ?

Das war eine Frage. :-P
Jahaa..
Allerdings lässt sich manchmal schwer unterscheiden, ob es Pünktchen vor dem Fragezeichen sind oder das Kleingedruckte....*g

Grüße
Biber
[/OT]
Bitte warten ..
Mitglied: Roadrunner777
07.04.2011 um 08:45 Uhr
Hey ihr,...


das klingt alles gut,...
mein problem ist, das sind alles netzwerkuser :/ und ich ruf das cmd via php d.h. ich komm auch iwie nicht richtig in die dokumente und einstellungen

was gibt es noch für möglichkeiten?

leider listet mir mein cmd die user so auf
da steht was
user1 ........................... user2 ........................... user3
user4 ........................... user5
und da steht nochmal was,...

[ ........................... ] ist zu erstzen durch leerzeichen oder tabs (weiß nicht), im Forum werden diese nicht angezeigt.

admin und irgendwelche sonderuser sind mir egal,... die kann ich im schlimmsten fall dann auch mit php rausfiltern,... wichtig sind mir die ganzen User die ohne umlaute und Leerzeichen geschrieben werden,...

jemand ne idee?

ideal wäre jetzt:
user_tmp.txt:
user1
user2
user3
user4
user5
Bitte warten ..
Mitglied: bastla
07.04.2011 um 10:30 Uhr
Hallo Roadrunner777!

Wenn Du ein wenig kombinierst, könnte dasErgebnis so aussehen:
for /f "delims=" %%i in ('net user^|findstr /v "\-\-"^|findstr /v "erfolgreich"^|findstr /v "Benutzerkonten"') do for %%a in (%%i) do >>user_tmp.txt echo %%a
Grüße
bastla
Bitte warten ..
Mitglied: Biber
07.04.2011 um 10:53 Uhr
Moin Roadrunner777,

nun musst du dich aber mal entscheiden, ob durchbeissen oder rentnergerecht vorgeschnitten.

Eine hausfrauensichere out-of-the-box-rundum-sorglos-Lösung würde so aussehen:
01.
@echo off & setlocal 
02.
 
03.
set "userliste=R:\ulist.txt" 
04.
@echo Benutzerkonten auf %computername% > %userliste% 
05.
for /f "skip=4 delims=" %%a in ('net user') do call :trim "%%a" 
06.
pause 
07.
goto :eof 
08.
 
09.
:trim 
10.
set user1= 
11.
set user2= 
12.
set user3= 
13.
set zeile=%~1 
14.
if "%zeile:~0,10%"=="Der Befehl" goto :eof 
15.
::  @echo zeile=%zeile% 
16.
set user1=%zeile:~0,25% 
17.
set user2=%zeile:~25,25% 
18.
set user3=%zeile:~50,25% 
19.
 
20.
if defined user1 (@echo user1=%user1% & @echo %user1% >> %userliste%)  
21.
if defined user2 (@echo user2=%user2% & @echo %user2% >> %userliste%) 
22.
if defined user3 (@echo user3=%user3% & @echo %user3% >> %userliste%) 
23.
goto :eof
Aber derartige Jetzt-musst-du-nur-den-Guttenberg-machen-Lösungen gibts hier nicht.

Grüße
Biber
Bitte warten ..
Mitglied: Roadrunner777
11.04.2011 um 13:01 Uhr
Hallo,

Danke,...

@Biber, sorry das ich mich so anstelle,... aber meine eigentliche Welt ist PHP,... konnte leider nicht richtig kombinieren :/

jetzt hab ichs aber

Danke
Bitte warten ..
Mitglied: Biber
11.04.2011 um 13:31 Uhr
Moin Raodrunner777,

wenn du dabei und dadurch etwas gelernt hast, dann war es uns das wert, da kann ich für alle hier vertretenen kommentierer sprechen.

Nichtsdestotrotz - falls du in diesem hin-und herwogenden Thread nicht mehr das Gesamtbild im Blick hast...

--> Kompliziert ist es eigentlich nur dadurch geworden, dass dein Plan vorsah, aus der (dafür suboptimalen) Ausgabe des NET USER-Befehls eine verwertbare Liste alle User zu erhalten.

Nimm als eine Erfahrung mit
"Hey, wenn ich fest in den Boden gerammte Vorgaben mache, dann wird mir wortwörtlich eine Lösung dazu zusammengebraten,
wie umständlich es auch sein mag."


Hättest du gefragt
"Wie kann möglichst stressarm das Ziel XY erreichen, wenn ich nur Batch und zwei Büroklammern benutzen darf und kein Admin bin.",

dann wären vielleicht andere Lösungen gekommen.

Grüße und dank für dein Feedback
Biber
Bitte warten ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ähnliche Inhalte
Batch & Shell
Per Batch aktuell angemeldete User auslesen (1)

Frage von Peter32 zum Thema Batch & Shell ...

Batch & Shell
Per Batch Textdatei Spaltenweise auslesen nochmal weil ich dumm bin (9)

Frage von PinkFLuffyUnicorn zum Thema Batch & Shell ...

Batch & Shell
Batch Textdatei Spaltenweise auslesen (7)

Frage von PinkFLuffyUnicorn zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Windows Server
DHCP Server switchen (25)

Frage von M.Marz zum Thema Windows Server ...

SAN, NAS, DAS
gelöst HP-Proliant Microserver Betriebssystem (14)

Frage von Yannosch zum Thema SAN, NAS, DAS ...

Grafikkarten & Monitore
Win 10 Grafikkarte Crash von Software? (13)

Frage von Marabunta zum Thema Grafikkarten & Monitore ...

Windows 7
Verteillösung für IT-Raum benötigt (12)

Frage von TheM-Man zum Thema Windows 7 ...