PDA

View Full Version : Desktop remoto Windows Server 2012 R2


Gnaffer
02-07-2018, 22:32
Buonasera, tramite host ho un Windows Server 2012 R2 Datacenter senza supporto sistemistico, per questo sono qui a chiedere un paio di info.
Su questo server faccio girare più processi di un programma che ha necessità di restare acceso 24h. L'ho installato in cartelle separate tipo progr - 1, progr - 2 progr - 3 e li ho impostati tutti come avvio automatico. In uno di essi c'è anche un log di quello che il programma stesso fa mentre è in funzione, log che si cancella ad ogni chiusura del programma stesso. C'è necessità che io ed un'altra persona vi accediamo tramite Desktop Remoto per modificare il programma e poterci lavorare anche in contemporanea. Ho dato a questa persona l'utente admin usato da me e quando lui entra mi butta fuori e viceversa, questo perchè Windows non permette più sessioni. Googlando ho trovato un piccolo "hack", modificando la stringa "Restrict Remote Desktop Services user to a single remote" in gpedit.msc possiamo collegarci insieme e qui arriva il MA... anche se usiamo lo stesso utente, ogni volta che ci colleghiamo, sembra quasi che il server ricarichi tutto da 0 perchè quando accediamo i programmi sono tutti chiusi e si aprono davanti a noi, inoltre il log è vuoto a conferma di questa tesi.

Non c'è modo di poter tenere la stessa sessione attiva per entrambi senza che tutte le volte si debba ricaricare? perchè altrimenti è assolutamente inutile. I programmi devono rimanere aperti e lavorare indisturbati indipendentemente da quante volte noi 2 ci colleghiamo.

La seconda domanda è se esiste un programma semplice semplice che mostri il log dell's.o. come orario di riavvio, uptime etc in modo da tenere monitorato il server anche quando non siamo collegati.

Grazie

Dane
03-07-2018, 01:53
vado a memoria:
due utenze amministrative possono lavorare in parallelo.

mmiat
03-07-2018, 09:19
ma perché usare tutti e 2 lo stesso utente invece di farne 2 ?

Gnaffer
03-07-2018, 10:51
Perché usando 2 utenti si collega a 2 sessioni diverse quindi i programmi che sul mio sono aperti sul suo invece non lo sono, esattamente come Windows di casa nostra dove ogni utente è indipendente e non è questo che ci serve.

Comunque oggi provo a fare admin anche il secondo utente, vediamo che succede.

Intanto grazie :)

Gnaffer
03-07-2018, 19:02
Niente, anche con 2 admin comunque ci si collega a 2 sessioni diverse:muro:

Kaya
04-07-2018, 09:59
Niente, anche con 2 admin comunque ci si collega a 2 sessioni diverse:muro:

Ma questo è ovvio. Tu ogni volta che accedi con un utente, il programma tuo PARTE.
Il problema di fondo è che hai una applicazione desktop che vorresti funzionasse come un servizio.
Quindi hai due opzioni
1) Converti la tua app in un servizio

2) Fai modificare la app affinchè non cancelli i log, ma vada in logrotation oppure in append. O anche che se il processo è già attivo non lo attivi ma vada in exit (addendum potresti fare uno script che se trova il processo già attivo NON fa avviare la app)

Hai anche una terza opzione, quella di far si che la app parta solo con un utente specifico e quindi l'altro utente non la ha in esecuzione automatica (non so se questo possa servirti)

Gnaffer
04-07-2018, 11:38
Ok quindi sto sbagliando alla base, come faccio a convertirlo in servizio? a me serve che che il programma rimanga costantemente acceso, 24h indipendentemente da tutto, sia se qualcuno è collegato sia no.

Kaya
04-07-2018, 15:39
Ok quindi sto sbagliando alla base, come faccio a convertirlo in servizio? a me serve che che il programma rimanga costantemente acceso, 24h indipendentemente da tutto, sia se qualcuno è collegato sia no.

Eh si, si chiamano servizi proprio per quello (o demoni in linux)
Ma chi è che lo ha sviluppato questo programma?

Se è un programma "easy" potresti provare con sc ( https://stackoverflow.com/questions/3582108/create-windows-service-from-executable ) oppure NSSM (Sempre stesso post)

Gnaffer
04-07-2018, 16:10
Forse è una buona idea, devo testarlo. Comunque è la piattaforma MetaTrader, qui (https://www.metaquotes.net/) il sito ufficiale. Se per "easy" intendi se il programma è semplice allora ti rispondo subito di no (considera che al suo interno è integrato MetaEditor per scrivere codici basati sul c++), se invece intendi se è ottimizzato onestamente non saprei dato che non sono un tecnico.. ma credo di si dato che gira bene su tutto (mobile, Windows, Linux etc):D

Kaya
04-07-2018, 16:27
Forse è una buona idea, devo testarlo. Comunque è la piattaforma MetaTrader, qui (https://www.metaquotes.net/) il sito ufficiale. Se per "easy" intendi se il programma è semplice allora ti rispondo subito di no (considera che al suo interno è integrato MetaEditor per scrivere codici basati sul c++), se invece intendi se è ottimizzato onestamente non saprei dato che non sono un tecnico.. ma credo di si dato che gira bene su tutto (mobile, Windows, Linux etc):D

MMMM non conosco il prodotto ma a naso vedo che ha bisogno di una interfaccia grafica, quindi dubito possa tu convertirlo in servizio, crasherebbe subito.

Ma tu devi quindi lavorare sui LOG che il programma genera?

Gnaffer
04-07-2018, 16:40
No, i log li ha scritti l'altra persona (è un programmatore) che si collega così noi vediamo cosa fa e capiamo dove intervenire. Il cuore pulsante è il MetaEditor che viene usato per scrivere degli EA (in gergo Expert Advisor, vedili come dei bot) cioè mini-programmi che lavorano in automatico all'interno della MetaTrader. La piattaforma fa girare questi EA in base ai dati che prende dal mercato dandoglieli in pasto. L'EA infine apre e chiude le posizioni in base a parametri da noi preimpostati nell'editor. Da qui la necessità di avere la piattaforma operativa 24h e si, l'interfaccia grafica è assolutamente necessaria.

Kaya
05-07-2018, 15:05
No, i log li ha scritti l'altra persona (è un programmatore) che si collega così noi vediamo cosa fa e capiamo dove intervenire. Il cuore pulsante è il MetaEditor che viene usato per scrivere degli EA (in gergo Expert Advisor, vedili come dei bot) cioè mini-programmi che lavorano in automatico all'interno della MetaTrader. La piattaforma fa girare questi EA in base ai dati che prende dal mercato dandoglieli in pasto. L'EA infine apre e chiude le posizioni in base a parametri da noi preimpostati nell'editor. Da qui la necessità di avere la piattaforma operativa 24h e si, l'interfaccia grafica è assolutamente necessaria.

E allora secondo me l'approccio a cui ti poni al sistema è errato.

Ma tu hai bisogno di vedere cosa fa l'utente da remoto per capire? Non puoi usare banalmente un teamviewer o simile ?

Secondo me dovresti spiegarti meglio su qual'è la necessità finale..

Gnaffer
05-07-2018, 18:01
Ok, la MetaTrader è un piattaforma di accesso ai mercati finanziari. Fai il login con qualsiasi broker tu abbia sottoscritto un contratto, entri e la piattaforma ti da i grafici che preleva dai server del broker con tutte le info relative. E' una piattaforma operativa ovvero ti permette anche di gestire il tuo conto e aprire posizioni, di entrare a mercato come si dice in gergo. Non è l'unica, ne esistono a migliaia, ma è una delle migliori in assoluto.

All'interno della piattaforma c'è anche MetaEditor che è appunto un editor in c++ con cui scrivere gli EA che altro non sono che "miniprogrammi" (o bot se preferite il termine) che eseguono dei calcoli in base alle impostazioni che tu, tramite l'editor, gli hai dato, restituendoti una serie di informazioni o addirittura entrando a mercato in maniera automatica (è un mercato miliardario a livello mondiale quindi non parliamo di cagatine). Attenzione che questi EA non diventano dei programmi .exe da usare in maniera autonoma. Si salvano in un formato proprietario e si fanno girare sempre all'interna della piattaforma.
Questi EA e la piattaforma fungono tranquillamente anche sui Windows Home però è scomodo tenere il pc di casa acceso tutto il giorno ecco perchè il Windows Server.

Ora, io non sono capace di programmare in c++ per questo mi faccio aiutare da un ragazzo che invece è bravissimo.
Da qui la necessità di avere il doppio accesso sul server con stesso utente e stessa sessione. Io devo poter accedere per assicurarmi che tutto funzioni correttamente mentre l'altro ragazzo deve poter accedere per, appunto, scrivere codice.

La storia dei log è una cosa in più che il ragazzo ha messo per capire cosa il nostro EA stà facendo e se ci sono errori andare a capire in quale parte di codice si trova l'errore sennò è un macello. Questi log vengono inviati alla piattaforma rendendoli visibili. Tuttavia non vengono salvati in maniera perenne, quindi ogni volta che la mt si riavvia si cancellano tutti i log.

Questo è quanto.. sono sicuro che esista un metodo per ottenere ciò che cerco.

Kaya
06-07-2018, 11:32
Ok, la MetaTrader è un piattaforma di accesso ai mercati finanziari. Fai il login con qualsiasi broker tu abbia sottoscritto un contratto, entri e la piattaforma ti da i grafici che preleva dai server del broker con tutte le info relative. E' una piattaforma operativa ovvero ti permette anche di gestire il tuo conto e aprire posizioni, di entrare a mercato come si dice in gergo. Non è l'unica, ne esistono a migliaia, ma è una delle migliori in assoluto.

All'interno della piattaforma c'è anche MetaEditor che è appunto un editor in c++ con cui scrivere gli EA che altro non sono che "miniprogrammi" (o bot se preferite il termine) che eseguono dei calcoli in base alle impostazioni che tu, tramite l'editor, gli hai dato, restituendoti una serie di informazioni o addirittura entrando a mercato in maniera automatica (è un mercato miliardario a livello mondiale quindi non parliamo di cagatine). Attenzione che questi EA non diventano dei programmi .exe da usare in maniera autonoma. Si salvano in un formato proprietario e si fanno girare sempre all'interna della piattaforma.
Questi EA e la piattaforma fungono tranquillamente anche sui Windows Home però è scomodo tenere il pc di casa acceso tutto il giorno ecco perchè il Windows Server.

Ora, io non sono capace di programmare in c++ per questo mi faccio aiutare da un ragazzo che invece è bravissimo.
Da qui la necessità di avere il doppio accesso sul server con stesso utente e stessa sessione. Io devo poter accedere per assicurarmi che tutto funzioni correttamente mentre l'altro ragazzo deve poter accedere per, appunto, scrivere codice.

La storia dei log è una cosa in più che il ragazzo ha messo per capire cosa il nostro EA stà facendo e se ci sono errori andare a capire in quale parte di codice si trova l'errore sennò è un macello. Questi log vengono inviati alla piattaforma rendendoli visibili. Tuttavia non vengono salvati in maniera perenne, quindi ogni volta che la mt si riavvia si cancellano tutti i log.

Questo è quanto.. sono sicuro che esista un metodo per ottenere ciò che cerco.

Ok ora è più chiaro.
Il problema di fondo è "il programma non pemette di fare questo".
Quindi non puoi fare molto. Anzi non puoi fare proprio nulla, salvo sentire l'assistenza dell'applicativo e chiedere questo discorso dei log in "append".
Altra cosa è usare un qualcosa tipo teamviewer, ma in quel caso è una condivisione dello schermo quindi ci si "ruba" il mouse a vicenda.
Direi quindi che non c'è soluzione, non essendo un programma sviluppato per ambienti "virtuali"

Gnaffer
06-07-2018, 16:09
Per i log abbiamo risolto, abbiamo trovato un modo per salvarli su file txt quindi non si cancellano più. Rimane il problema dell'acceso multiplo.

Usiamo già teamviewer la sera, lui si collega al server e io lo seguo con tv. Comunque intanto andremo avanti a buttarci fuori a vicenda, non è il massimo ma almeno il server non riavvia la sessione e le piattaforme rimangono costantemente in esecuzione (che è la cosa prioritaria).

Intanto grazie ragazzi:)

supersqualo
18-07-2018, 18:56
Semplicemente crei uno script in VBS e lo inserisci nell'utilità di pianificazione, gli dai i privilegi di amministratore, lo imposti all'avvio del sistema e imponi che venga avviato senza che gli utenti si colleghino

Set objShell = CreateObject("WScript.Shell")
objShell.run "PERCORSODELPROGRAMMADAAVVIARE", 1, True
Set objShell = Nothing

Se lo scrivi così (con il parametro 1) ti si apre la finestra con il programma, con 0 non si apre alcuna finestra ma resta in background
Se invece di true scrivi false lo script resta avviato in background e non viene chiuso, ergo se hai bisogno che si apra una sola volta lascia True
:D
Inoltre invece di utilizzare 2 Account potreste utilizzarne 1 solo ed installare un VNC
Spero ti possa servire