Top-Themen

Aktuelle Themen (A bis Z)

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

Frage Entwicklung Batch & Shell

GELÖST

Batchdatei für automatischen Backup der Eigenen Dateien mit verschiedenen Profilen

Mitglied: Milzbrand

Milzbrand (Level 1) - Jetzt verbinden

10.12.2010 um 10:43 Uhr, 4386 Aufrufe, 8 Kommentare

Hallo erstmal,
Ich versuche gerade einen Multiboot USB, mit automatisierten Backup, Neuinstallation und Wiederherstellung des Backups per BAT zu programmieren.
Das Problem ist das es immer unterschiedliche Rechner mit unterschiedlichen Profilen sind.

Ich schreibe gerade an einer BAT in der ich an Kundenrechner, die neu zu Formatieren sind, die eigene Dateien zu sichern, eine Neuinstallation durchführen, Standartprogramme installiert und die Gesicherten Dateien wieder herstellt.
das Betriebssystem ist immer XP.
Alles haut soweit hin nur wenn mehrere Benutzer installiert sind, da komme ich nicht weiter.
Wenn nur ein Benutzer auf dem Rechner installiert ist ist das mit %userprofile% kein Problem.

Wie kann ich eine Abfrage starten die mir zb die eigenen Dateien von verschieden, immerwieder unterschiedlichen Benutzern ausliest.

zb: Die Ordnerstrucktur liest sich folgenderweise:

C:\Dokumente und Einstellungen\All Users
C:\Dokumente und Einstellungen\Toxilap
C:\Dokumente und Einstellungen\Admin
C:\Dokumente und Einstellungen\DAU
C:\Dokumente und Einstellungen\Default User
C:\Dokumente und Einstellungen\LocalService
C:\Dokumente und Einstellungen\NetworkService

Nun möchte ich von von den usern Toxilap, Admin und DAU die eigenen Dateien speichern.
Die Usernamen sind beim nächsten Rechner wieder ganz anders.

die Standart User wie All User, Defaultuser, LocalService und NetworkService sollen nicht gesichert werden.

Wie gesagt das aktuelle Konto ist kein Problem auszulenen aber die anderen zwei.

Ach ja wenn Ihr eine Lösung habt und die nur reinschreibt bin ich euch dankbar! Wenn Ihr mir aber noch zu den befehlszeilen was dazuschreibt wäre ich euch extrem Dankbar.

Danke schon mal im vorraus für eure Hilfe.

lg Toxilap
Mitglied: bastla
10.12.2010 um 12:12 Uhr
Hallo Milzbrand!

Als Grundlage / Denkanstoß zum Testen direkt an der Kommandozeile (daher nur %i und nicht %%i):
for /f "delims=" %i in ('dir /b /ad "%userprofile%\.."^|findstr /i /v /c:"All Users" /c:"Default User" /c:"LocalService" /c:"NetworkService"') do @echo "%i"
Die für "dir" und "findstr" verwendeten Optionen sollten sich mit der Online-Hilfe (zB "dir /?"') nachvollziehen lassen (ev mit Ausnahme der mehrfachen "/c:" - hier gilt die Regel: wenn einmal ein Suchbegriff (wegen enthaltener Leerzeichen) so angegeben wurde, müssen auch alle weiteren nach "/c:" geschrieben werden) ...

"%userprofile%\.." geht vom Profilordner des aktuellen Users eine Ebene nach oben und sollte sich daher auch zB für Vista / 7 (wo es ja keine "Dokumente und Einstellungen" gibt) verwenden lassen.

Alternativ (diesmal als Batch):
01.
pushd "%userprofile%\.." 
02.
for /f "delims=" %%i in ('dir /b /ad^|findstr /i /v /c:"All Users" /c:"Default User" /c:"LocalService" /c:"NetworkService"') do echo "%%i" 
03.
popd
Hier musst Du Dir für die Verarbeitung (bisher nur durch
echo "%%i"
angedeutet) keine Gedanken mehr wegen des Pfades machen ...

Grüße
bastla
Bitte warten ..
Mitglied: Milzbrand
10.12.2010 um 14:11 Uhr
Erstmal dank Dir Bastla,

Eigendlich genau das was ich suche. ich habe es ein wenig verändert:

for /f "delims=" %%i in ('dir /b /ad^|findstr /i /v /c:"All Users" /c:"Default User" /c:"LocalService" /c:"NetworkService"') do set user=%user%%%i

Entschuldige meine unwissenheit aber wie könnte ich das noch verwirklichen das ich den einzelnen Usern ne Zahl zuordne?
also im oberen Fall

User1=Toxilap
User2=Admin
User3=DAU

Ich kenne zwar den Befehl set user%zahl%=%user%%%i
denke aber das ich das damit hier nicht weiterkomme.

Dank dir schonmal.


lg Toxilap
Bitte warten ..
Mitglied: bastla
10.12.2010 um 16:10 Uhr
Hallo Milzbrand!

Wenn Du das wirklich brauchst (wozu eigentlich), dann etwa so:
01.
@echo off & setlocal enabledelayedexpansion 
02.
set /a Nr=1 
03.
pushd "%userprofile%\.." 
04.
for /f "delims=" %%i in ('dir /b /ad^|findstr /i /v /c:"All Users" /c:"Default User" /c:"LocalService" /c:"NetworkService"') do ( 
05.
    set "User!Nr!=%%i" 
06.
    set /a Nr+=1 
07.
08.
popd
Grüße
bastla

[Edit] Fehlendes "a" in Zeile 2 ergänzt [/Edit]
Bitte warten ..
Mitglied: Milzbrand
10.12.2010 um 18:21 Uhr
Hallo Bastla,

ich sitze hier nun schon geschlagene 2 Stunden und versuche die Lösung zu finden, ich will mir ja nicht nachsagen lassen es ist alles nur geklaut. fg

Deine Zeilen Passen soweit wobei im mittelteil es nicht das tut was es soll.

ich habe ein wenig rumgeschrieben und Ja ein Anfänger tut sich halt noch schwerer bzw hat noch nicht die geistigen Möglichkeiten.
Aus deinem
do (
set "User!Nr!=%%i"
set /a Nr+=1
)
habe ich gemacht
do (
set "User%Nr%=%%i"
set /a Nr=%Nr%+1
)

Leider zählt er in keinem der Fälle hoch sondern gibt immer nur User1 aus.

Wofür ich das brauche?
Wie geschrieben bekomme ich immer unterschiedliche Rechner mit den unterschiedlichsten Profilen, die ich erst sichern muss, danach das OS neuinstallieren und anschliessend die Daten wieder herstellen muss. bisher habe ich das immer umständlich per Drag and Drop gemacht. nun möchte ich den ganzen Prozess eben automatisieren.

dank dir nochmal für deine Hilfe.


lg Milzbrand
Bitte warten ..
Mitglied: Biber
10.12.2010 um 18:33 Uhr
Moin Milzbrand,

die Schreibweise set "User!Nr!=%%i" , die bastla verwendet hat bewirkt, das die Variable !Nr! quasi erst genau dann aktuell "berechnet" wird, wenn der Programmablauf genau dort angelang. Die Variablenauflösung wird also "verzögert". Neudeutsch "Delayed expansion".

Wenn du keine "DelayedExpansion" verwendest, also die Variable User%Nr% statt Variable User!Nr! ansprichst, dann hat %Nr% immer noch denselben wert, wie er VOR Beginn der ganzen Programmzeile war.
Ganze Programmzeile=Zeile beginnend "FOR /F .....{bla} DO ( .."

Suche mal hier m Forum nach DelayedExpansion-> bevor dir das nicht richtig klar ist, solltest du NICHT irgendwelche %usersprofile% wegsichern.

Grüße
Biber
Bitte warten ..
Mitglied: Milzbrand
10.12.2010 um 19:17 Uhr
Hallo Biber,

Ich habe mir die Zeilen die Bastla geschrieben hat angesehen und versucht sie erstens zu verstehen und zweitens so zu schreiben das es geht.
Leider habe ich in diesem bereich nur Anfängerwissen das es mir aber erlaubt mit Batch einfache Struckturen auszuführen.
Das ein xcopy %userprofile%\Eigene Dateien zwingend mit delayedexpansion gehandhabt werden muss kann ich mir nicht vorstellen.
Vieleicht drücke ich mich auch nur falsch aus.
Fakt ist das das was Bastla geschrieben hat nicht hochzählt und ich mir nicht erklären kann wiso bzw. was ich ändern muss das es hochzählt.


lg Milzbrand
Bitte warten ..
Mitglied: bastla
10.12.2010 um 20:31 Uhr
Hallo Milzbrand!

  • Fakt ist, dass in Zeile 2 ein "a" gefehlt hat (ist inzwischen oben nachgetragen), was dazu führte, dass zunächst nur eine Variable %User% entstanden ist.
  • Fakt ist auch, dass die weiteren User dann sehr wohl als %User1%, %User2%, ..., %Usern% erstellt wurden.
  • Fakt ist weiters, dass diese Variablen nur innerhalb des Batches zur Verfügung stehen - wenn Du als letzte Zeile noch
set User
hinzufügst, kannst Du das Ergebnis auch sehen.
  • Fakt ist schließlich, dass Du bisher noch kein Wort über den (vermeintlichen) Sinn dieser Nummerierung verloren hast.

Grüße
bastla
Bitte warten ..
Mitglied: Milzbrand
10.12.2010 um 21:02 Uhr
Juhu super Dankeeee es geht!
Nicht in deinen zeilen war der Fehler sondern in meinem kopf.
Manchmal sieht man den Wald vor lauter Bäumen nicht.

Die Nummerierung wird Folgenderweisse verwendet:

erster schritt
Backup der einzelnen User über das Netzwerk (\\lala\backup\rechner\user\eigene dateien)
In dem Backup wird eine Textdatei mit den einzelnen Usern und anderen variablen geschrieben. (Broser, Emailprogramm etc.)
zweiter schritt
Neuinstallation von Windows
dritter schritt
Auslesen der Textdatei
Erstellen der Userprofile laut der Textdatei
Automatisierte Installation der Programme und wiederherstellen der Daten (z.b. Lesezeichen)

Da ich die Variable User an mehreren Stellen in der Batch brauche ( sie hat bisher über 300 zeilen) dachte ich ist es das sinnvollste die User als User1 etc zu haben.
Warscheinlich denkst du dir jetzt da gibts einfachere Wege zum Ziel aber der erscheint mir am sinnvollsten.

Dank dir nochmals ganz sakrisch.

lg Milzbrand
Bitte warten ..
Ähnliche Inhalte
Router & Routing
Verschiedene VLAN mit eigenem Internetanschluss
gelöst Frage von TirgelRouter & Routing4 Kommentare

Hi Leute Ich habe folgendes Problem bei dem ich mir nicht ganz sicher bin wie ich es angehen soll ...

Batch & Shell
Batch: Dateien automatisch in verschiedene Ordner sortieren
gelöst Frage von XanderoBatch & Shell11 Kommentare

Hallo Community, ich möchte folgende Aufgabe per Batch lösen: In einem Ordner werden täglich mehrere csv-Dateien angelegt, die nach ...

Windows Server
Gelöschte Datei auf dem Desktop wird automatisch wiederhergestellt - Servergespeichertes Profil
gelöst Frage von QugartWindows Server5 Kommentare

Schönen Freitagmorgen! Ja, es ist Freitag Eine Userin hat mich angesprochen, dass sie zwei Dateien auf dem Desktop jetzt ...

Batch & Shell
Batchdatei soll überprüfen, ob auf eine Log Datei
Frage von hoppalaBatch & Shell1 Kommentar

Hiho :) ! Ein Freund und ich haben eine Batchdatei erstellt, leider kommen wir bei einer Sache nicht weiter. ...

Neue Wissensbeiträge
Datenschutz

Teamviewer kommt für IoT-Geräte wie den Raspberry Pi

Information von magicteddy vor 3 StundenDatenschutz

Moin, jetzt werden IoT Geräte endgültig zur Wanze? Anscheinend kann man auf einem Dashboard seine Geräte visualisieren Ich stelle ...

Microsoft

Letzte Updates für Win10 und Server2016 müssen bei Bedarf über den Update catalogue in den WSUS importiert werden!

Tipp von DerWoWusste vor 8 StundenMicrosoft1 Kommentar

automatisch kommt da nichts an im WSUS und auch nicht im SCCM. Siehe Hinweise zum Bezug der jeweils neuesten ...

Linux

Meltdown und Spectre: Linux Update

Information von Frank vor 3 TagenLinux

Meltdown (Variante 3 des Prozessorfehlers) Der Kernel 4.14.13 mit den Page-Table-Isolation-Code (PTI) ist nun für Fedora freigegeben worden. Er ...

Tipps & Tricks

Solutio Charly Updater Fehlermeldung: Das Abgleichen der Dateien in -Pfad- mit dem Datenobject ist fehlgeschlagen

Tipp von StefanKittel vor 3 TagenTipps & Tricks

Hallo, hier einmal als Tipp für alle unter Euch die mit der Zahnarztabrechnungssoftware Charly von Solutio zu tun haben. ...

Heiß diskutierte Inhalte
Netzwerkmanagement
Preis für Wartungsvertrag ok?
gelöst Frage von a-za-zNetzwerkmanagement21 Kommentare

Hallo! Mal ne Frage, weil ich mich mit dem akzeptablen Preis für einen Reaktionszeitvertrag nicht auskenne. Meine Firma hat ...

Windows Netzwerk
Ist ein Portforwarding auf einen PC ohne lauschendes Programm ein (großes) Sicherheitsproblem?
Frage von PluwimWindows Netzwerk13 Kommentare

Hallo zusammen, zur Fernwartung eines Rechners an einem anderen Ort nutze ich VNC. Da dieser Rechner einfach nur eine ...

SAN, NAS, DAS
Wer kennt sich mit QNAP und CISCO aus ?
gelöst Frage von MachelloSAN, NAS, DAS10 Kommentare

Hallo Zusammen hier im Forum, Ich habe ein QNas 451+ und dieses NAS hat zwei GBit Lan Adapter die ...

Windows Server
Terminal Server 2016 erkennt Berechtigungen nicht
gelöst Frage von Thomas2Windows Server10 Kommentare

Hallo Administratoren, folgendes Problem stellt sich dar: Es gibt zwei Windows Server 2016, die als Terminal Server fungieren. Jetzt ...