首页 > 系统相关 >【FileZillaServer用网络驱动器作为主目录时,客户端无法列出文件】【Spring Boot安装成Windows服务之后,无法访问网络驱动器】(Windows服务无法访问网络驱动器)

【FileZillaServer用网络驱动器作为主目录时,客户端无法列出文件】【Spring Boot安装成Windows服务之后,无法访问网络驱动器】(Windows服务无法访问网络驱动器)

时间:2024-04-28 09:59:45浏览次数:19  
标签:Service 映射 Windows 无法访问 网络 Server 驱动器

遇到的两个问题

  1. 安装FileZilla Server后,把映射的网络驱动器内容作为主目录时,客户端能正常登录,但是无法列出文件。把本机的某个目录组为主目录,客户端可以正常列出文件。
  2. 把Spring Boot 安装成 Windows 服务时,访问系统中映射的网络驱动器失败(开发过程中能够正常访问,通过命令的方式启动Spring Boot应用时,也能访问)

原因

总结主要原因就是应用程序对应的 Windows服务 无法访问 网络驱动器。
因为Windows Service是以system用户的身份运行的,而网络驱动器是当前登录用户身份去建立的。两个身份是在不同的contex下,不能互相访问彼此的环境,以及映射的网络驱动器。

解决方法概述

  • 解决方法一:以Windows Application的方式运行程序,而不是Windows Service的方式运行程序
  • 解决方法二:还是以Windows Service的方式运行程序,但是让Windows Service可以访问网络驱动器
解决方法一
  • 以Windows Application的方式运行程序
  1. 停掉 Filezilla Service
  2. 卸载 Filezilla Service
    cd C:\Program Files (x86)\FileZilla Server
    "FileZilla Server.exe" /uninstall
  3. 以Windows应用的方式来运行Filezilla
    cd C:\Program Files (x86)\FileZilla Server
    "FileZilla Server.exe" /compat /start
  4. 从任务管理器里看看有没有FileZilla Server在运行,有的话就是成功运行了
  5. 映射网络驱动器(已经映射过的话,忽略此步)
  6. 打开 Filezilla Interface,创建用户,添加网络驱动器为主目录
  7. 用FileZila 客户端登录测试一下,现在应该可以列出文件了
解决方法二
  • 让Windows Service可以访问网络驱动器。
    具体做法是,让SYSTEM用户去映射网络驱动器,这样Windows Service就可以访问网络驱动器了。同时,为了确保系统重启之后,Windows Service依然能访问网路驱动器,就做一个计划任务,让系统启动的时候,还是以SYSTEM帐户的身份去映射网络驱动器。

    步骤如下:
  1. 过程中需要用到PsExec,可以从下面的链接下载
    https://learn.microsoft.com/en-us/sysinternals/downloads/psexec

  2. 以SYSTEM用户的身份运行cmd
    Psexec.exe -s -i cmd.exe
    再次检查当前用户是system
    whoami
    > 结果应该是 nt authority\system

  3. 给SYSTEM Context添加凭据
    CMDKEY /add:StorageServer /user:"StorageServer\JohnSmith" /pass:MyHiddenPassword
    看看添加成功了没
    CMDKEY /list
    列出凭据

  4. 做一个用来映射网络驱动器的批处理脚本
点击查看代码 NetUseZ.bat
@echo OFF
net use Z: /del /y
net use Z: \\StorageServer "MyHiddenPassword" /user:"StorageServer\JohnSmith"

4. 添加一个开机启动时执行的计划任务,让系统以SYSTEM的身份去运行任务,映射网络驱动器
配置完成

过程中遇到的其他问题

  1. 重启之后,因为是计划任务用system映射的驱动器,当前登录的用户没法打开,提示用户名或者密码错误。所以如果要当前用户也能打开的话,就在凭据管理器(登录用户contex的)中添加网络驱动器的地址及用户名密码,就能打开了。
    如果登录用户已经映射过网络驱动器,之后才添加的(用system用户去映射网络驱动器的)计划任务,不会遇到这个问题。

  2. 其中一台服务器,在执行Psexec.exe -s -i cmd.exe的时候,提示 Error creating key file on WIN-XXXX 找不到网络名。查了一下,是因为 ADMIN$ 没有共享。确实,在命令行执行 net share 命令,结果中只有 IPC$ 和 print$ 。开启 ADMIN$ 的时候,直接执行 net share admin$,没有成功。后来用了下面的方法,成功。

    运行regedit,进入下面键值: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver\parameters,
    新建AutoShareWks,以及AutoShareServer两个键值,选择REG_DWORD格式,赋值为1
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa
    新建restrictanonymous,dword,赋值1。
    然后重启,通过运行CMD命令进入命令行模式,再运行net share,在共享列表中会看到IPC$等默认共享。

  3. 试验过把Windows Service的运行用户改成administrator,重启服务之后,服务还是不能访问网络驱动器。



参考资料原文

标签:Service,映射,Windows,无法访问,网络,Server,驱动器
From: https://www.cnblogs.com/passacaglia/p/18162195

相关文章

  • Installation requirements for SAP Kernels on Windows (C++ runtime environment, V
      Symptom在Windows执行StartSAP,报错信息找不到指定的模块:"Theprogramcan'tstartbecausemsvcr100.dllismissingfromyourcomputer.""无法启动此程序,因为计算机中丢失了msvcr100.dll。尝试重新安装该程序以解决此问题。" OtherTermsC,C++,runtime,VCred......
  • MBR2GPT.exe 是一个用于将磁盘从MBR分区转换为GPT分区的工具,而不会修改或删除磁盘上的
    MBR2GPT.exe是一个用于将磁盘从MBR分区转换为GPT分区的工具,而不会修改或删除磁盘上的数据。这个工具允许在Windows环境中执行转换操作,而不仅限于Windows预安装环境。它提供了一些选项来验证磁盘是否可以安全地转换,并执行实际的转换操作。在使用这个工具之前,用户可以选择进行......
  • 计算机Windows系统优化小知识
    目录目录什么是注册表优化优化工具什么是注册表注册表是保存所有系统设置数据的存储器。注册表保存了Windows运行所需的各种参数和设置,以及应用程序相关的所有信息。从Windows启动开始,到用户登录、应用程序运行等所有操作都需要以注册表中记录的信息为基础。注册表在Windows操......
  • FFmpeg开发笔记(十七)Windows环境给FFmpeg集成字幕库libass
    ​libass是一个适用于ASS和SSA格式(AdvancedSubstationAlpha/SubstationAlpha)的字幕渲染器,支持的字幕类型包括srt、ass等,凡是涉及到给视频画面添加字幕,均需事先集成libass。《FFmpeg开发实战:从零基础到短视频上线》一书的“7.3.1 Linux环境安装libass”介绍了如何在Linux环境......
  • 记录一下docker desktop windows安装,容器安装等
    安装包下载https://desktop.docker.com/win/main/amd64/Docker%20Desktop%20Installer.exe    docker应用管理工具,选择性安装https://www.rainbond.com/docs/quick-start/quick-installhttps://www.bilibili.com/video/BV1MZ4y1b7wW/?p=2&spm_id_from=pageDriver&......
  • windows bilibili客户端缓存视频导出
    视频缓存地址:C:\Users\Administrator\Videos\bilibili\一串数字使用winhex把视频和音频前面的八个0删除使用ffmpeg合并视频和音频ffmpeg-i视频文件-i音频文件-codeccopy输出地址......
  • WDS+MDT网络启动自动部署windows(十)硬盘分区格式化全自动
    简介:虽然WDS+MDT在单硬盘很方便,但是各种大硬盘,小固态加大硬盘的地方,还是有若干不便之处。如:第二块硬盘未分区格式化,需要手动选择安装磁盘,如果固态超过250G,是否需要分为两个区?自动选择较小的硬盘目前我这里的终端都是小固态,大机械,那么我们要尝试一下自动选择较小的硬盘作为系统......
  • 陈畅亮搞的专利在Windows上利用加解密DLL模块对数据库连接字符串进行加解密
    陈畅亮搞的专利在Windows上利用加解密DLL模块对数据库连接字符串进行加解密  这种专利权人是公司,个人是发明人,专利年费是申请人先垫付,然后公司报销了,这个专利本身就不属于员工的这个是公司是专利权人, 使用权是公司,如果想要维持权利的话,需要缴纳年费,专利发明现在一个市......
  • 使用Win-ACME在Windows+iis服务器下配置自动续期SSL证书
    win-acme,github地址:https://github.com/win-acme/win-acme简单介绍一下win-acme这款工具吧,看到名字我们就知道前面加了win就代表是windows服务器版本,这款工具也支持liunx服务器。情况说明我本人是做.NET开发的,由于网站建设和小程序开发等都需要https,但是ssl证书有过期的限制,如果......
  • WDS+MDT网络启动自动部署windows(十)添加软件
    简介:部署系统也要部署常用软件啊。虽然大部分软件都会放再组策略来安装,但是有些几乎不会动的软件,尤其是office这么大尺寸的,还是放MDT部署吧。office2016自动化安装office静默安装vl版-上官飞鸿-博客园(cnblogs.com)创建静默安装的配置文件放入共享目录有人房屋MDT,我......