로컬 컴퓨터에서 최신 버전의 SMB 프로토콜 (SMB 2.1)을 지원하는 Windows 7을 실행하고 있습니다. 또한 원격 호스트가 있으며 해당 원격 호스트에 어떤 운영 체제 또는 SMB 지원 소프트웨어가 설치되어 있는지 모릅니다. 원격 호스트가 일부 버전의 SMB 프로토콜을 지원한다는 것만 알고 있습니다.
Windows 7 컴퓨터의 명령 프롬프트 (또는 PowerShell)에서 해당 원격 호스트가 지원하는 SMB 버전을 어떻게 알 수 있습니까?
편집 : 위의 Windows 7을 언급했지만이 질문이 많은 시스템 / 네트워크 관리자 또는 데스크탑 지원 담당자와 관련이 있다고 확신하므로 superuser.com 대신 여기에 질문을 게시하는 이유는 무엇입니까?
답변
가장 쉬운 방법은 WireShark 을 설치 하고 패킷을 캡처하는 것입니다. 패킷을 해독하여 프로토콜 버전을 표시해야합니다. 그들은 가지고 자신의 위키 SMBv2의 항목을 WireShark로 최신 버전의 디코딩한다 그래서는 패킷 캡처를 INT,.
답변
Windows 8 이상에서는 powerhsell 명령 Get-SmbConnection
을 사용하여 연결 당 사용되는 SMB 버전을 확인할 수 있습니다.
답변
원격 호스트의 SMB 버전을 결정하는 방법은 두 가지뿐입니다.
첫 번째 는 텔넷을 사용하여 배너를 잡는 것입니다. 그렇더라도 사용중인 항목이 다시 올 것이라는 보장은 없습니다. SMB 서버 중 하나에 성공적으로 연결할 수 있지만 유용한 배너 정보가 없습니다.
두 번째 는 네트워크 보안 스캐너를 사용하여 네트워크를 통해 시스템 을 지문 으로 인식하는 것 입니다. 어떤 버전의 SMB가 실행 중인지 확인하는 데 여전히 성공을 보장 할 수 없기 때문에 유용한 도구를 찾아야합니다. 예를 들어, 네트워크에서 nmap으로 빠른 스캔을 사용했는데 (여러 엔드 포인트에서 Microsoft SMB를 실행하고 있음을 알고 있음) 실행중인 SMB 버전에 대한 적절한 정보를 얻지 못했습니다.
답변
SMB 버전을 가져 오려면 다음과 같이하십시오.
- 관리자 권한으로 Powershell을 엽니 다. 아이콘을 마우스 오른쪽 버튼으로 클릭하고 “관리자로 열기”라고 말합니다.
- “cd \”를 사용하여 c : \로 이동 한 다음 “c :”로 이동하십시오.
-
이제 서로 10 초 이내에 2 개의 명령을 실행하거나 Windows가 포트를 사용하지 않는 것으로 닫습니다.
3a. “dir \ SERVERNAME \ C $”를 실행하십시오.
3b. “Get-SmbConnection”을 실행하면 “Dialect”열이 SMB의 버전입니다.
- 이 링크의 매트릭스를 확인하여 OS가 올바른 OS 버전에 해당하는지 확인하십시오. 그렇지 않으면 SMB를 업그레이드해야합니다.