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

Benutzerverzeichnis, trotz der Ausführung eines anderen Users - Ist das möglich?

Frage Entwicklung Batch & Shell

Mitglied: netgearsdk

netgearsdk (Level 1) - Jetzt verbinden

15.07.2013, aktualisiert 16.07.2013, 1862 Aufrufe, 10 Kommentare, 1 Danke

Hallo zusammen,


Ich möchte eine Batch Datei schreiben, welche auf das Benutzerverzeichnis "C:\Users\HansPeter\Desktop" zugreifen soll.
Das Problem ist jedoch, dass ich diese Batch Datei über unseren Software Verteiltool als Domain Administrator ausgeführt wird.
Wenn ich im Batch auf die Variable %username% zugreifen möchte, nimmt er mir den User Name vom den Domain Administrator.

Ist es möglich im Batch, trotz der Ausführung des Domain Administrators, auf das das Benutzerverzeichnis vom angemeldenten user zuzugreifen.

Ich möchte schlussendlich Files im Userverzeichnis vom angemeldeten User kopieren.

Vielen Dank bereits im Voraus!
Mitglied: bastla
15.07.2013 um 17:37 Uhr
Hallo netgearsdk!

Das Einzige, was mir trotz Deiner ausführlichen Problembeschreibung dazu einfiele, wäre:
xcopy "C:\Users\%User%\*" "D:\%test%\"
Grüße
bastla
Bitte warten ..
Mitglied: Biber
15.07.2013 um 21:03 Uhr
[OT]
Moin bastla,

hmmja, rate mal, was das Einzige war, das mir zu diesem Beitrag einfiel...

Aber dann dachte ich: Hey, der hat doch noch Potential...

Aber es war ganz, ganz knapp vor einer Spontanreaktion..

Grüße
Biber
[/OT]
Bitte warten ..
Mitglied: netgearsdk
16.07.2013 um 09:51 Uhr
Hallo @bastla

Tut mir leid, ich habe die Frage ausführlicher formuliert.
Hoffe jetzt ist meine Frage klar.

Danke & Gruß
Bitte warten ..
Mitglied: Invisan
16.07.2013, aktualisiert um 10:53 Uhr
Hi Netgear das sollte mit dem Befehl

wmic computersystem get UserName gehen.


Output sieht dann ungefähr so aus


UserName
Domäne\meinnormaleruser

whoami
Domäne\meinadminuser


Hier nochmal nen kleiner Codeschnipsel dazu.


01.
 
02.
@echo off &setlocal 
03.
for /f "tokens=2 delims=\" %%a in ('wmic computersystem get Username') do ( 
04.
  set "t=%%a" 
05.
  setlocal enabledelayedexpansion 
06.
  echo User: !t! 
07.
08.
 
Bitte warten ..
Mitglied: bastla
16.07.2013 um 11:00 Uhr
@ Invisian
Gute Lösung ...

[Etwas OT]
Die Zuweisung an eine "gewöhnliche" Variable (im Beispiel: %t%) ist nur dann sinnvoll, wenn Du Teistrings bilden willst, die sich nicht per Delimiter trennen lassen (etwa die ersten 3 Zeichen ermitteln) - ansonsten kannst Du einfach die Schleifenvariable (hier: %%a) verwenden:
01.
@echo off &setlocal 
02.
for /f "tokens=2 delims=\" %%a in ('wmic computersystem get Username') do echo User: %%a
[/Etwas OT]

Grüße
bastla
Bitte warten ..
Mitglied: Invisan
16.07.2013 um 11:10 Uhr
Zitat von bastla:
@ Invisian
Gute Lösung ...

[Etwas OT]
Die Zuweisung an eine "gewöhnliche" Variable (im Beispiel: %t%) ist nur dann sinnvoll, wenn Du Teistrings bilden
willst, die sich nicht per Delimiter trennen lassen (etwa die ersten 3 Zeichen ermitteln) - ansonsten kannst Du einfach die
Schleifenvariable (hier: %%a) verwenden:
01.
@echo off &setlocal 
02.
> for /f "tokens=2 delims=\" %%a in ('wmic computersystem get Username') do echo User: %%a 
03.
> 
[/Etwas OT]

Grüße
bastla


Hi bastla,

danke für die Info. Was for schleifen etc angeht stehe ich noch am Anfang und benutze einfach das was ich in anderen BAT Files finde und für nützliche halte. Dementsprechend bleiben da dann halt auch ab und zu Sachen über die nicht unbedingt nötig sind ^^


Mit freundlichen Grüßen Invi
Bitte warten ..
Mitglied: netgearsdk
16.07.2013, aktualisiert um 11:41 Uhr
Hallo bastla
Hallo Invisa

Vielen Dank für eure Antworten!
Jedoch möchte ich z.b. einen Ordner im Benutzerverzeichnis erstellen.

01.
@echo off &setlocal 
02.
for /f "tokens=2 delims=\" %%a in ('wmic computersystem get Username') do echo User: %%a 
03.
mkdir "C:\Users\%%a\Downloads\test" 
04.
pause
Er nimmt im Pfad die Variable nicht an.
In anderen Programmiersprachen kann man ja den Pfad / String unterbrechen und mit & Variable & hinzufügen und anschliessend den Rest des Pfads eingeben. Wie ist das im Batch möglich?
Besten Dank!
Bitte warten ..
Mitglied: bastla
16.07.2013, aktualisiert um 13:37 Uhr
Hallo netgearsdk!

Was Du möchtest wäre ja eher
01.
@echo off &setlocal 
02.
for /f "tokens=2 delims=\" %%a in ('wmic computersystem get Username') do ( 
03.
    echo User: %%a 
04.
    md "C:\Users\%%a\Downloads\test" 
05.
06.
pause
bzw ohne die Ausgabe einfach
for /f "tokens=2 delims=\" %%a in ('wmic computersystem get Username') do md "C:\Users\%%a\Downloads\test"
Die Schleifenvariable %%a steht nur innerhalb der Schleife zur Verfügung - wenn der Wert auch außerhalb der Schleife benötigt wird, könntest Du ihn tatsächlich einer anderen Variablen zuweisen:
01.
@echo off &setlocal 
02.
for /f "tokens=2 delims=\" %%a in ('wmic computersystem get Username') do set "User=%%a" 
03.
echo User: %User% 
04.
md "C:\Users\%User%\Downloads\test" 
05.
pause
Grüße
bastla
Bitte warten ..
Mitglied: Invisan
16.07.2013 um 14:48 Uhr
Zitat von bastla:
Hallo netgearsdk!

Was Du möchtest wäre ja eher
01.
@echo off &setlocal 
02.
> for /f "tokens=2 delims=\" %%a in ('wmic computersystem get Username') do ( 
03.
>     echo User: %%a 
04.
>     md "C:\Users\%%a\Downloads\test" 
05.
> ) 
06.
> pause 
07.
> 
bzw ohne die Ausgabe einfach
for /f "tokens=2 delims=\" %%a in ('wmic computersystem get Username') do 
> md "C:\Users\%%a\Downloads\test" 
> 
Die Schleifenvariable %%a steht nur innerhalb der Schleife zur Verfügung - wenn der Wert auch außerhalb der Schleife
benötigt wird, könntest Du ihn tatsächlich einer anderen Variablen zuweisen:
01.
@echo off &setlocal 
02.
> for /f "tokens=2 delims=\" %%a in ('wmic computersystem get Username') do set "User=%%a" 
03.
> echo User: %User% 
04.
> md "C:\Users\%User%\Downloads\test" 
05.
> pause 
06.
> 
Grüße
bastla



Hi Bastla,

super Arbeit da warst du ein wenig schneller als ich ^^ Allerdings ist da noch nen kleiner Fehler drin. Die Ausgabe der WMIC erhält standardmäßig so wies aussieht ein Leerzeichen am Ende. Dieses hast du beim delimiter nicht angegeben. Solange das Leerzeichen vom Delimiter nicht ausgenommen wird scheint es zu Fehlern zu kommen. Das obere Skript setzt dann Downloads\test nach vorne und danach die hälfte des Usernamens. Das untere Skript enthält dann das überflüssige Leerzeichen und funktioniert damit als Befehl dann auch nicht.


Mit freundlichen Grüßen Invi
Bitte warten ..
Mitglied: netgearsdk
18.07.2013, aktualisiert um 15:51 Uhr
Hallo zusammen
@Invisan
@bastla

Danke euch beiden.
Ich habe das Problem folgendermassen gelöst:

01.
@echo off &setlocal 
02.
for /f "tokens=2 delims=\" %%a in ('wmic computersystem get Username') do set "User=%%a" 
03.
echo User: %User% 
04.
set str=%User: =% 
05.
echo "C:\Users\%str%\Downloads\test" 
06.
pause

Vielen Dank nochmals....
Mit freundlichen Grüßen
Bitte warten ..
Neuester Wissensbeitrag
Ähnliche Inhalte
Windows Userverwaltung
gelöst Mit der PoweShell die lokal angelegten Users eines anderen Rechners auflisten (7)

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

Windows Userverwaltung
gelöst Java Ausführung nur als lokaler Admin möglich? (1)

Frage von crack24 zum Thema Windows Userverwaltung ...

Windows Netzwerk
Kein RDP über VPN per MS-TSC möglich (9)

Frage von survial555 zum Thema Windows Netzwerk ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (19)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (19)

Frage von patz223 zum Thema Windows Userverwaltung ...

Windows Netzwerk
Windows 10 RDP geht nicht (18)

Frage von Fiasko zum Thema Windows Netzwerk ...

Viren und Trojaner
Aufgepasst: Neue Ransomware Goldeneye verbreitet sich rasant (15)

Link von Penny.Cilin zum Thema Viren und Trojaner ...