問題タブ [terminal-services]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
windows - Windows ターミナル サーバーがインストール モードになっているかどうかを検出する方法
次のコマンドを使用して、Windows ターミナル サーバーがインストール モードかどうかを確認できます。
Windows API を使用してプログラムでこれを検出するにはどうすればよいですか?
localhost - Windowsターミナルサービスサーバー内のローカルホストとはどういう意味ですか?マシンまたはセッション?
現在、Windowsターミナルサービス環境内で「localhost」をリッスンするアプリケーションを作成するプロジェクトを調査しています。
現在、テスト環境にアクセスできませんが、この設計、特にマルチユーザーマシン内でのlocalhost /loopback127.0.0.1の意味を確認したいと思いました。
私のアプリケーションが127.0.0.1:40000をリッスンしているTCPソケットをバインドする場合、どのクライアントがこれにアクセスできますか?-マシン/サーバー上のすべてのユーザーのすべてのセッション内のクライアントに公開されますか?-それとも、個々のユーザー/セッションだけでしょうか?
私は後者を期待/推測しています。この場合、各セッションの各ユーザーは、127.0.0.1:40000でリスナーを実行している独自のアプリを開くことができますか?
この設計の問題について助けてくれてありがとう。
windows - Windows プラットフォームのターミナル サーバー/ターミナル サービスとは何ですか?
私は現在、WTSEnumerateSessions
たとえば、いくつかの Windows API の MSDN の説明を読んでいます。
... ターミナル サーバー上で ... 使用されます
と
... ターミナル サービスを実行する必要があります
しかし、その「端末」が何であるか、そしてそれが実際に実行されていることをどのように確認できるかについての説明はないようです。
すべての Windows XP SP3、Vista、および Windows 7 マシンでこれらのターミナル サービスが実行されていることを確認できますか?
windows - クライアント プリンターを Windows ターミナル サーバーにマッピングするための API
ユーザーが RDS クライアントを使用するときに、ローカル マシンで使用可能なプリンターをターミナル サーバーにマップするユーティリティを作成しています。http://support.microsoft.com/kb/312135を見つけたので、手動で行うことができますが、API を使用して開始したいだけです。どんな助けでも大歓迎です。
winapi - WindowsXPで時間内にロードされないWindowsセッションAPIとそれをバイパスする方法
現在のすべてのユーザーセッションを列挙し、それらのセッションIDを取得し、後でどのプロセスがどのセッションで実行されているかを確認する必要があるサービスアプリケーションを作成しています。WTSEnumerateSessions()
APIを使用しているだけでなくWTSQuerySessionInformation()
、セッション固有の情報を取得しています。残念ながら、これらのWTSAPIは非常に信頼性がありません。
ユーザーの高速切り替えがオフになっているWindowsXPマシン、またはドメインに参加しているXPマシンでは、これらのAPIはすぐには利用できません。RPC_S_INVALID_BINDING
Windows XPが起動してサービスが開始されてから数分間、または1702のエラーコードで失敗する可能性があります。
そのような制限を処理する方法を説明する公式のドキュメントは見つかりませんでした。検索エンジンを介して利用できるのは、ターミナルサービスサービスがロードされるのを待つことです。これはもちろん可能ですが、実装するのに大きな苦痛になります。
だから、誰かが次のように答えることができれば私はそれをいただければ幸いです:
- それらのWTSのものよりも信頼性の高い、セッション固有のデータを処理するための代替APIはありますか?ほとんどの場合、マシン上の現在のセッションを確認し、ユーザー名とセッションステータスを取得する必要があります。また、各プロセスのセッションIDを使用してプロセスを列挙します。(GINAまたはログイン画面は、ターミナルサービスがロードされる前に、すべての方法で実行できるため、これが可能であることを私は知っています。)
- Windows Vista / Windows 7マシンのいずれかのバージョンでサービスが起動する前に、 WTSクラスのAPI(、、など)が読み込まれることを100%保証してい
WTSEnumerateSessions()
ますWTSQuerySessionInformation()
かWTSEnumerateProcesses()
?
非常に重要な前および規定に注意してください。
delphi - Windows7上のDelphi2007でターミナルサービスセッションを列挙する
QWINSTA.EXEを使用して、ネットワーク上のターミナルサーバーからセッション/ユーザーリストを取得しています(私のコンピューターはWindows 7 Pro、TSはWindows Server 2003です)。この関数の出力をテキストファイルにパイプし、テキストファイルを処理して必要な情報を取得します。もっと良い方法があれば、許して、私の長い曲がりくねったポストをスキップして、正しい方向に私を向けてください。
私の問題は、最初に昇格された特権を持たずにプログラムを実行することさえできShellExecute()
ないことです。ShellExecuteEx()
昇格されていないコマンドプロンプトに移動すると、ディレクトリリストにEXEが表示されません(非表示の属性も表示されません)。「管理者として実行」コマンドプロンプトを使用すると、問題なく表示/使用できます。いずれにしても、Windowsエクスプローラーから見ることができます。
少し調べてみると、このgemが見つかりましたRunFileAsAdminWait()
。QWINSTA.EXEを直接呼び出そうとすると機能しません(エラーメッセージで失敗します:) System Error. Code: 2. The system cannot find the file specified.
。すべてをバッチファイルにまとめてバッチファイルで使用すると、正常にRunFileAsAdminWait()
機能しているようです。
私は知っていますが、使ったことがありませんWTSEnumerateSessions()
。リンクしたばかりのMSDNリンク以外に多くの情報を見つけることができませんでした。DelphiのAPIを使用するための参照コードのまともなチャンクを知っている人はいますか?Delphi2007のWindowsユニットでは使用できません。
質問:
アクセスするために管理者権限を必要とするEXEを実行する別の/より良い方法はありますか?それとも、ここで何が起こっているのでしょうか?
ターミナルサーバーでアクティブなセッションのリストを取得するためのより良い方法はありますか?特に、昇格された特権を必要としないものはありますか?
この方法を使用して行き詰まっている場合、私はそれを「正しい方法」で行っていますか?
あなたが提供できるどんな助けにも感謝します!
c# - 誤ったセッションログイン時間を報告するCassiaTSライブラリ(時々...)
Cassia Terminal Serviceライブラリに精通している人はいますか?ログイン時間に問題があります。
一部のPCでは、時間が本来よりも約7分遅れています。同様のバグがあることを読みましたが、修正されました。
たとえば、LocalSystemで実行されているサービスがあり12:07:10
ますが、ユーザーがにログインしていることはわかっています12:00:00
。イベントログを見て、時間を確認します。ターミナルサーバーマネージャーとHyenaも正しいログイン時間を表示します。
同じライブラリとメソッドを使用してそのマシンにリモートでクエリを実行すると、正しいログイン時間が取得されます。
c++ - ターミナルサーバーでの生データの印刷
シナリオは次のとおりです。
- ターミナルサーバーを備えたWindowsServer2008を使用しています(ドメインコントローラーなし、ドメインへの参加なし)
- Windows XP SP3が更新されたクライアントマシンがあります(.NET 3.0SP1および.NET4.0)
- Embarcadero C ++ Builder(BCB6)を使用しています
- チケットプリンター(サーマルプリンター、POSプリンター、エプソン、ゼブラなど)を持っています
ターミナルサーバーに接続すると、プリンターは正常に動作します。テストページの印刷をテストしました。
ソフトウェアを使用してローカルコンピューターのターミナルサーバーに生データを送信すると、次のエラーが発生します。
私はこのサポートページからのアドバイスに従いましたが、運がありませんでした。
以前はLPT1に直接印刷していましたが、Windows Server 2008ではこれを機能させるのが難しくなっているため、この種のプリンターへの印刷方法を変更する必要があります。
これが私が使用しているコードです。ローカルでテストしましたが、正常に動作しますが、ターミナルサーバーでは動作しません。
このコードは、Microsoftのサポートの例からコピーしました。また、「RAW」を「TEXT」に変更しようとしましたが、同じエラーが発生します。
GDIを使用して印刷するため、このコードを試しました。
これは私がエンバカデロフォーラムで見つけた例です。
TsWpfWrp.exeも確認しました。サーバー内のものに置き換えてみましたが、何も実行されず、エラーが送信されず、データも送信されません。
これを行う別の方法はありますか?コードに何か問題がありますか?
私はどんな助けや洞察にも感謝します。
windows - 現在のセッションで使用されている入力デバイス (キーボード、マウス) を無効にする
入力デバイス上で動作するフィルター ドライバーを開発しています。特に、私は自分の開発マシンでテストしています (もちろん、これが悪い考えであることはわかっています)。
Windows XP では、フィルタ ドライバをリロードする必要があるときはいつでも、devcon を介して関連するデバイスを無効/有効にするバッチ ファイルを実行するだけで、フィルタ ドライバがアンロードおよびリロードされます。
ただし、Windows 7 では、セッションが使用している入力デバイスを無効にすることに対して構築された特定の対策があるようです。このオプションはデバイス マネージャーで使用できなくなり、devcon でさえ機能しなくなります。これは、カーネル デバッグ プリント「このセッションで有効になっていない物理デバイスを無効にしようとしています」とともに、リモート デスクトップ セッションから機能します。(これは、明示的な何かが私にこれを許可していることを示唆しています)。
Windows 7 のこの機能を無効にする方法はありますか? あるいは、関連のないセッションから無効化と有効化のバッチ ファイルを実行するために提供できる回避策はありますか?
session - CitrixXenDesktopセッションの検出
アプリケーションがローカルではなくXenDesktopセッションで実行されているかどうかを確認しようとしています。これが私がこれまでに見つけたものです:
現在、HelgeKleinが「アプリがCitrixまたはターミナルサービスで実行されているかどうかを判断するためのAPI」で説明したソリューションと同様のCitrixXenAppセッションを検出するコードがあります。
残念ながら、XenDesktop環境でのそのソリューションは、ローカルコンソールセッションを意味するaWTSClientProtocolType
を返しています。0
同じ質問に答えて、JoshWeatherlyはsessionname環境変数のチェックについて言及しました。
ただし、XenDesktop環境でのクイックコンソールチェックでecho %sessionname%
は、「コンソール」が返されます。
「Detectcitrix「applicationmode」?」からJohn Siblyは、リモートセッション(特にCitrixではない)を検出するためのソリューションを提案しました。
GetSystemMetrics(SM_REMOTESESSION)
ただし、0を返します。これは、ローカルセッションであることも意味します。
XenDesktopセッションであることを検出する方法を知っている人はいますか?あなたが見ることができる限り、私の試みはすべて、セッションがローカルコンソールセッションであるということを返しています。
XenDesktop Express 5.5を使用しており、CitrixReceiverWebプラグインを使用してデスクトップにアクセスしています。