क्या आप स्थानीय मशीन में वापस पहुंच सकते हैं और अपने दूरस्थ सत्र से मापदंडों के साथ एक आवेदन निष्पादित कर सकते हैं?


0

मैं एक प्रोग्राम लिख रहा हूं जो सर्वर से क्लाइंट मशीन तक रिमोटएप के रूप में उपयोग किया जाता है।

मुझे पता है कि System.Windows.Forms.SystemInformation.TerminalServerSessionमैं यह निर्धारित कर सकता हूं कि क्या वर्तमान सत्र स्थानीय सत्र या रिमोटएप निष्पादन से दूरस्थ सत्र है।

क्या मेरे लिए एक तरीका है, यदि टर्मिनल सर्वर सत्र सही है (जब उपयोगकर्ता दूरस्थ रूप से ऐप चला रहा है), एमएस वर्ड जैसे एप्लिकेशन को निष्पादित करने के लिए स्थानीय मशीन को बताने के लिए? अगर यह मदद की जा सकती है तो मैं प्लग-इन या पेसेक के उपयोग के बिना, इसे मूल रूप से करना चाहूंगा।



@STTR प्रासंगिकता?
बॉब।

जवाबों:


1

यह बताता है कि उपयोगकर्ता सर्वर से कितने दूरस्थ हैं, लेकिन यह मान लेते हैं कि नेटवर्क या वीपीएन के अंत में वे सभी एक कार्यालय में हैं।

मैं डॉटनेट ऐप बनाता हूँ जो एक केंद्रीय SQL सर्वर से जुड़ता है और आपके पीसी नाम के साथ एक सरल रिकॉर्ड के लिए प्रत्येक 250ms को स्कैन करता है। रिकॉर्ड में दूसरा क्षेत्र चलाने का कार्यक्रम है।

इसका मतलब यह है कि एक सर्वर आधारित ऐप DB को प्रत्येक टाई को लिख सकता है जो स्थानीय रूप से एक प्रोग्राम खोलने के लिए चाहता है। 250ms के भीतर स्थानीय ऐप रिकॉर्ड प्राप्त करेगा, ऐप लॉन्च करेगा और रिकॉर्ड हटा देगा।


0

आपके पास जटिलता, विश्वसनीयता, और परिनियोजन के विभिन्न स्तरों के साथ 4 विकल्प हैं।

1) PSEXEC। गंभीरता से, बहुत से लोग इस उद्देश्य के लिए पेक्टेक का उपयोग करते हैं, और अधिकांश समय काम करते हैं। अब तक का सबसे सरल उपाय। उपयोग -i तो यह डेस्कटॉप के साथ बातचीत कर सकता है।

2) डब्ल्यूएमआई। आप क्लाइंट ऐप को निष्पादित करने के लिए .net या VBScript कोड लिख सकते हैं। इसकी बस पटकथा के रूप में पटकथा के रूप में, लेकिन पूरी तरह से देशी है। मुझे पहले WMI के साथ विश्वसनीयता की समस्या है, लेकिन वे डोमेन विस्तृत स्वचालित ऑप्स थे, और बहुत से मुद्दे निष्क्रिय कार्यस्थानों पर बिजली प्रबंधन के लिए दिखाई दिए। http://www.codeproject.com/Articles/31113/Create-a-Remote-Process-using-WMI-in-C

3) विंडोज कार्य अनुसूचक। सर्वर से उपयोगकर्ता सत्र में क्लाइंट पर निष्पादित करने के लिए एक कार्य शेड्यूल करता है। अभी भी पटकथा, चलती भागों के बहुत सारे के साथ। http://technet.microsoft.com/en-us/library/cc772785%28v=ws.10%29.aspx

4) स्थानीय पीसी के लिए एक विंडोज़ नेटवर्क सेवा बनाएं, और सिग्नल पर, उपयोगकर्ता सत्र के तहत कार्य लॉन्च करें। इसे पूरा करने के लिए आपको कार्य शेड्यूलर का उपयोग करना पड़ सकता है। देव और परीक्षण के लिए बहुत सारे काम, तैनाती के लिए कठिन, बहुत सारे हिलते हुए भाग और स्थानों में अभी भी स्क्रिप्टी, लेकिन यह संभवतः माइक्रोस्पॉट का जवाब होगा, क्योंकि यह प्रक्रिया उन्नयन के लिए उनके मार्गदर्शन को सही ढंग से लागू करता है।


तो PSEXEC के साथ, मैं रिमोट मशीन से क्लाइंट मशीन से क्लाइंट मशीन से एक एप्लिकेशन को निष्पादित करने के लिए रीमोट कर रहा हूं?
बॉब।

हाँ। ज्यादा या कम। RemoteApp का वास्तविक निष्पादन सर्वर पर हो रहा है, यही कारण है कि आप सिर्फ एक Process.Start (पथ) नहीं कर सकते हैं; winword प्रक्रिया सर्वर पर शुरू होगी। इसलिए यह कहना अधिक सटीक है कि क्लाइंट रिमोट ऐप का आउटपुट पाने के लिए सर्वर से कनेक्ट हो रहा है, और सर्वर स्थानीय को चलाने के लिए क्लाइंट से कनेक्ट हो रहा है। PSexec को सर्वर पर रखा जाएगा, जहाँ पर रीमोटेप इसे कॉल कर सकता है।
फ्रैंक थॉमस

मैं उम्मीद कर रहा था कि ऐसा करने के लिए मैं C # में पर्यावरण चर का उपयोग कर सकता हूं, क्योंकि PSEXEC का उपयोग करने का मतलब होगा कि ग्राहक को अपने सर्वर में जोड़े जाने वाले अधिक सामान को अधिकृत करने की आवश्यकता होगी।
बॉब।

इसका पर्यावरण के बारे में प्रति सेगमेंट नहीं है, हालांकि मुझे संदेह है कि रिमोटऐप के वातावरण से पथ चर सर्वर-साइड पथ पर हल हो जाएंगे। इसके अलावा अगर आपको क्लाइंट पर रास्ता मिल गया है, अगर रीमोटेप प्रक्रिया ने इसे निष्पादित किया है, तो यह क्लाइंट पर नहीं बल्कि सर्वर पर चल रहा होगा। बस बिन निर्देशिका में एक निर्भरता के रूप में psexec छोड़ें, या कार्यकुशल / wmi विधियों को देखें।
फ्रैंक थॉमस
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.