本文目录导读:

- Windows 系统:断开“Internet 连接共享”(ICS)
- Windows 系统:断开“文件或打印机共享”
- macOS 系统:断开文件共享或屏幕共享
- Linux 系统:断开 Samba 共享或 NFS
- 高级用法:定时自动断开
- 重要提示
是的,脚本完全可以自动断开网络共享。
具体实现方式取决于你使用的操作系统(Windows、macOS 或 Linux)以及你所说的“网络共享”是指什么(Windows 的“Internet 连接共享”、文件共享、打印机共享,还是网络驱动器映射)。
以下是不同场景下脚本断开连接的方案:
Windows 系统:断开“Internet 连接共享”(ICS)
如果你在 Windows 上开启了“移动热点”或“网络共享”,可以通过 PowerShell 脚本关闭。
脚本示例(禁用热点/ICS):
# 方法1:禁用移动热点(Windows 10/11) Set-VMNetworkAdapter -ManagementOS -Name "Wi-Fi" -ComputerName . -Verbose # 方法2:通过注册表或 netsh 禁用 ICS # 停止共享服务(需要管理员权限) Stop-Service -Name "SharedAccess" -Force Set-Service -Name "SharedAccess" -StartupType Disabled # 或通过 netsh 命令(推荐) netsh wlan set hostednetwork mode=disallow
注意: 需要以管理员身份运行该脚本。
Windows 系统:断开“文件或打印机共享”
你可以通过 net share 命令或 PowerShell 删除所有共享文件夹。
批处理脚本示例:
@echo off REM 删除所有匿名共享(需要管理员权限) net share C$ /delete /y net share ADMIN$ /delete /y REM 删除你手动创建的共享文件夹(SharedFolder) net share MySharedFolder /delete /y REM 或者直接禁用“Microsoft 网络的文件和打印机共享” netsh advfirewall firewall set rule group="文件和打印机共享" new enable=No
PowerShell 脚本示例:
# 删除所有非默认共享
Get-SmbShare | Where-Object { $_.Special -eq $false } | Remove-SmbShare -Force
# 禁用 SMB 服务(彻底断开)
Stop-Service -Name "Server" -Force
Set-Service -Name "Server" -StartupType Disabled
macOS 系统:断开文件共享或屏幕共享
使用 launchctl 或系统偏好设置的命令行工具。
脚本示例:
#!/bin/bash # 停止 Apple 文件共享 sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.AppleFileServer.plist # 停止屏幕共享 sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.screensharing.plist # 停止互联网共享(NAT) sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.InternetSharing.plist
Linux 系统:断开 Samba 共享或 NFS
Samba(文件和打印机共享)脚本:
#!/bin/bash # 停止并禁用 Samba 服务 sudo systemctl stop smbd sudo systemctl disable smbd # 或直接关闭所有共享目录 sudo smbcontrol all close-share
NFS 共享脚本:
#!/bin/bash # 停止 NFS 服务 sudo systemctl stop nfs-kernel-server sudo systemctl disable nfs-kernel-server # 卸载所有导出 sudo exportfs -ua
高级用法:定时自动断开
你可以通过操作系统自带的计划任务(如 Windows 任务计划程序、Linux crontab 或 macOS launchd)来触发脚本。
Windows 示例(每小时执行一次):
schtasks /create /tn "DisableNetworkShare" /tr "powershell.exe -File C:\scripts\disable_share.ps1" /sc hourly /ru SYSTEM
Linux 示例(每天凌晨 2 点断开):
0 2 * * * /usr/local/bin/disable_shares.sh
重要提示
- 权限问题: 修改网络共享设置(特别是系统级共享、防火墙规则)通常需要 管理员(root)权限。
- 持久性: 如果只想临时断开(下次重启自动恢复),建议仅停止服务而不是禁用服务;如果需要长期关闭,建议使用
disable命令。 - 安全考虑: 脚本执行后,请确保脚本文件本身被妥善保护(如设置只读权限),防止被恶意修改。
如果你能告诉我具体是哪种共享(Windows 的移动热点、文件共享,还是 Linux 的 Samba),以及你希望脚本在什么条件下执行(手动触发、定时、或检测到某种事件后自动触发),我可以提供更精准的代码示例。