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, 4903 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 ..
Ähnliche Inhalte
Windows Systemdateien
gelöst Skript in Kombination mit PSExec (11)

Frage von WinLiCLI zum Thema Windows Systemdateien ...

Windows 10
gelöst Psexec + nircmd Kombination (9)

Frage von knitti zum Thema Windows 10 ...

Windows 10
gelöst Psexec - Zugriff verweigert - WIN10 (3)

Frage von knitti zum Thema Windows 10 ...

Batch & Shell
gelöst Taskkill für bestimmtes cmd Fenster (6)

Frage von n0cturne zum Thema Batch & Shell ...

Neue Wissensbeiträge
Windows Update

Microsoft Update KB4034664 verursacht Probleme mit Multimonitor-Systemen

(3)

Tipp von beidermachtvongreyscull zum Thema Windows Update ...

Viren und Trojaner

CNC-Fräsen von MECANUMERIC werden (ggf.) mit Viren, Trojanern, Würmern ausgeliefert

(4)

Erfahrungsbericht von anteNope zum Thema Viren und Trojaner ...

Windows 10

Windows 10: Erste Anmeldung Animation deaktivieren

(3)

Anleitung von alemanne21 zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Netzwerkgrundlagen
Kann auf Freigabe nicht Zugreifen (19)

Frage von leon123 zum Thema Netzwerkgrundlagen ...

SAN, NAS, DAS
MSA 2050 RAID Konfig (17)

Frage von Leo-le zum Thema SAN, NAS, DAS ...

Festplatten, SSD, Raid
RAID Controller mit Trim-Funktion, wie ermitteln (11)

Frage von pixel24 zum Thema Festplatten, SSD, Raid ...