web-dev-qa-db-ja.com

SMBクライアントが署名済みのSMB Windows Server 2012からの通信を確立したかどうかを確認する方法は?

クライアントが 署名付き通信 を確立した場合、私のWindows 2012 Serverから検索する方法はありますか?

ネットセッション は基本的な詳細を提供しますが、署名については何も述べません。

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
4
pragadheesh

これを書いている時点で、これを本当に確実に知る唯一の方法は、Wiresharkまたはネットワークモニターを通じてネゴシエートされているネットワーク接続を監視することです。

現時点では、API、WMIクラスなどを通じてこのデータを公開するものはありません。

Get-SMBConnection Powershellコマンドレットwill将来この情報を入手できますが、今日は入手できません。

コマンドレットは、MSFT_SmbConnection WMIクラスの単なるラッパーです。

Get-WmiObject -Namespace 'Root\Microsoft\Windows\SMB' MSFT_SmbConnection

まったく同じ情報を返します。そのWMIクラスの MSDNドキュメント を読むと、ドキュメントには、今日見られる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*
};

その後、ドキュメントは次のように述べています:

署名済み

データ型:ブール

アクセスタイプ:読み取り専用

未定。 (決断される)

Windows Server 2012 R2、Windows 8.1、Windows Server 2012、Windows 8:このプロパティは、Windows Server Technical PreviewおよびWindows 10 Technical Previewより前ではサポートされていません。

Windows 10プレビューは、最初に表示されたときです。だからあなたはそれを持っています。

3
Ryan Ries

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

'Signed'は返されるプロパティで、TrueまたはFalseを示します。

ただし、私のサーバー2012 R2では、PSVersion 5.1.14409.1018は現在サポートされていません。 Windows 10 1809 PSVersion 5.1.17763.592の同僚にもそれがあります。

1
TheManInOz