Je suis en cours d'exécution suivantes via un script PHP distant qui se connecte à SSH:CMD commencer ni PSExec ouvrir l'application interactive au premier plan lorsque vous utilisez PHP pour se connecter à SSH
cmd /C start "" /MAX /b "C:\Windows\System32\notepad.exe"
Le processus ne démarre mais il reste en l'arrière-plan et ne s'ouvrira pas complètement sur le bureau distant. Y a-t-il un moyen de le faire fonctionner de manière interactive (comme PSExec a le drapeau -i)?
Edit:
Ainsi, le PHP se connecte à SSH avec ssh2_connect
utilise ensuite ssh2_exec
de la manière suivante:
if (!($stream = ssh2_exec($con, $shcom))) {
où $shcom
est la commande passée au SSH, tel que:
$shcom = 'cmd.exe /C start "" /MAX "%SystemRoot%\System32\calc.exe"';
J'ai précédemment utilisé PSExec et PuTTY (notez pas via le script PHP) pour ouvrir manuellement notepad.exe sur une télécommande machine via les éléments suivants:
cd "C:\Program Files\PSExec\" & psexec \\localhost -i 2 -ds "C:\Windows\System32\notepad.exe"
qui n'a pas fonctionné avec succès mais cela ne fonctionne pas aussi bien via PHP. Actuellement, ni CMD ni PSExec ne peuvent afficher une application interactive au premier plan automatiquement.
Seule la fenêtre de premier plan ou un programme nouvellement lancé (2 secondes) peut placer une fenêtre au premier plan. Pour récupérer le texte d'un contrôle dans un autre processus, envoyez un message WM_GETTEXT directement au lieu d'appeler GetWindowText. Voir https://msdn.microsoft.com/en-us/library/windows/desktop/ms633539(v=vs.85).aspx pour une liste complète des règles. PSExec se copie sur le système cible à l'aide du partage admin. Se connecte ensuite au contrôleur de service de la cible et s'installe en tant que service. Puis commence le programme. Windows a passé des décennies à écrire du code empêchant les fenêtres de se concentrer. –
Il n'y a pas de fonctionnalité Windows permettant aux programmes exécutés à distance d'interférer avec un utilisateur interactif sur le système distant. –
Pour référence, l'extrait de code final que j'ai posté fonctionne pour démarrer un processus bloc-notes au premier plan, mais seulement si je l'envoie manuellement via PuTTY. Savez-vous quelle serait la bonne syntaxe pour que le script PHP l'exécute? – Talisman