Kullanıcının Windows Server'a giriş yapması için Uzak Masaüstü'nü başlattığı Windows istemcisinin IP adresini günlüğe kaydetmek için bir komut dosyası yazmaya çalışıyorum. İstemcinin sunucudaki IP adresi nasıl alınır?Uzak Masaüstü İstemcisinin IP Adresi Nasıl Alınır?
5
A
cevap
5
Yani, çevre var kullanarak
- ... vekil görmezden:
- WMI kullanarak: etki alanındaki CLIENTNAME Etki alanı denetleyicisi olmadan IP
geri çözebilirsiniz senaryo logosunu bulabilirsin, kaynak: Güvenlik, kategori için bak Logon/Logonun nerede olduğu kullanıcı adı = ortam değişkeni USERNAME
1
PowerShell veya .NET dili kullanıyorsanız, Cassia library'un gövde sürümü bunu desteklemektedir - en son sürümü build server'dan alın (konuk olarak oturum açın ve artifact bağlantılarını kullanın). Yerel sunucu üzerindeki tüm oturumların uzaktan adreslerini yazdırmak için, böyle bir şey kullanıyor olabilir şunlardır:
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
Eğer PowerShell 2.0 "saf" kullanmak istiyorsanız:
$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
birden çok müşteri hakkında ne geldi aynı proxy sunucusundan? – Dewfy
Sadece proxy olmadığını kabul edelim ;-) – BlueGene
Merak etme, senaryonuzu nasıl yürütüyorsun? – chaz