在远程计算机上安装用C#编写的Windows服务(以标准方式)的最佳方法是什么,我需要提供应该运行的用户名和密码?
我将从MSBuild运行它作为集成测试的一部分.
编辑:我没有msi,我不想创建一个.
我知道过去曾问过这个问题,但没有提供令人满意的答案.
我正在使用SC命令配置服务的凭据.
SC.exe config "SERVICE NAME" obj= "domain\user" password= "password"
Run Code Online (Sandbox Code Playgroud)
这成功完成,但是当我启动该服务时,它无法执行登录.
[ NET START "service name"]
如果我只手动更新services.msc中的密码,那么当我启动服务时,它可以正常工作.
我有数百台服务器在部署过程中更新此更改,因此不能选择手动干预.
我尝试使用配置更新登录帐户,然后使用另一个配置命令来输入密码.
从所有帐户,这SC.exe对密码不起作用,微软没有任何帮助.
想法?
我编写了一个ac程序,它从Windows下的命令行中检索参数.其中一个论点是正则表达式.所以我需要检索特殊字符,如"(,."等,但cmd.exe将"("视为一个特殊字符.
我怎么能输入这些特殊字符?
谢谢.
我有这个代码:
powershell -command "& { (New-Object Net.WebClient).DownloadFile('linkToMyFile.file', 'C:\my.file') }"
Run Code Online (Sandbox Code Playgroud)
它用于下载文件。
当我在远程服务器上的 cmd 中执行它时 - 一切正常。
但是,当我想使用 paexec 从我的计算机在远程服务器上执行此代码时,我在转义字符方面遇到了一些麻烦。
我的 CMD 中的命令:
psexec.exe \\remoteServer.0.1 -u username -p password -dbg -lo D:\PsExec.log cmd /c "powershell -command "& { (New-Object Net.WebClient).DownloadFile('linkToMyFile.file', 'C:\my.file') }""
Run Code Online (Sandbox Code Playgroud)
我尝试使用^符号,但同样的错误;
使用 ^ 符号作为双引号的代码:
psexec.exe \\remoteServer.0.1 -u username -p password -dbg -lo D:\PsExec.log cmd /c "powershell -command ^"& { (New-Object Net.WebClient).DownloadFile('linkToMyFile.file', 'C:\my.file') }^""
Run Code Online (Sandbox Code Playgroud)
另外,我尝试使用\(就像在 PHP 中一样)进行转义,但得到了相同的结果。
帮助解决此问题或提供如何使用命令行远程下载文件的建议。
我真的很努力地让 Windows shell 与 jq 一起工作并且失败了。
我希望这种类型的东西起作用
echo '["a","b","c"]' | .\Downloads\jq.exe -r '{ "data": map({ "{#SNAME}": . })}'
Run Code Online (Sandbox Code Playgroud)
但我收到一个错误:
jq:错误:语法错误,意外的“。” (Windows cmd shell 引用问题?)在第 1 行:
如果我只是这样做,echo '["a","b","c"]' | .\Downloads\jq.exe -r '.'那么它很高兴,但是一旦我添加其他字符,echo '["a","b","c"]' | .\Downloads\jq.exe -r '{.}'它就会再次失败:
jq:错误:语法错误,意外的“。” (Windows cmd shell 引用问题?)在第 1 行:
有谁知道如何让 Windows shell 对 jq 感到满意,以使上述示例按预期工作?
使用来自 jq 网站的最新 1.6 版本进行这些测试,并确认 jq 命令使用 Linux 和 jqplay.org 工作。
谢谢你。