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

初始条件:

搭建好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的环境里面。

  • 11
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值