問題タブ [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.

0 投票する
1 に答える
6789 参照

windows - ログオンID(LUID)からUserTokenを取得する(C ++)

私はWindowsセッションがどのように機能するかをよりよく理解しようとしているので、質問に奇妙な間違いがある場合は、私に知らせてください。

LsaEnumerateLogonSessions()は、システム内のすべてのログオンセッションを取得するために使用します。これで、ログオンを表すLUIDができました。正しく理解していれば、ログオンしたユーザー、またはSYSTEMのようなビルドユーザーを表します。

これで、ユーザーXがプロセスを開始すると、WindowsはそのプロセスにXを表すトークンを与えます。

(Windowsサービスで)LUIDからユーザーのトークンを取得する方法はありますか?プロセスHANDLEから取得できることはわかっていますが、それは私が望んでいることではありません。

0 投票する
1 に答える
914 参照

winapi - ユーザーが使用しているTSセッションIDをLUIDから取得する

リモートデスクトップを使用してドメイン上のXPコンピューターに接続しています(前回の再起動以降、ユーザーが接続されていないか、接続されていません)。使用しているアプリケーション(explorer.exeなど)がTSセッションID0に属していることがわかります。

同時に、実行LsaGetLogonSessionData()しているWindowsサービスの関数を使用して情報を取得しています。その関数から取得した情報によると、TSセッションIDは(たとえば)2であり、0ではありません

関数がTSセッション2にあることを通知した場合、WindowsサービスでログインがTSセッション0でexplorer.exeを使用していることをどのように確認できますか?!

これらのWindowsセッションが私を本当に混乱させたことを認めなければなりません!


質問を言い換えてみます。LUIDが使用しているTSセッションIDをどのように知ることができますか?

0 投票する
1 に答える
262 参照

networking - 複数の同時ユーザーが互いに干渉することなくサーバーにログインできるようにする最適なアプリケーションは何ですか?

私たちのオフィスにはサーバーがあり、6 人の従業員が 6 つの異なる都市に分散しています。これらの 6 人の従業員がインターネット経由で同時にサーバーにログインし、互いに邪魔することなく (ERP システムを開く、メールをチェックする、ファイルを削除する) さまざまなタスクを実行しようとするケースに直面しています。つまり、各従業員はそれぞれから独立して作業します。他の。

もちろん、すべてのファイアウォールや障害物を通過するために、インターネット経由でこれらの機能を提供するソフトウェアを好む.

TeamViewer のようないくつかのアプリケーションを見つけましたが、1 人のユーザーのみが完全に制御できます

0 投票する
6 に答える
3723 参照

delphi - リモート デスクトップ サービスを「サポート」するために、アプリケーションは何をする必要がありますか?

リモート デスクトップ サービス経由で実行する必要がある Delphi プログラムがあります。正常に動作しなくなるのに注意すべきことは何ですか?

0 投票する
2 に答える
1915 参照

c# - Windows Server 2008でコンソール(管理)セッションをプログラムで検出しますか?

私のアプリケーションはWindowsServer2008でサービスとして実行されています。アクティブなコンソールセッションを検出する方法を探しています。これは、コンソールまたは管理セッションとして開始されたRDPセッション( "mstsc / admin")のいずれかです。

コンソールセッションは「コンソール」と呼ばれますが、RDPセッションで迷子になります。Windows 2003では、コンソールセッションが常にID 0で実行されていたため、簡単でした。これはVistaから変更されたため、別の方法を探しています。

すでにWTSxxxWin32APIを確認しましたが、探しているものが見つかりません。

誰か助けてもらえますか?

0 投票する
1 に答える
517 参照

clickonce - ターミナル サービス WebApp の自動更新としての ClickOnce アプリ?

開始時に自動更新をチェックする clickonce アプリは、端末サービス Web アプリとしてそれ自体を自動更新しますか? 通常のデスクトップ アプリと同じように、自分自身をチェックして更新しますか?

0 投票する
1 に答える
1122 参照

c# - ターミナルサービス対応のアプリケーションは、どのようにしてユーザーのプライベートWindowsディレクトリを取得できますか?

GetWindowsDirectoryのドキュメントには次のように書かれています。

  • TS対応アプリケーションは、実際のWindowsディレクトリを取得します。
  • TSに対応していないアプリケーションは、現在のユーザーの「プライベート」Windowsディレクトリを取得します。

したがって、TS対応である必要があるC#クラスライブラリに取り組んでいます。このライブラリを使用するすべてのアプリがTS対応である必要はないためです。C#のデフォルトはTS対応です。

TS対応ではないレガシーアプリと通信するには、INIファイルをWindowsディレクトリにドロップする必要があります。これは通常のユーザーでは問題なく機能しますが、ターミナルサービスセッションでは機能しません。

ターミナルサービスの下:

  • レガシーアプリは、ユーザーの「プライベート」WindowsディレクトリにあるINIファイルを使用します。
  • C#ライブラリは、システムのWindowsディレクトリにあるINIファイルを使用します。

する必要がある:

  1. ターミナルサービスで実行しているときに検出します。SystemInformation.TerminalServerSessionフラグをチェックすることでこれを行うことができます。
  2. TS対応プロセスから、ユーザーの「プライベート」Windowsディレクトリを見つけます。これを行う方法を説明しているドキュメントが見つかりません。
0 投票する
1 に答える
737 参照

remote-desktop - RDPを介して.NETアプリケーションを共有/コラボレーションしますか?

誰かが、RDP /デスクトップ共有を介して単一のC#.net 3.5ベースのアプリケーションを共有する方法を示す例/ドキュメントを教えてもらえますか?

このブログ投稿を見つけましたが、ここからどこに行くべきかわかりません:

http://blogs.msdn.com/b/rds/archive/2007/03/08/windows-desktop-sharing-api.aspx

Windows 7で実行していますが、デスクトップ全体を共有したくありません。私が書いている特定のアプリケーションだけです。

0 投票する
3 に答える
1694 参照

winapi - WTSQuerySessionInformation が「アクセスが拒否されました」で失敗することがある

次の API 呼び出しを使用して、ターミナル サーバー セッションでリモート クライアントの名前を特定しています。

通常、アプリケーションがターミナル サーバー セッションで実行されていないbuffer場合、呼び出しは成功し (ret != 0)、単に null ポインターを返します。したがって、これは予想される動作であると考えました。

しかし、ある顧客のマシンでは、関数が失敗し始め (ret == 0)、GetLastError5: アクセスが拒否されました。(いつものように、顧客は自分のシステム構成はまったく変更されていないと主張しています。)

だから、私の質問は次のとおりです。

  • 非ターミナル サービス マシン (たとえば、「通常の」Windows 7 PC など) で WTSClientName をクエリすると、どのような動作が予想されますか?
  • このエラー コードが返される理由は何ですか? テスト マシンでは、ユーザーが管理者権限を持っていなくても、関数呼び出しは常に期待どおりに動作することに注意してください (成功し、バッファーが空になります)。

これが関連しているかどうかはわかりませんが、Web アプリケーション内から関数を呼び出すことで、この問題 (エラー 5) を再現できます。ただし、この場合はそうではありません (通常の Windows アプリケーションです)。

0 投票する
2 に答える
9979 参照

.net - ターミナルサーバーセッションからクライアント名を取得するための推奨される方法

ユーザーのターミナルサーバーセッションから基になるクライアントPC名を取得する必要があります。

私はそれが住んでいることを知っていますが、HKEY_CURRENT_USER\Volatile Environment\CLIENTNAMEそれを取得する別の(できればネイティブの.net)方法はありますか?