【发布时间】:2018-08-23 22:32:59
【问题描述】:
我一直在尝试解决这个问题。我在网上搜索过,我尝试过的解决方案似乎不起作用。
这在我的电脑上运行正常:
Dim sourceName As String = File_To_Encrypt
Dim gpgsourceName As String = File_To_Encrypt & ".gpg"
Dim argumentString As String = " --batch --yes --recipient recname --encrypt " & sourceName
Dim gpgcmd As String = "\\serv2014\c$\Program Files (x86)\GnuPG\bin\gpg.exe"
Process.Start(gpgcmd, argumentString)
当我尝试在生产环境中运行时,它不起作用。我是 VB 的新手,我尝试过任意数量的组合:
"""\\serv2014\c$\Program Files (x86)\GnuPG\bin\gpg.exe"""""
ControlChars.Quote & "\\serv2014\c$\Program Files (x86)\GnuPG\bin\gpg.exe" & ControlChars.Quote
即使是我从搜索中看到的:“c:\sp` ace\test.ps1”
"\\serv2014\c$\Program` Files` (x86)\GnuPG\bin\gpg.exe"
我读到这个: 注意:在 VB.NET 中,“”的转义字符是“”。 加上三个引号,它似乎只是挂起这个过程:
"""\\serv2014\c$\Program Files (x86)\GnuPG\bin\gpg.exe"""
也试过了:错误信息是系统找不到指定的文件
"\\serv2014\c$\Program Files (x86)\GnuPG\bin\gpg.exe"""
感谢任何建议。
我可以在我的 PC 上正常运行它,Windows 管理员告诉我如果路径中有空格,那么我必须正确引用它。
我可以从我的电脑的 cmd 行执行命令 - 没问题。
我可以通过 Visual Studio 的按钮运行 vb 程序 - 运行正常。我可以从我的 PC 上的 cmd 行运行这样的命令:
C:\WINDOWS\system32>"\\serv2014\c$\Program Files (x86)\GnuPG\bin\gpg.exe" --batch --yes --recipient recpname --encrypt \\serv2014\e$\Extracts\filename.csv
当我构建 .exe 时,将它放在服务器上并从调度程序运行它 - 它不起作用。我问 Windows 管理员这是否是权限问题 - 他说不。我是 Windows VB 的新手,所以不确定还有什么要检查的。
我提到了它挂起的结果 - 作业到达这一步并且挂起不退出我必须终止进程。或者如前所述,错误日志中有一条消息“系统找不到指定的文件”
【问题讨论】:
-
“不起作用”到底是怎么回事?您确定问题是引用而不是其他问题吗?
-
我在上面添加了详细信息
-
那里不需要任何引号(在
VB.Net和C#中,该字符串在此上下文中是有效路径)。您确定您的应用不需要管理员权限,或者为此设置了“特殊”组策略,以便任何人都可以从任何地方访问该管理员共享吗?您是否尝试过使用 IP 地址而不是机器名?
标签: vb.net visual-studio gnupg