mima89
Goto Top

Batch Variabler net use Befehl und Leerzeichen echo Befehl entfernen

Hallo Zusammen,

ich habe zwei Szenarien die ich versuche abzufragen:


1. Verbinde ich mich per net use - Befehl zu einer Freigabe mit User und Kennwort.
net use \\PC01\D$ "Kennwort01" /User:Benutzer01  
Das Problem ist, dass die Systeme teils unterschiedliche Kennwörter haben.

Wie gebe ich der Batch nun unterschiedliche Kennwörter zu einem System mit?
So wie:
net use \\PC01\D$ "Kennwort01" /User:Benutzer01  
-> Kennwort nicht korrekt, versuchen mit ...
net use \\PC01\D$ "Kennwort099" /User:Benutzer01  



2. Muss ich zwei Systeminfos per PsExec / cmd abfragen.
Dabei verbinde ich mich zum System, frage per cmd die "systeminfo" ab und exportiere diese als systeminfo.txt.
Dann lese ich die txt aus, exportiere die wichtigen Zeilen (hostname.txt & startzeit.txt), die ich dann wieder als Endergebnis ausgeben lasse:

@echo off
color FC
mode con lines=45 cols=85
del C:\*.txt
C:\PSTools\PsExec.exe -u Benutzer01 -p Kennwort01 \\PC01 cmd.exe /c systeminfo >> c:\systeminfo.txt
echo.
echo.
set zeile=
for /f "usebackq skip=1 delims=" %%i in ("c:\systeminfo.txt") do (  
    if not defined zeile set "zeile=%%i"  
)
echo %zeile% >> c:\hostname.txt
)
echo.
@echo off
set zeile=
for /f "usebackq skip=11 delims=" %%i in ("c:\systeminfo.txt") do (  
    if not defined zeile set "zeile=%%i"  
)
echo %zeile% >> c:\startzeit.txt
)
cls
@echo off
FOR /F %%i in (c:\hostname.txt) do (
echo.
echo %%i
)
FOR /F %%i in (c:\startzeit.txt) do (
echo %%i
)
pause



Das Problem hierbei ist, dass die Leerzeichen mit ausgegeben werden und die Ausgabe dann hinter den entsprechenden Optionen leer sind:

Beispiel (Ausgabe startzeit.txt)
Systemstartzeit:                               08.02.2020, 20:19:53 
Endgültige Ausgabe der Systemstartzeit:
Systemstartzeit: "KEINE ZEIT SICHTBAR"  

Wie bekomme ich die Leerzeichen aus dem Export raus?
Oder bei der Ausgabe eben. Was einfacher ist...


Liebe Grüße Micha

Content-ID: 545765

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

Ausgedruckt am: 22.11.2024 um 03:11 Uhr

emeriks
emeriks 10.02.2020 um 13:09:39 Uhr
Goto Top
Hi,
Zitat von @MiMa89:
Wie gebe ich der Batch nun unterschiedliche Kennwörter zu einem System mit?
Gar nicht! Sowas sollte mit CMDKEY im Benutzerprofile ablegen.

einmalig auf der Kommandozeile:
cmdkey /add:server1 /user:XXXX /pass:YYYY
cmdkey /add:server2 /user:AAAA /pass:BBBB
cmdkey /add:server3 /user:1111 /pass:2222

in der Batch einfach auf die Freigabe zugreifen.

E.
MiMa89
MiMa89 11.02.2020 um 11:59:40 Uhr
Goto Top
An sich eine gute Lösung, allerdings sind es 400 PCs mit teils unterschiedlichen Kennwörtern...
Da muss ich mir wohl etwas anderes einfallen lassen.

Dennoch Danke für den Tipp!


______________
Zu meinem zweiten Problem:

Habe in meiner Batch (ab Zeile 24) den Delim-Befehl eingebaut und nun werden die Parameter auch ausgegeben.
Zwar noch mit Leerzeichen, aber da kann ich darüber hinweg sehen.
FOR /F **"Delims="** %%i in (e:\hostname.txt) do (  
echo.
echo %%i
)
FOR /F **"Delims="** %%i in (e:\startzeit.txt) do (  
echo %%i
)
pause
emeriks
emeriks 11.02.2020 um 13:44:16 Uhr
Goto Top
Sind diese 400 PC's nicht in einer Domäne?
MiMa89
MiMa89 11.02.2020 um 14:03:18 Uhr
Goto Top
Doch, wieso?
emeriks
emeriks 11.02.2020 aktualisiert um 14:06:07 Uhr
Goto Top
Dann wäre es doch viel einfacher, sich ein Domänen-Konto einzurichten, welches auf all diesen PC's lokal über ausreichend Rechte verfügt, und das Script dann unter diesem Konto laufen zu lassen.
MiMa89
MiMa89 12.02.2020 um 08:02:12 Uhr
Goto Top
Wäre auch ne Möglichkeit... Warum bin ich nicht vorher drauf gekommen.

Ja manchmal ist man blind in seinem Projekt^^


Danke!