Я пытаюсь написать сценарий для регистрации IP-адреса клиента Windows, с которого пользователь инициировал удаленный рабочий стол для входа в Windows Server. Как захватить IP-адрес клиента на сервере?Как получить IP-адрес клиента удаленного рабочего стола?
5
A
ответ
5
Итак, вы игнорируете прокси ...
- с использованием среды вар: CLIENTNAME в домене вы можете разрешить его обратно в IP
без контроллера домена:
- с помощью WMI сценарий, который вы можете получить в журнале событий, источник: безопасность, поиск категории Вход/Выход, где username = переменная среды USERNAME
1
Если вы используете PowerShell или язык .NET, эта версия поддерживает Cassia library - просто возьмите последнюю сборку из build server (войдите как гость и используйте ссылку артефактов). Для того, чтобы напечатать удаленные адреса всех сессий на локальном сервере, вы можете использовать что-то вроде следующего:
ITerminalServicesManager manager = new TerminalServicesManager();
foreach (ITerminalServicesSession session in manager.GetLocalServer().GetSessions())
{
IPEndPoint ipEndPoint = session.RemoteEndPoint as IPEndPoint;
if (ipEndPoint != null)
{
Console.WriteLine(ipEndPoint.Address);
}
}
1
Если вы хотите использовать «чистый» Powershell 2.0:
$Wtsapi32 = @'
using System;
using System.Text;
using System.Runtime.InteropServices;
namespace Wtsapi32 {
public enum WTS_INFO_CLASS
{
WTSInitialProgram,
WTSApplicationName,
WTSWorkingDirectory,
WTSOEMId,
WTSSessionId,
WTSUserName,
WTSWinStationName,
WTSDomainName,
WTSConnectState,
WTSClientBuildNumber,
WTSClientName,
WTSClientDirectory,
WTSClientProductId,
WTSClientHardwareId,
WTSClientAddress,
WTSClientDisplay,
WTSClientProtocolType
};
[StructLayout(LayoutKind.Sequential)]
public struct WTS_CLIENT_ADDRESS
{
public uint AddressFamily;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 20)]
public byte[] Address;
}
public class PS {
public const IntPtr WTS_CURRENT_SERVER_HANDLE = IntPtr.Zero;
public const int WTS_CURRENT_SESSION = -1;
[DllImport("wtsapi32.dll", EntryPoint="WTSQuerySessionInformation")]
public static extern bool WTSQuerySessionInformation(
System.IntPtr hServer,
int sessionId,
WTS_INFO_CLASS wtsInfoClass,
out System.IntPtr ppBuffer,
out uint pBytesReturned);
[DllImport("wtsapi32.dll", EntryPoint="WTSFreeMemory")]
public static extern void WTSFreeMemory(
IntPtr memory);
}
}
'@
Add-Type -TypeDefinition $Wtsapi32
Смежные вопросы
- 1. Java удаленного рабочего стола
- 2. библиотека для удаленного рабочего стола
- 3. Веб-клиент удаленного рабочего стола
- 4. WinWait внутри удаленного рабочего стола
- 5. Включение удаленного рабочего стола Azure
- 6. Администрирование удаленного рабочего стола Java
- 7. VNC-просмотрщик не подключается после обновления клиента удаленного рабочего стола
- 8. Отключить сеанс удаленного рабочего стола программно
- 9. Проект удаленного рабочего стола в C
- 10. Создать процесс на сеансе удаленного рабочего стола?
- 11. Аутентификация имени пользователя для удаленного рабочего стола
- 12. Обнаружение источника подключения удаленного рабочего стола
- 13. Запуск удаленного рабочего стола из приложения Silverlight
- 14. Определить версию протокола удаленного рабочего стола программно?
- 15. Плагин Mozilla для протокола удаленного рабочего стола
- 16. Режим Unity для удаленного рабочего стола
- 17. WPF Child Window - сеанс удаленного рабочего стола
- 18. Захват скриншотов минимизированного удаленного рабочего стола
- 19. Какой новый способ для удаленного рабочего стола
- 20. Как получить дескриптор рабочего стола?
- 21. Пользовательский эффект WPF исчезает при использовании удаленного рабочего стола
- 22. Как определить узел сеанса удаленного рабочего стола с помощью реестра?
- 23. Как узнать настройки качества изображения сеанса удаленного рабочего стола?
- 24. Как я могу изменить сертификат удаленного рабочего стола?
- 25. Как установить подключение удаленного рабочего стола к iPad?
- 26. Как закрыть окно удаленного рабочего стола с помощью python
- 27. Как предотвратить блокирование сервера после сеанса удаленного рабочего стола
- 28. Автоматическое обновление приложения Winform, используемого поверх удаленного рабочего стола
- 29. Получить текущее изображение рабочего стола
- 30. C# Обновление рабочего стола рабочего стола
насчет нескольких клиентов пришли с того же прокси-сервера? – Dewfy
Давайте просто предположим, что нет прокси ;-) – BlueGene
Из любопытства, как вы выполняете свой скрипт? – chaz