You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为SetCustomShell配置的自定义Shell设置工作目录?

解决SetCustomShell启动程序时的工作目录问题

明确一点:SetCustomShell本身不支持直接指定工作目录,但可以通过以下几种实用方法解决你的问题:

方法1:用批处理脚本包装可执行文件

写一个简单的批处理脚本,先切换到目标工作目录再启动程序,然后把这个脚本作为SetCustomShell的启动目标。

示例批处理内容(保存为Launcher.bat):

@echo off
cd /d "C:\Path\To"
start "" "C:\Path\To\Executable.exe"

修改PowerShell代码,把脚本路径传给SetCustomShell:

$ShellLauncherClass.SetCustomShell($Kiosk_SID, "C:\Path\To\Launcher.bat", ($null), ($null), 0)

方法2:配置Kiosk用户的默认工作目录

通过注册表修改该Kiosk用户的默认工作目录,程序启动时会自动继承这个路径:

  1. 先获取Kiosk用户的SID,然后加载其注册表 hive(如果未加载):
$kioskSid = "你的Kiosk用户SID"
reg load HKU\$kioskSid C:\Users\Kiosk用户名\NTUSER.DAT
  1. 修改用户的默认工作目录:
$regPath = "HKU:\$kioskSid\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders"
Set-ItemProperty -Path $regPath -Name "Personal" -Value "C:\Path\To"
  1. 修改完成后卸载注册表 hive:
reg unload HKU\$kioskSid

方法3:用带工作目录的快捷方式替代直接启动程序

给程序创建一个快捷方式,设置好起始位置(即工作目录),再把快捷方式路径传给SetCustomShell:

  1. 右键程序→创建快捷方式→右键快捷方式→属性→「快捷方式」选项卡→「起始位置」填入C:\Path\To
  2. 修改PowerShell代码:
$ShellLauncherClass.SetCustomShell($Kiosk_SID, "C:\Path\To\Executable.lnk", ($null), ($null), 0)

方法4:修改程序自身配置(如果支持)

检查程序有没有配置文件(比如.ini、.config)或内置设置,看是否能指定启动时的工作目录。如果有,直接在配置里设置好,程序启动时会自动切换到目标路径。


内容的提问来源于stack exchange,提问作者Firav

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 02:25:20