Psexec variable mitgeben
Hallo Script und Programmierprofis!
Ich möchte psexec eine variable mit auf den weg geben. Leider konnte google mir nicht helfen.
Ich starte über eine "lokale" auf meiner Workstation eine Batch die wie folgt aussieht (AUSSCHNITT):
So sieht die Batch auf dem Server aus:
Wenn ich das Script via psexec (sysinternals) ausführe und die variablen durch einen "richtigen" Ordnernamen in der Batch auf dem Server starte funktioniert das wunderbar. Gibt es eine Möglichkeit eine Variable zu übergeben?
Mit:
funktioniert das leider nicht
Vielen Dank für eure Hilfe und Anregungen im Voraus!
//Crowdy
Ich möchte psexec eine variable mit auf den weg geben. Leider konnte google mir nicht helfen.
Ich starte über eine "lokale" auf meiner Workstation eine Batch die wie folgt aussieht (AUSSCHNITT):
psexec \\server C:\Ordner\Ordner1\checkin.cmd
So sieht die Batch auf dem Server aus:
@echo off
rem :START
rem settings
echo.
set ADDOM=domain
rem echo Bitte Benutzernamen eingeben:
set /p n=
set USERHOMEDIR=D:\Profile\%n%
cd D:\Profile\standartprofil\
d:
cmd /c xcopy /s "D:\Profile\standartprofil\\*.*" "D:\Profile\%n%"
takeown /F %userhomedir% /R /D Y /A
cd C:\AppleScripts\Apple
c:
cmd /c SetACL.exe -on "%USERHOMEDIR%" -ot file -actn setprot -op "dacl:np;sacl:nc" -rec cont_obj
cmd /c SetACL.exe -on "%USERHOMEDIR%" -ot file -actn setowner -ownr "n:%ADDOM%\%n%" -rec cont_obj
cmd /c SetACL.exe -on "%USERHOMEDIR%" -ot file -actn ace -ace "n:%ADDOM%\%n%;p:full" -rec cont_obj
Wenn ich das Script via psexec (sysinternals) ausführe und die variablen durch einen "richtigen" Ordnernamen in der Batch auf dem Server starte funktioniert das wunderbar. Gibt es eine Möglichkeit eine Variable zu übergeben?
Mit:
psexec \\server C:\Ordner\Ordner1\checkin.cmd
%1
funktioniert das leider nicht
Vielen Dank für eure Hilfe und Anregungen im Voraus!
//Crowdy
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 155180
Url: https://administrator.de/forum/psexec-variable-mitgeben-155180.html
Ausgedruckt am: 30.04.2025 um 19:04 Uhr
8 Kommentare
Neuester Kommentar
Hallo Crowdy und willkommen im Forum!
Wenn ich das einigermaßen richtig verstanden habe, willst Du die Eingabe des Benutzernamens "mitliefern" - das könnte (beides ungetestet) über
gehen oder Du änderst im Batch am Server auf
oder besser (wenn der Batch auch "interaktiv" verwendet werden soll)
und startest mit
BTW: Direkt zum Standarten-Profil-Ordner kommst Du mit
Grüße
bastla
Wenn ich das einigermaßen richtig verstanden habe, willst Du die Eingabe des Benutzernamens "mitliefern" - das könnte (beides ungetestet) über
echo %1|psexec \\server C:\Ordner\Ordner1\checkin.cmd
set USERHOMEDIR=D:\Profile\%1
set "n=%~1"
if not defined n set /p n=Bitte Benutzernamen eingeben:
set USERHOMEDIR=D:\Profile\%n%
psexec \\server C:\Ordner\Ordner1\checkin.cmd %1
cd /d D:\Profile\standartprofil
bastla

Servus und auch von mir ein willkommen,
sag mal bitte, was macht denn (oder soll) dieses Script?
deine Zeile 14 sieht aber auch sehr merkwürdig aus?
Ergänzend zu Bastlas Vorschlag würde ich eine "echte" Überprüfung bauen...
[OT]
Du hast sowohl mich, als auch Bastla ins grübeln gebracht, der kennt jetzt sogar den Standarten Profil Ordner
[/OT]
Gruß
sag mal bitte, was macht denn (oder soll) dieses Script?
deine Zeile 14 sieht aber auch sehr merkwürdig aus?
xcopy /s "D:\Profile\standartprofil\\*.*" "D:\Profile\%n%"
ich meine jetzt nicht den Theo ohne Deo... sind dir da die Backslashes verrutscht?Ergänzend zu Bastlas Vorschlag würde ich eine "echte" Überprüfung bauen...
:username
set "n=%~1"
if not defined n set /p n=Bitte Benutzernamen eingeben:
net user %n% /domain|findstr /i "%n%" || goto username
set USERHOMEDIR=D:\Profile\%n%
[OT]
Du hast sowohl mich, als auch Bastla ins grübeln gebracht, der kennt jetzt sogar den Standarten Profil Ordner
[/OT]
Gruß
Hallo Crowdy!
Abgesehen davon, dass ich die "checkin.cmd" etwas straffen würde:
müsste der Aufruf von "
damit in "checkin.cmd" auch etwas als %1 ankommt ...
Grüße
bastla
Abgesehen davon, dass ich die "checkin.cmd" etwas straffen würde:
@echo off & setlocal
rem settings
set ADDOM=t4h
::set /p n=Bitte Benutzernamen eingeben:
set USERHOMEDIR=D:\Home\%1
cmd /c xcopy /e "D:\Homestandard_profil\*.*" "%USERHOMEDIR%\"
rem take ownership for administrators group
takeown /F "%USERHOMEDIR%" /R /D Y /A
cd /d C:\Scripts
rem set inheritation flag
cmd /c SetACL.exe -on "%USERHOMEDIR%" -ot file -actn setprot -op "dacl:np;sacl:nc" -rec cont_obj
rem put back ownership for user
cmd /c SetACL.exe -on "%USERHOMEDIR%" -ot file -actn setowner -ownr "n:%ADDOM%\%1" -rec cont_obj
rem put back ACL for user
cmd /c SetACL.exe -on "%USERHOMEDIR%" -ot file -actn ace -ace "n:%ADDOM%\%1;p:full" -rec cont_obj
pause
psexec
" etwa so aussehen:psexec \\server C:\Ordner\Ordner1\checkin.cmd Benutzername
Grüße
bastla