এমনকি প্রশ্নটি খুব পুরনো, কুইনস্টা / ক্যোয়ারী / টিএসডিসকন ছাড়া সমস্ত সংস্করণের খুব কমই সমাধান হতে পারে, যেমন উইন্ডোজের সমস্ত হোম সংস্করণ।
তবে একটি অধিবেশন সংযোগ বিচ্ছিন্ন করার জন্য একটি সহজ পাওয়ার শেল সংস্করণ রয়েছে:
$code = @'
[DllImport("wtsapi32.dll")]
static extern IntPtr WTSOpenServer([MarshalAs(UnmanagedType.LPStr)] String pServerName);
[DllImport("wtsapi32.dll")]
static extern void WTSCloseServer(IntPtr hServer);
[DllImport("Wtsapi32.dll")]
static extern bool WTSDisconnectSession(System.IntPtr hServer, int SessionId, bool bWait);
public static void DisconnectSession (String ServerName, int SessionId)
{
IntPtr serverHandle = WTSOpenServer(ServerName);
WTSDisconnectSession(serverHandle, SessionId, true);
WTSCloseServer(serverHandle);
}
'@
$tstType=Add-Type -name Test -MemberDefinition $code -PassThru
#$tstType::DisconnectSession("localhost", 2)
একটি সেশন আইডি যেমন পাওয়া যাবে getProcesss
। একটি সেশন ব্যবহার সংযোগ বিচ্ছিন্ন করতে (লগঅফ নয়!) $tstType::DisconnectSession("localhost", 2)
।