使用powershell搜索smb1的网络设备

使用powershell搜索smb1的网络设备,powershell,smb,Powershell,Smb,将告诉我运行它的计算机是否正在运行smbv1 是否可以对其进行修改以在远程机器上运行?我有大约1000台服务器、6000台工作站和10000多台物联网/网络设备(尽管它们没有运行windows) 我知道包捕获是一种典型的方法,但是我并没有一个中心瓶颈来在我的环境中放置包分析器 我用nmap+powershell解决了这个问题 Get-WindowsOptionalFeature –Online –FeatureName SMB1Protocol 我制作了一个文件夹(2019年9月),其中包含一

将告诉我运行它的计算机是否正在运行smbv1

是否可以对其进行修改以在远程机器上运行?我有大约1000台服务器、6000台工作站和10000多台物联网/网络设备(尽管它们没有运行windows)


我知道包捕获是一种典型的方法,但是我并没有一个中心瓶颈来在我的环境中放置包分析器

我用nmap+powershell解决了这个问题

Get-WindowsOptionalFeature –Online –FeatureName SMB1Protocol
我制作了一个文件夹(2019年9月),其中包含一组以我的子网命名的文件夹:

10.0.0.0_23

10.10.10.0_24

10.100.10.0_24

等等。我的组织中大约有120个本地子网

然后我将
\uu
更改为
/
(Windows文件夹名称不能有
/

现在我有了一个CIDR符号,可以在nmap中使用

Nmap有一个脚本来分析SMB的目标,它会告诉我它运行的是什么版本

整个子网的输出进入其各自的文件夹,并移动到下一个文件夹


我将编写另一个脚本来解析所有结果,并仅显示已启用SMB1的目标。

查看使用
Invoke命令对系统列表运行scriptblock。如果在
-ComputerName
参数中为I-C提供计算机列表,它将在每个系统上并行远程运行scriptblock。[咧嘴笑]
$NmapFolder = Get-ChildItem -Path "U:\nmap reports\Nmap Subnet 
Scans\September2019" -Recurse -Directory -Force -ErrorAction SilentlyContinue

$data = ForEach ($item in $NmapFolder){
$Subnet = $item.Name.replace('_','/')
write-host "scanning"$Subnet". Please wait..."
nmap -p 445 --script smb-protocols -oN "U:\\nmap reports\\Nmap Subnet Scans\\September2019\\$item\\SMB_results.nmap" $Subnet
write-host "Done, report written for"$Subnet". Report has been written to: U:\\nmap reports\\Nmap Subnet Scans\\September2019\\"$item"\\SMB_results.nmap"
}