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-Key: 545765

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

Printed on: April 23, 2024 at 11:04 o'clock

Member: emeriks
emeriks Feb 10, 2020 at 12:09:39 (UTC)
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.
Member: MiMa89
MiMa89 Feb 11, 2020 at 10:59:40 (UTC)
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
Member: emeriks
emeriks Feb 11, 2020 at 12:44:16 (UTC)
Goto Top
Sind diese 400 PC's nicht in einer Domäne?
Member: MiMa89
MiMa89 Feb 11, 2020 at 13:03:18 (UTC)
Goto Top
Doch, wieso?
Member: emeriks
emeriks Feb 11, 2020 updated at 13:06:07 (UTC)
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.
Member: MiMa89
MiMa89 Feb 12, 2020 at 07:02:12 (UTC)
Goto Top
Wäre auch ne Möglichkeit... Warum bin ich nicht vorher drauf gekommen.

Ja manchmal ist man blind in seinem Projekt^^


Danke!