解决windows登录samba共享无法切换用户的问题,附bat脚本

本文提供了一种在Windows环境下切换Samba服务器上不同用户权限的方法,通过使用bat脚本清除旧的登录信息并重启LanmanWorkstation服务,实现从普通用户到管理用户的顺利切换。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

初始条件:

搭建好samba的服务器,可以连接使用。具备普通用户(只允许下载);具备管理用户(可以上传下载)

问题描述:

Windows中使用快捷组合件 win+r 输入地址共享文件地址 \192.168.XX.XX :
会提示输入账号密码,输入普通用户的账号密码即可登录。
存在的问题是当想切换到管理用户的时候的无法切换,因为window会生成一个默认的网络凭证链接,自动使用普通用户来登录,笔者在网上搜索了许多文档都无法彻底的解决这个问题。

问题解决思路:

1、Windows bat脚本获取administrator权限。
2、清除上次登录windows保存的凭证及相关信息。
3、重启LanmanWorkstation服务【非常重要】

bat脚本代码:

@echo off
:: BatchGotAdmin
:-------------------------------------
REM --> Check for permissions
>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
REM --> If error flag set, we do not have admin.
if '%errorlevel%' NEQ '0' (
echo Requesting administrative privileges...
goto UACPrompt
) else ( goto gotAdmin )
:UACPrompt
echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
echo UAC.ShellExecute "%~s0", "", "", "runas", 1 >> "%temp%\getadmin.vbs"
"%temp%\getadmin.vbs"
exit /B
:gotAdmin
if exist "%temp%\getadmin.vbs" ( del "%temp%\getadmin.vbs" )
pushd "%CD%"
CD /D "%~dp0"
:--------------------------------------
@echo off
echo 清除上次信息,请稍等......
net use
net use \\192.168.XX.XX\IPC$ /DELETE
::清除win保存的认证
klist purge
::m删除win保存的凭据管理器,delete:后面为你共享的地址
cmdkey /delete:192.168.XX.XX
echo 清除登录信息完成
@echo off
net stop LanmanWorkstation
net start LanmanWorkstation
start /max "" "\\192.168.XX.XX"

将192.168.XX.XX替换为搭建的samba服务器的地址即可,经过测试这个脚本可以很好的运行在windows的环境里面。

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值