Есть ли способ узнать на моем сервере Windows 2012, если клиент установил подписанное сообщение ?
Чистая сессия дает основные детали, но ничего не говорит о подписании.
C:\>net session \\a.b.c.d
User name Administrator
Computer a.b.c.d
Guest logon No
Client type
Sess time 00:08:02
Idle time 00:07:50
Share name Type # Opens
--------------------------------------
test Disk 0
The command completed successfully.
Есть ли Командлет Powershell или какой-либо административный инструмент или команду, которая предоставит такую информацию? Заранее спасибо.
Изменить 1: я также пробовал следующее. Get-SmbConnection должен выполняться на клиенте, чтобы найти Серверы, с которыми клиент установил соединения.
PS C:\Users\Administrator> Get-SmbConnection | Select-Object -Property *
ContinuouslyAvailable : False
Credential : domain\administrator
Dialect : 3.00
Encrypted : False
NumOpens : 3
ServerName : server1
ShareName : test
UserName : SERVER1\Administrator
PSComputerName :
CimClass : ROOT/Microsoft/Windows/SMB:MSFT_SmbConnection
CimInstanceProperties : {ContinuouslyAvailable, Credential, Dialect, Encrypted...}
CimSystemProperties : Microsoft.Management.Infrastructure.CimSystemProperties
На момент написания этой статьи единственный способ действительно узнать это наверняка - это наблюдать за сетевым подключением, которое согласовывается с помощью Wireshark или Network Monitor.
В настоящий момент ничто не предоставляет эти данные через API, класс WMI и т. Д.
В Get-SMBConnection
Командлет Powershell воля получить эту информацию в будущем, но не сегодня.
Командлет - это просто оболочка вокруг MSFT_SmbConnection
WMI класс.
Get-WmiObject -Namespace 'Root\Microsoft\Windows\SMB' MSFT_SmbConnection
Возвращает точно такую же информацию. Если ты пойдешь читать документация MSDN для этого класса WMI вы увидите, что в документации указан Signed
недвижимость в дополнение к Encrypted
недвижимость, которую вы видите сегодня.
class MSFT_SmbConnection
{
string ServerName;
string ShareName;
string UserName;
uint32 SmbInstance;
string Credential;
uint64 NumOpens;
string Dialect;
boolean ContinuouslyAvailable;
boolean Encrypted;
boolean EnableLoadBalanceScaleOut;
boolean Signed; // ^_^ *trollface*
};
Далее в документации говорится:
Подписано
Тип данных: логический
Тип доступа: только чтение
TBD. (Быть определенным)
Windows Server 2012 R2, Windows 8.1, Windows Server 2012, Windows 8: это свойство не поддерживается до Windows Server Technical Preview и Windows 10 Technical Preview.
Предварительный просмотр Windows 10 - это когда он появляется впервые. Вот и все.
В интересах Google я также изо всех сил пытался выяснить, действительно ли моя подпись SMB работает или нет. Клянусь, Get-SmbConnection не возвращал свойство Signed вчера, но сегодня, когда я запускаю (на моем компьютере с Windows 10 1903 x64 PSVersion 5.1.18362.145):
PS C:\WINDOWS\system32> Get-SmbConnection | fl *
SmbInstance : Default
ContinuouslyAvailable : False
Credential : DOMAIN\user
Dialect : 3.0.2
Encrypted : False
NumOpens : 1
Redirected : False
ServerName : server.domain
ShareName : share
Signed : False
UserName : DOMAIN\user
PSComputerName :
CimClass : ROOT/Microsoft/Windows/SMB:MSFT_SmbConnection
CimInstanceProperties : {ContinuouslyAvailable, Credential, Dialect, Encrypted...}
CimSystemProperties : Microsoft.Management.Infrastructure.CimSystemProperties
«Подписано» - это возвращаемое свойство, которое показывает True или False.
Однако на моем сервере 2012 R2 PSVersion 5.1.14409.1018 в настоящее время нет. У коллеги по Windows 10 1809 PS версия 5.1.17763.592 тоже есть.