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

Verhalten bei cmd script wenn man es mit psexec remote ausführt

Frage Entwicklung Batch & Shell

Mitglied: 77575

77575 (Level 1)

17.09.2010 um 10:50 Uhr, 4834 Aufrufe, 3 Kommentare

Hallo,

ich habe ein batch script das auch einwandfrei funktioniert wenn ich es direkt auf dem rechner ausführe, jedoch verhält es sich merkwürdig wenn ich es remote ausführe.

ich verbinde mich mit psexec auf einen rechner:
psexec \\pcname -s cmd

dann wechsle ich in des Verzeichnis in dem das script liegt und führe es aus.
in dem script gibt es 2 abfragen mit set /P

hier das script:

@echo off
SetLocal EnableDelayedExpansion
color F1
if exist C:\Windows\SysWOW64 set "OS=Windows 64"

echo Munich [muc]
echo Berlin [berlin]
echo Hamburg [hamburg]
set /P _DEPLOY_LOCATION= your choice:
if /i "%_DEPLOY_LOCATION%"=="muc" set "_DEPLOYSSHARE3=\\192.168.5.1\freigabe" & goto :_DEPLOY_START
if /i "%_DEPLOY_LOCATION%"=="berlin" set "_DEPLOYSSHARE3=\\192.168.4.1\freigabe" & goto :_DEPLOY_START
if /i "%_DEPLOY_LOCATION%"=="hamburg" set "_DEPLOYSSHARE3=\\192.168.3.1\freigabe" & goto :_DEPLOY_START


:_DEPLOY_START
set "_DEPLOYSSHARE1=\\192.168.0.1\freigabe1"
set "_DEPLOYSSHARE2=\\192.168.0.2\freigabe2"
set "_tmpDEPLOY=C:\TEMP\_deployX"
if not exist %_tmpDEPLOY% mkdir %_tmpDEPLOY% >NUL
echo.
echo text 123
echo text 456
echo text 789
echo usw...
echo Cancel [x]

set /P _deploy_AUSWAHL= your choice:
if /i "%_deploy_AUSWAHL%"=="123" goto _DEPLOY_123
if /i "%_deploy_AUSWAHL%"=="456" goto _DEPLOY_456
if /i "%_deploy_AUSWAHL%"=="789" goto _DEPLOY_789
if /i "%_deploy_AUSWAHL%"=="x" goto _DEPLOY_END
goto _DEPLOY_START

:: ab hier die einzelnen dinge die erledigt werden müssen.....



:_DEPLOY_END
rd /S /Q %_tmpDEPLOY%
goto END

:END
echo schluss, aus ...fertig
pause



Der erste set /P _DEPLOY_LOCATION= your choice: passt. ich wähle z. Bsp. muc aus und dann sollte einfach set /P _deploy_AUSWAHL= your choice: kommen, aber es wird 5 mal untereinander der Text

echo.
echo text 123
echo text 456
echo text 789
echo usw...
echo Cancel [x]
angezeigt.
egal was ich dann auswähle, er springt immer wieder zum _DEPLOY_START, ausser wenn ich x wähle dann springt das script wie gewünscht zum Ende.

auch komisch ist das der befehl cls und das color F1 nicht funktioniert per remote verbindung. die farbe ändert sich nicht und bei cls wird nicht der screen gelöscht sondern nur das angezeigt
C:\WINDOWS>cls
cls


Wie gesagt wenn ich direkt auf den rechner gehe und das script i der kommandozeile ausführe macht es alles was es soll. nur eben nicht wenn ich es remote machen will.
dabei ist es auch egal ob ich psexec mit -s als system ausführe oder als z. bsp. domänen admin.

mache ich etwas falsch das die set /P nicht funktionieren?

gruss 01-01-01
Mitglied: 60730
17.09.2010 um 11:28 Uhr
Moin,

bitte verwende unsere Code Blöcke für Code.

Dann @echo off in Problembätchen ist ganz supi

Wenn das Forum für jede "Problembatch mit führendem €echo off einen @ bekommen würde, wären wir Müllionöhre.
01.
& goto :_DEPLOY_START
ist überflüssig. Da läuft er eh hin und die dann "falschen" if /i werden eh übersprungen.

Bitte schau dir unsere Code Blöcke / Formatierungshilfe an und teste das mal ohne dieses @echo off.

Denn "so ist es für uns nicht so einfach zu helfen.
Btw: Ich ahne, was du da eigentlich bauen willst und wenns das ist - ist dein Ansatz falsch, aber vielleicht kannst du ja auch mal in ein paar zeilen (gerne mehr als meine) schreiben, was das script können soll.

Gruß
Bitte warten ..
Mitglied: colinardo
17.09.2010 um 11:38 Uhr
Schon mal versucht das Script direkt beim psexec-Aufruf anzugeben, ohne vorher in eine Remote-Shell zu wechseln ?
d.h.:
01.
psexec.exe \\remote-pc /i [pfad zur batch]
Das "/i" ist nur für deine Debugzwecke mit eingefügt...(Dann läuft das Script interaktiv auf dem Remote-System)
Bitte warten ..
Mitglied: 77575
17.09.2010 um 13:23 Uhr
01.
& goto :_DEPLOY_START
stimmt, die hatte ich nur noch drin weil ich rumprobiert habe mit pause um zu sehen warum er mir den text 5 mal ausgibt.

was ist an den if /I falsch?

wenn ich ohne echo off teste sehe ich auch nur das ganze sehr schnell mehrmals durchlaufen.
nur die variable %_deploy_AUSWAHL% hat bei jedem durchlauf einen anderen wert
if /i "a"=="123" goto _DEPLOY_123
if /i "a"=="456" goto _DEPLOY_456
und dann mal

if /i "s"=="123" goto _DEPLOY_123
if /i "s"=="456" goto _DEPLOY_456

ich will mit dem script software unattend instalieren und zwar remote. das ganze funktioniert auch wenn ich mich direkt an dem rechner anmelde.

wenn ich das script direkt mit psexec aufrufe ist es das selbe verhalten.


gruss 01-01-01
Bitte warten ..
Neuester Wissensbeitrag
Ähnliche Inhalte
Windows 10
gelöst Treiber unter Windows (7,8,10) per Script auf Remote-PCs updaten (4)

Frage von MrCount zum Thema Windows 10 ...

Windows Netzwerk
gelöst PsExec (Remote auf Win7) liefert Invalid Handle bei zweitem Aufruf (4)

Frage von Mario.Steinberg zum Thema Windows Netzwerk ...

Batch & Shell
gelöst Powershell-Script als Admin über CMD ausführen (2)

Frage von Tobiased zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (33)

Frage von patz223 zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (22)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (21)

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

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

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