nowyouseeme93
Goto Top

Netshare Batch aus CMD auslesen und in CSV erstellen

Das bekomme ich aus cmd Befehl:

Share name Resource Remark

ADMIN$ C:\Windows Remote Admin
IPC$ Remote IPC
I$ I:\ Default share
D$ D:\ Default share
F$ F:\ Default share
bilder F:\Intranet\Bilder\xnnnn
Telefonbuch F:\meinacc\acc\telefon\nummern
meinbestershare1
F:\meinbestershare1\hhn
meinbestershare2
F:\meinbestershare1\hhn\nnh
bildernew F:\Intranet\Bilder\new\bilder


Ich muss den Namen und den Pfad mittels Batch Befehl in eine csv Datei umwandeln
Das Problem ist aber:
Wenn der Share Name zu groß ist wird der Pfad erst in der nächten Zeile angezeigt. Und bei einer For Schleife nimmt der Pfad dann den Token 1 an da er alleine in der nächsten Zeile steht.

Das zweite Problem ist, dass er "Remote" als Token 2 nimmt weil kein Pfad an Token2 gegeben wird.

mein erster Ansatz:

@echo off

FOR /F "tokens=1,2 delims= " %%A IN (sharename.txt) do echo %%A>> ergebnis.txt

Ich sag schonmal Danke an diejenigen die mir da weiter helfen können.

Content-Key: 282414

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

Printed on: April 26, 2024 at 04:04 o'clock

Member: DerWoWusste
DerWoWusste Sep 09, 2015 at 18:14:17 (UTC)
Goto Top
Hi.

In Powershell
get-WmiObject -class Win32_Share
Mitglied: 114757
114757 Sep 09, 2015 updated at 18:48:15 (UTC)
Goto Top
Moin,
simpler Powershell-Schnippsel:
gwmi Win32_Share | select Name,Path,Description | export-csv 'C:\export.csv' -Delimiter ";" -NoType -Encoding UTF8  
Oder direkt in eine Batch eingebaut sieht's dann so aus:
@echo off
set "export=C:\shares.txt"  
powershell -ExecutionPolicy ByPass -Command "gwmi Win32_Share | select Name,Path,Description | export-csv '%export%' -Delimiter ";" -NoType -Encoding UTF8"  
Gruß jodel32

p.s. Hallo oder Gruß wären ganz schön, hier arbeiten immerhin noch Menschen und keine Roboter
Member: nowyouseeme93
nowyouseeme93 Sep 09, 2015 at 20:20:51 (UTC)
Goto Top
Hallo und vielen Dank für deinen Beitrag.

Gibt es aber auch eine Lösung ohne Powershell, also DOS Lösung ?

Viele Grüße
Mitglied: 114757
Solution 114757 Sep 10, 2015 updated at 13:46:00 (UTC)
Goto Top
Gibt es aber auch eine Lösung ohne Powershell, also DOS Lösung ?
Der zweite Code ist direkt für eine Batch vorgesehen...

Das hier geht ebenfalls, für die museumsreifen Batchler :-P
(for /f "skip=1 delims=" %%a in ('wmic path win32_share get Name ^| findstr "."') do @echo %%a)>"C:\shares.txt"  
Gruß jodel32
Member: nowyouseeme93
nowyouseeme93 Sep 10, 2015 at 09:02:46 (UTC)
Goto Top
Hallo

vielen Dank, damit bekomme ich endlich schon mal die Namen der Shares raus. ich will aber noch den Pfad zu jeder Sharename haben.

Ich sag mal so: Mein Ergebnis soll in einer csv sein. wenn ich dies in Excel importiere soll Sharenamen, Pfad, letzte Änderung, und die Berechtigungen erscheinen und das alles tabelarisch. Ist dies mit einer Batch Programmierung möglich ?

wenn ich ... ('wmic path win32_share get Name, Path ^| findstr "."') .. eingebe bekomme ich den Fehler: Ungültiger GET-Ausdruck

Wäre super wenn ihr mir weiterhelfen könntet

Liebe Grüße
Mitglied: 114757
114757 Sep 10, 2015 updated at 09:13:32 (UTC)
Goto Top
(for /f "delims=" %%a in ('wmic share get Name^,Path /format:csv ^| findstr "."') do @echo %%a)>"C:\shares.csv"  
Member: nowyouseeme93
nowyouseeme93 Sep 10, 2015 at 09:26:20 (UTC)
Goto Top
Hallo

DANKE DANKE DANKE !! Das ist genau das wonach ich gesucht habe. Nochmals vielen Dank

nun wie kann ich sehen welcher Share für wen freigegeben ist und wann die letzte Aktualisierung im Ordner war

Ihr seit echt klasse face-smile

Gruß
Mitglied: 114757
114757 Sep 10, 2015 updated at 09:37:20 (UTC)
Goto Top
nun wie kann ich sehen welcher Share für wen freigegeben ist und wann die letzte Aktualisierung im Ordner war
War das jetzt ne Frage ??

Wie gesagt bescchäftige dich mal mit Powershell, damit musst du nicht 1001 Umwege gehen:
https://gallery.technet.microsoft.com/scriptcenter/List-Share-Permission ...
Member: DerWoWusste
DerWoWusste Sep 10, 2015 updated at 09:43:43 (UTC)
Goto Top
PS: für Powershell in Batch kannst Du auch
powershell get-WmiObject -class Win32_Share >c:\test\output.txt
nehmen.

Edit:ups, jetzt hab ich's an Jodels Beitrag und nicht an Deinen gehängt face-smile
Member: nowyouseeme93
nowyouseeme93 Sep 10, 2015 at 10:11:45 (UTC)
Goto Top
Das Ding ist ja ich darf kein Powershell benutzen ich muss alles in Batch schreiben ohne Powershell Befehle. Ich weiss es wäre einfacher aber das muss in Batch geschrieben werden

Viele Grüße
Mitglied: 114757
114757 Sep 10, 2015 updated at 10:39:27 (UTC)
Goto Top
Das Ding ist ja ich darf kein Powershell benutzen ich muss alles in Batch schreiben ohne Powershell Befehle.
Man merkt, geht wieder Richtung Freitag, wohl mal wieder ein Schüler, der sich hier seine Hausaufgaben machen lässt ;-P

icacls is your friend ...
Member: DerWoWusste
DerWoWusste Sep 10, 2015 at 10:49:13 (UTC)
Goto Top
Was Jodel sicher sagen will: "Das ist Batchcode".
Mitglied: 114757
114757 Sep 10, 2015 updated at 10:51:45 (UTC)
Goto Top
Was Jodel sicher sagen will: "Das ist Batchcode".
Jup face-smile da hat's bei Ihm noch nicht geschnackelt...