V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
liyafe1997
V2EX  ›  Windows

如何确保 iSCSI 就绪之后再登录用户/启动 explorer.exe

  •  
  •   liyafe1997 · 86 天前 · 1631 次点击
    这是一个创建于 86 天前的主题,其中的信息可能已经有所发展或是发生改变。

    家里父母的电脑他们习惯把文件放在桌面上,确实也很方便,为了防止硬盘损坏导致丢文件,我在 NAS 里创建了一个 iSCSI 然后挂载到父母的电脑上,然后把桌面转移到 iSCSI 分区里( D:\Desktop ),但是启动时经常会出现下图的情况

    img

    很明显就是 explorer 加载的时候 iSCSI 还没连上,有什么 trick 能确保 explorer 加载之前,甚至用户登录之前,先连上 iSCSI 吗?

    22 条回复    2024-04-01 10:28:39 +08:00
    xixiv5
        1
    xixiv5  
       86 天前
    你试试计划任务 开机运行 bat 或者 PowerShell
    liyafe1997
        2
    liyafe1997  
    OP
       86 天前
    @xixiv5 不是 iSCSI 不会自动连,Windows 的 iSCSI 配好之后是会自动连接的,但是它不能保证在用户登录的时候 iSCSI ready ,所以就会导致上面的情况,也不是每次都出现,重启大概 30%概率出现。
    wuzhewuyou
        3
    wuzhewuyou  
       86 天前 via Android
    那么,无盘启动的电脑用了啥绝技?始终能找到 iscsi 盘
    liyafe1997
        4
    liyafe1997  
    OP
       86 天前
    @wuzhewuyou 那是因为直接从 iscsi 盘引导的
    gregy
        5
    gregy  
       86 天前
    用计划任务在开机以后重启 explorer 进程试试呢
    geelaw
        6
    geelaw  
       86 天前   ❤️ 3
    写一个自定义的 shell ,然后设置目标用户的 HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System 里面的 Shell 值( REG_SZ 字符串)为你的 shell 的完整路径。

    你的 shell 需要是一个 GUI 程序,并且 bitness 和系统相符,它调用 SHGetKnownFolderPath 获得用户的桌面文件夹,注意 dwFlags 应该设置 KF_FLAG_DONT_VERIFY ,然后等待这个文件夹可以被访问(或者超过固定时间),然后 CreateProcessW 启动 explorer.exe ,然后自己退出。

    参考阅读:
    https://learn.microsoft.com/en-us/previous-versions/windows/embedded/ms838576(v=winembedded.5)?redirectedfrom=MSDN
    https://learn.microsoft.com/en-us/windows/win32/api/shlobj_core/nf-shlobj_core-shgetknownfolderpath
    https://learn.microsoft.com/en-us/windows/win32/api/processthreadsapi/nf-processthreadsapi-createprocessw
    vibbow
        7
    vibbow  
       86 天前
    如果只是为了文件防丢,那用 goodsync 自动同步到 nas 里就行呀
    NewYear
        8
    NewYear  
       86 天前
    @geelaw

    这里涉及另外一个知识点,就是如何让杀毒软件认为这是用户自己的行为,加入进去的程序是自己写的,不是病毒篡改的,要不下次肯定会“自动修复”掉。

    像 Windows 开放了很多入口给程序员使用,然而现在都是成为了“病毒专属”,杀毒软件对待这些入口就像对待“漏洞”一样,有一个消灭掉一个。。。。
    BwNVlwSq
        9
    BwNVlwSq  
       86 天前 via Android
    用同步工具把桌面同步过去就行了吧。。。
    kokutou
        10
    kokutou  
       86 天前
    组策略 计算机启动和登录时总是等待网络 打开试试?
    gamexg
        11
    gamexg  
       86 天前
    弄个自动备份吧
    我感觉自动同步更可靠,至少自动同步是本机+NAS 两份
    目前的情况万一 NAS 故障文件直接看不到了

    第三方的备份软件,或者直接用 windows 的备份
    windows 的备份支持备份到局域网 smb ,开启后可以做到开启备份的文件每小时备份一个快照到 NAS.
    ladypxy
        12
    ladypxy  
       86 天前 via iPhone   ❤️ 1
    正确做法应该是使用 SMB 然后用组策略把用户目录重定向

    如果非要用 iscsi ,你这问题可以通过修改服务,把 iscsi 设置为某个先启动服务的依赖项即可
    geelaw
        13
    geelaw  
       86 天前
    @NewYear #8 可以把程序放在只有该用户有权限控制的位置,然后设置杀毒软件的忽略名单。我自己的某些用户用 PowerShell 作为 shell ,没有被修改过。另外就是 shell 的设置不值得病毒使用,因为想要做到开机自启有无数种办法(任务计划、Run 、RunOnce 等等等等),把自己设置为 shell 是非常麻烦的一种。
    sunnysab
        14
    sunnysab  
       86 天前
    我觉得可以按 #12 的方案试一下。

    还有一个加补丁的方案:自己写一个简单的 Windows 服务,在服务加载时阻塞 Windows 的启动,直到 D:\ 的状态为 Ready :D
    hxy100
        15
    hxy100  
       86 天前
    通篇看下来,还是叫觉得 6 楼 geelaw 给出的方案最为靠谱;
    liyafe1997
        16
    liyafe1997  
    OP
       86 天前 via Android
    @ladypxy 我试了下把那个 MSiSCSI 设为 User Profile 的依赖项,但是这样启动会变得很慢,卡在欢迎那里转圈圈至少 2 分钟,这时 iSCSI 肯定已经启动了的,我在 NAS 那边都已经看到已连接了。
    liyafe1997
        17
    liyafe1997  
    OP
       86 天前 via Android
    @ladypxy SMB 会不会也有这个问题?启动的时候 SMB 没连接
    Greatshu
        18
    Greatshu  
       86 天前
    你怎么觉得 NAS 硬盘比电脑硬盘更稳定,NAS ,网线,路由器都是新的故障点。这没有解决问题,只是转移的问题并制造了新的问题。
    NewYear
        19
    NewYear  
       86 天前
    @geelaw 谢谢
    liyafe1997
        20
    liyafe1997  
    OP
       86 天前
    @Greatshu 主要是数据安全,NAS 有 RAID1 还有快照冷备,防止电脑硬盘突然损坏丢文件
    liyafe1997
        21
    liyafe1997  
    OP
       86 天前
    最后我放弃 iSCSI 了,把桌面和我的文档那些还原默认路径,就保存在本机硬盘上,然后用“文件历史记录”这个功能自动备份

    bnx
        22
    bnx  
       84 天前
    @liyafe1997 你这么操作倒是没啥大问题,就是这个东西我记得是增量备份。第一份备份出问题了,后续的文件怕是不好找。
    既然你有 nas ,可以用群号的 Synology Drive ,试试。但我感觉那玩意也是增量备份的。。。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1378 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 17:34 · PVG 01:34 · LAX 10:34 · JFK 13:34
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.