@echo off
chcp 65001 >nul
title SMB Share Setup Tool
color 0A

echo ============================================
echo       SMB Network Share Setup Tool
echo ============================================
echo.

:: Check for admin privileges
net session >nul 2>&1
if %errorLevel% neq 0 (
    echo [ERROR] Please run as Administrator!
    echo Right-click this file and select "Run as administrator"
    pause
    exit /b 1
)

echo [INFO] Running with administrator privileges...
echo.

:: Settings
set "FOLDER=C:\Share"
set "USER=sf"
set "PASS=123456"
set "SHARENAME=MyShare"

:: Step 1: Create shared folder
echo [1/6] Creating shared folder: %FOLDER%
if not exist "%FOLDER%" (
    mkdir "%FOLDER%"
    echo       Folder created successfully.
) else (
    echo       Folder already exists.
)
echo.

:: Step 2: Enable SMBDirect feature
echo [2/6] Enabling SMBDirect feature...
powershell -Command "Enable-WindowsOptionalFeature -Online -FeatureName SMBDirect -All -NoRestart" >nul 2>&1
echo       SMBDirect enabled.
echo.

:: Step 3: Create user
echo [3/6] Creating user: %USER%
net user %USER% >nul 2>&1
if %errorLevel% neq 0 (
    net user %USER% %PASS% /add >nul 2>&1
    net localgroup Users %USER% /add >nul 2>&1
    echo       User created successfully.
) else (
    echo       User already exists.
)
echo.

:: Step 4: Set password never expires
echo [4/6] Setting password to never expire...
wmic useraccount where "name='%USER%'" set PasswordExpires=FALSE >nul 2>&1
echo       Password set to never expire.
echo.

:: Step 5: Create SMB share
echo [5/6] Creating SMB share: %SHARENAME%
net share %SHARENAME% /delete >nul 2>&1
net share %SHARENAME%=%FOLDER% /grant:%USER%,full >nul 2>&1
echo       SMB share created successfully.
echo.

:: Step 6: Set NTFS permissions
echo [6/6] Setting NTFS permissions...
icacls "%FOLDER%" /grant "%USER%:(OI)(CI)F" /T >nul 2>&1
echo       Permissions set successfully.
echo.

:: Step 7: Enable firewall rule
echo [EXTRA] Enabling File and Printer Sharing in firewall...
netsh advfirewall firewall set rule group="File and Printer Sharing" new enable=Yes >nul 2>&1
netsh advfirewall firewall set rule group="文件和打印机共享" new enable=Yes >nul 2>&1
echo       Firewall rules enabled.
echo.

:: Done
echo ============================================
echo            SETUP COMPLETED!
echo ============================================
echo.
echo   Shared Folder : %FOLDER%
echo   Share Name    : %SHARENAME%
echo   Username      : %USER%
echo   Password      : %PASS%
echo.
echo   Access Path   : \\%COMPUTERNAME%\%SHARENAME%
echo.
echo   From other devices, use:
echo   \\%COMPUTERNAME%\%SHARENAME%
echo   or
for /f "tokens=2 delims=:" %%a in ('ipconfig ^| findstr /c:"IPv4"') do (
    set IP=%%a
    goto :showip
)
:showip
set IP=%IP: =%
echo   \\%IP%\%SHARENAME%
echo.
echo ============================================
echo.
pause