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
Please also mark the comments that contributed to the solution of the article
Content-Key: 155180
Url: https://administrator.de/contentid/155180
Printed on: April 24, 2024 at 22:04 o'clock
8 Comments
Latest comment
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