创建一个组合的命令行/Windows服务应用程序
C#设置可以从命令行运行并产生一些输出(或写入文件)的实用程序应用程序的最佳方法是什么,但是可以作为Windows服务运行以完成其作业在背景中(例如监视目录或其他目录). 我想编写一次代码,并且能够从PowerShell或其他某些CLI进行交互调用,但同时也找到了一种安装与Windows服务的相同EXE文件的方法,并且是否可以无人看管运行. 我可以这样做吗?如果是这样:我该怎么做? 解决方案 是的,您可以. 一种方法是使用命令行参数,例如"/console",将控制台版本以服务版本为单位: : 创建一个Windows Console应用,然后 在program.cs中,更准确地说是在主函数中,您可以测试"/console"参数的存在 如果存在"/控制台",请正常启动程序 如果不存在参数,请从Servicebase调用您的服务类 // Class that represents the Service version of your app
0 2023-12-08
编程技术问答社区
如何获得所有以一个普通单词开头的Windows服务名称?
有一些托管的Windows服务,其显示名称以通用名称开头(此处为Nation).例如: 国家城市 民族国家 nation-village 是否有一些命令来获得所有服务,例如" nation-".最后,我需要使用命令ProM. 停止,启动和重新启动此类服务. 解决方案 sc queryex type= service state= all | find /i "NATION" 使用/i对于案例不敏感搜索 type=之后的空白是故意的,需要 其他解决方案 使用 powerShell ,您可以使用以下 Get-Service | Where-Object {$_.displayName.StartsWith("NATION-")} | Select name 这将显示一个列表的所有displayName以" nation"开头的服务. 您也可以直接停止或开始服务; Get-Service | Where-Object {$_.dis
0 2023-12-08
编程技术问答社区
需要一种方法,以编程方式检查Windows服务的状态
以下情况是: 我被要求与基于Java的安装程序IDE的Installanywhere 8 Where Where Where Where,可以启动和停止Windows Services,但没有内置的方法来查询其状态.幸运的是,它允许您在Java中创建自定义操作,该操作可以在安装过程中的任何时间(通过我认为是相当令人费解的API)来调用. 我只需要告诉我是否启动或停止特定服务. IDE还允许调用批次脚本,因此这也是一个选项,尽管一旦脚本运行,几乎无法验证它成功了,所以我试图避免这种情况. 欢迎任何建议或批评. 解决方案 这是我要做的.这很丑陋,但效果很好. String STATE_PREFIX = "STATE : "; String s = runProcess("sc query \""+serviceName+"\""); // check that the temp string contains the stat
0 2023-12-08
编程技术问答社区
使用SC.exe设置服务凭证密码失败
我知道这个问题过去曾被问到,但是没有提供令人满意的答案. 我正在使用SC命令来配置服务的凭据. SC.exe config "SERVICE NAME" obj= "domain\user" password= "password" 这将成功完成,但是当我启动服务时,它会失败 执行登录. [NET START "service name"] 如果我仅手动更新来自 services.msc 的密码,则 当我启动服务时,它可以正常工作. 我有数百个服务器可以更新此更改,发生在部署中间, 因此,手动干预不是一种选择. 我尝试使用配置更新登录帐户,然后尝试使用密码的另一个配置命令. 从所有帐户中,SC.exe不适用于密码,Microsoft没有帮助. 想法? 解决方案 除了停止停止服务在进行更改之前,授予用户登录作为服务的权限,我还必须添加type= own参数,否则它将失败: [SC] ChangeServiceConfig FAI
0 2023-12-08
编程技术问答社区
如何从命令行改变windows服务的用户凭证?
如何从命令行更改Windows服务的用户凭据? 解决方案 sc.exe config "Service Name" obj= "DOMAIN\User" password= "password" type= own 参见快捷方式设置Windows Services的日志凭证»Jonathanmalek.com . @mattt指出,在Windows Server 2008R2上您必须添加type= own,但是在该版本之前,这不是必要的. 在PowerShell 3+中,您可以避免使用停止放置符号:--% sc.exe --% config "Service Name" obj= "DOMAIN\User" password= "password" type= own 其他解决方案 我只是从PowerShell中称WMI为此. $Svc = Get-WmiObject win32_service -filter "name='ServiceNam
0 2023-12-08
编程技术问答社区
从PHP中向windows命令行(cmd)发送命令
这是可能的吗? 我想做的是发送: run_app.exe -param 'test' -name 'tester' 到php的Windows CMD线. 这是可能的,还是我需要编写应用程序触发的Windows服务? 解决方案 您可以使用 exec() P> 其他解决方案 您是否尝试过 exec ? 其他解决方案 或您可以使用: $WshShell = new COM("WScript.Shell"); $oExec = $WshShell->Run(strCommand, [intWindowStyle], [bWaitOnReturn]); 在这里您可以找到运行方法参数: http://msdn.microsoft.com/en-us/library/d5fk67ky%28v=vs.85%29.aspx 这是com类文档: http://www.php. NET/MANUAL/EN/class.com.php 使用此方法,
0 2023-12-08
编程技术问答社区
2008年服务器上的批处理脚本-如果Ping成功,那么
我正在尝试编写一个脚本,该脚本将在运行其余脚本之前检查计算机是否在我的LAN上.这是一个使用 Robocopy 的简单备份脚本,但我希望它根据是否成功输出文件. 这就是我所拥有的. set machine=userbox ping -n 1 %machine% > nul if errorlevel 1 goto BAD goto GOOD :GOOD robocopy source destination echo "backup complete" > c:\scripts\backupgood-%machine%.log shutdown /s /m \\%machine% /t 600 goto END :BAD echo "Computer not on" > c:\scripts\%machine%-offline.log :END 现在,脚本没有检测到系统是否打开,它假设它已经打开并继续使用脚本,就好像计算机能够被刺穿. 有人可以指出为什么错误没有通过,或者
0 2023-12-08
编程技术问答社区
在windows7中出现wmic错误(无效的XSL格式)。
wmic process get /format:csv Windows 7中的此命令有什么问题? 我得到: 无效的XSL格式(或)文件名. 解决方案 这是WMIC命令中的一个错误.有人建议将XSL文件复制到%windir%\ system32(或同等数字为64位.)但是,下面的命令也无需复制文件即可: WMIC过程获取ProcessID,Description,Commandline,executable Pather,parentProcessID/格式:"%windir%\ system32 \ wbem \ en-us \ en-us \ csv" 当然,不同地区的" en-us"将有所不同. 如果要将输出重定向到文件,请在 Process 关键字关键字 之前添加开关/output:"您的文件名" 其他解决方案 This is a bug 在Windows 7和Windows Server 2008(也是R2)WMIC中.当您在英语窗口
0 2023-12-08
编程技术问答社区
在Win 2003中从命令行关闭DEP
如何在2003 Win中从命令行关闭DEP? 或至少要赢xp. 很多论坛解释如何通过编辑boot.ini关闭它,但是我需要命令行解决方案. 解决方案 在Windows XP和Windows Server 2003上,您可能需要使用BOOTCFG来禁用DEP,请参阅/noexecute MSDN. bootcfg/raw"/noexecute = ewaysect off" 其他解决方案 它不是命令行,但也许您可以使用 win + break , * a *dvanced, * p *Erformance选项,Data Execution Prevention tab 您甚至可以在哪里管理DEP设置 其他解决方案 将CMD作为管理员运行,然后在 中输入以下输入 bcdedit.exe/set {current} nx ewaysoff
0 2023-12-08
编程技术问答社区
安排一个.vbs文件在Windows中运行
我有一个任务调度程序. 任何帮助都将不胜感激,这是vbscript脚本: set WshShell = WScript.CreateObject("WScript.Shell") WshShell.Run "cmd" WScript.Sleep 100 WshShell.AppActivate "C:\Windows\system32\cmd.exe" WScript.Sleep 300 WshShell.SendKeys "telnet 10.20.70.254{ENTER}" WScript.Sleep 300 WshShell.SendKeys "netscreen" WScript.Sleep 300 WshShell.SendKeys "{ENTER}" WScript.Sleep 300 WshShell.SendKeys "netscreen" WshShell.SendKeys "{ENTER}" WScript.Sleep 300
0 2023-12-08
编程技术问答社区
我怎样才能从UNIX-AIX上执行WINDOWS批处理文件?
如何从Unix-aix执行Windows批处理文件,我在哪里安装了Copssh? 解决方案 这有效吗?从Unix框中: $ rsh -l user_name windows_host_name "C:\scan.bat" 其他解决方案 除非它是非常基本的,即它不会调用任何特定于Windows的程序,在这种情况下,您可能最好将其转码为bash或类似程序. 其他解决方案 最好的方法将将其转化为bash.
0 2023-12-08
编程技术问答社区
/f在.bat文件中不起作用,但在windows 2003中可以用命令提示符。
for/f" tokens = 1-7 delims =,:"%a in('query用户 ^| find/i" disc"')do logoff%b 以上代码用于登录远程桌面用户,在Windows 2003中,状态"断开连接".当我在命令提示符下运行时,它将完美地工作.但是,当我在Windows 2003中制作.bat文件或.cmd文件时,它不会运行. 解决方案 内部批处理文件需要逃脱for可替换参数中使用的百分比 for /f "tokens=1-7 delims=,: " %%a in ('query user ^| find /i "disc"') do logoff %%b 其他解决方案 用户585, 是的,要在BAT/CMD会话内实现for循环,您需要使用 放置该变量 %%a 喜欢这个 for /f %%a in (.\hosts) do quser /server:\\%%a
0 2023-12-08
编程技术问答社区
我如何'svn添加'所有未版本的文件到SVN?
我正在寻找一种很好的方法,可以自动"在工作副本中添加'所有未经转换文件到我的SVN存储库中. 我有一个可以创建一些应在源控制下的文件.我想拥有一个简短的脚本,可以自动添加它们,而不是一次添加它们. 我的服务器正在运行 Windows Server 2003 所以Unix解决方案不起作用. 解决方案 svn add --force * --auto-props --parents --depth infinity -q 很棒的提示!一句话:我的 eclipse 自动将新文件添加到自动的忽略列表中.这可能是配置的问题,但无论如何:有--no-ignore选项可以帮助. 之后,您可以提交: svn commit -m 'Adding a file' 其他解决方案 这是一个不同的svn status | grep '?' | sed 's/^.* /svn add /' | bash 其他解决方案 有效的是: c:\work\repo1>
0 2023-12-08
编程技术问答社区
在命令行上编译C++/CX
我在尝试在命令行上编译C ++/CX程序时获取链接器错误fatal error C1107: could not find assembly 'platform.winmd': please specify the assembly search path using /AI or by setting the LIBPATH environment variable 我遵循此页面上的说明后,错误是相同的:我还尝试了从 developer命令提示进行VS2015 的运行vcvarsall.bat x86 store,但我仍然遇到相同的错误(当从普通命令提示下运行时也会发生相同的错误). 解决方案 更新:显然,此错误已在VS2015 Update 1中固定,但是我还无法测试自己. 事实证明,问题中提到的文档中缺少一些命令行参数,这是编译小程序所需的完整命令行: cl /ZW /ZW:nostdlib /D WINAPI_FAMILY=WINAPI_FA
0 2023-12-08
编程技术问答社区
为什么pip找不到winrt?
我刚买了一台新笔记本电脑,我正在尝试用Python进行设置.我正在使用Python 3.10.0,Windows 10,PIP V21.3.在大多数情况下,PIP似乎正常工作,我已经使用它安装了多个软件包,例如PyGame.但是,当我尝试安装winrt时,我会得到此错误 C:\Users\matth>pip install winrt ERROR: Could not find a version that satisfies the requirement winrt (from versions: none) ERROR: No matching distribution found for winrt 我的旧笔记本电脑仍然能够使用PIP卸载和重新安装Winrt,而没有问题,而PIP再次在我的新笔记本电脑上使用其他包装,而不是Winrt.知道问题是什么以及我如何解决? 解决方案 Microsoft尚未维护winrt软件包. Python 3.10没有二进制轮,如Py
0 2023-12-08
编程技术问答社区
在命令行上构建Windows 8手机应用程序
我目前正在将现有的跨平台框架移植到Windows Phone 8. 构建过程是完全自动化的,我们正在使用岩石固体CI系统. 我可以从Visual Studio(Express 2012)中构建和部署Windows Phone 8样本, 但是现在我需要将其集成到我们的构建脚本中. 有人是否曾经通过命令行成功构建(并部署)Win Phone 8应用程序? (或蚂蚁,制造,scons,无论如何... 如果是,如何? 欢迎任何提示. 解决方案 我使用以下BAT文件来构建WP7代码(在其顶部+ANT自动化).这可能对您有帮助. build.bat C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe build.xml /t:BuildAndCopy /p:Revision=123 其中 build.xml 是类似(构建本身在buildall目标下)
0 2023-12-08
编程技术问答社区
通过命令行在模拟器中打开Windows Phone应用程序?
是否有一种方法可以通过命令行加载Windows Phone应用程序到Windows Phone模拟器中?我希望能够运行杰夫·威尔科克斯(Jeff Wilcox >在自动化期间. 的线 "C:\Program Files (x86)\Microsoft XDE\1.0\XDE.exe" "C:\Program Files (x86)\Microsoft SDKs\Windows Phone\v7.0\Emulation\Images\WM70C1.bin" /project:"path/to/project.xap" 将是最好的场景(据我所知,/project参数实际上并不存在).主要问题不是将XAP部署到模拟器(通过XapDeploy.exe可以),而是通过命令行打开它. 解决方案 贾斯汀更改了他的页面的链接结构. 新链接(如果您懒得使用搜索): http://justinangel.net/windowsphone7emulatorautomation 其
0 2023-12-08
编程技术问答社区
如何为所有用户无声地安装NSIS可执行文件
我有一个NSIS安装程序可执行文件,我想为所有用户静静地安装.我知道我可以通过/S参数进行静音安装.问题在于,安装程序的默认选项是仅为当前用户安装.如何从命令行更改此选项: installer.exe /S 解决方案 事实证明,对于此特定的安装程序,您可以通过: /ALLUSERS=1 ALLUSERS是标准MSI属性.我没有在NSIS中找到此属性的任何文档,因此看起来此特定安装程序的开发人员添加了此. 其他解决方案 nsis本身仅支持/S,/NCRC和/D=c:\override\default\installdir\,其他一切都在作者中. 如果您使用如果事实证明没有办法这样做,那么您必须研究UI自动化...
0 2023-12-07
编程技术问答社区
WiX命令|行选项为无用户界面,'/quiet',杀死了正在运行的进程。
我已经使用WIX为我的应用程序创建了一个没有UI的设置(在此称为" XYZ"). 如果我在运行xyz.exe时双击MSI,它会通知我一个过程正在锁定文件:我可以选择杀死锁定过程,也可以中止安装. 这很好:作为用户,我可以决定该怎么做. 但是,当我从命令行运行相同的MSI时, msiexec/i xyz.msi/letim/norestart 如果发现XYZ.exe运行它将被杀死.在我的情况下,这绝对是无法接受的:MSI应该中止安装并退出. 如果我设置" mondo"接口(或任何其他接口),则相同的设置设备可与预期的相同. 什么是解决方案? 解决方案 您链接到的文章SAD RESTART MANARA会关闭运行过程以减轻重新启动,并且在设置完成后应该启动该过程.它还提到了属性控制与重新启动管理器的交互的属性: A>设置为2: 当前正在使用受更新影响的文件的流程或服务仅在全部注册重新启动时才会关闭.如果尚未注册以重新启动的任何过程或服务
0 2023-12-07
编程技术问答社区
使用命令行从.wxs文件创建一个msi文件
我正在使用heat.exe从dir创建一个-wxs文件,现在希望使用命令行实用程序从WXS文件中生成/创建MSI. 在以下问题中建议的一个用户向参考以查看Visual Studio的输出窗口并执行相同的操作. 编程构建WXS 可以从WXS文件中创建MSI. 解决方案 正如Vinoth所建议的那样,我看过Wix命令行实用程序,并创建了MSI 我已经使用Wix命令行实用程序创建了MSI,然后默默地安装了MSI. 此收获文件并创建.wxs文件: heat.exe dir "dirPath" -cg NewDemoGroup -g1 -gg -sf -srd -scom -sreg -out "fragment.wxs" 这将创建一个.wixobj文件 candle.exe product.wxs fragment.wxs -ext WixUIExtension 这会生成MSI. light.exe -out demo.msi -b
0 2023-12-07
编程技术问答社区