问题标签 [start-process]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1003 浏览

powershell - 运行 Powershell 脚本,该脚本使用 -List(参数)和备用凭据

我今天很难让这个简单的(?)功能正常工作。

我有一个 PowerShell 脚本,它从基于 txt 的文件中读取计算机名称。通过以下单行从 PowerShell 会话运行时,它可以正常工作:

如您所见,它的文件名很长,因此用引号括起来。

但是,我正在构建一个带有单选框的 PowerShell GUI 表单,该表单将传递用于调用脚本的文本文件的选择。诀窍是,脚本需要使用备用管理员帐户运行,我不清楚如何使其工作。

对于另一个我没有使用的脚本,我知道我可以使用以下内容,它使用旧的 DOS“runas”,但是,它不适用于 -list 函数。

那么,简而言之,如何使用从命令行读取参数(-List)的备用凭据启动脚本?我也很想保留我的目录结构,其中包括带空格的文件夹。该脚本的标题是:“服务器健康检查.ps1”

我尝试的最后一件事是以下

结果是以下消息:

我几乎可以肯定这可以通过调用命令或启动过程来实现,这只是获取正确格式的问题吗?我可能在使用 start-process 或 invoke-command 的试验中遗漏了 / 或 ' 或 "" 。

任何帮助表示赞赏!

4月30日更新:

我已经尝试了更多来完成这项工作,我已经接近了,但仍然不完全在那里。

添加 -credential 会导致错误,指出 -file 参数无效。我确信有办法做到这一点。

0 投票
1 回答
34286 浏览

powershell - Powershell Start Process, Wait with Timeout, Kill and Get Exit Code

I want to repeatedly execute a program in a loop.

Sometimes, the program crashes, so I want to kill it so the next iteration can correctly start. I determine this via timeout.

I have the timeout working but cannot get the Exit Code of the program, which I also need to determine its result.

Before, I did not wait with timeout, but just used -wait in Start-Process, but this made the script hang if the started program crashed. With this setup I could correctly get the exit code though.

I am executing from ISE.

How can I

  1. Start a process
  2. Wait for it to orderly execute and finish
  3. Kill it if it is crashed (e. g. hits timeout)
  4. get exit code of process
0 投票
1 回答
591 浏览

vb.net - Process.start() 尝试以管理员身份运行时抛出错误

我有一个在 vb.net 中开发的应用程序,它需要管理员权限。我在应用程序清单中设置了 level = "requireAdministrator"。由于组织中的一些限制,我的客户希望此应用程序由本地用户运行。所以我创建了另一个“启动器”应用程序,它实际上将以加密格式保存管理员凭据,并将使用保存的凭据来运行“原始”应用程序。

如果我使用“管理员”帐户(内置帐户),一切正常。但是如果我使用手动创建的管理员帐户的凭据 - process.start () 行会抛出错误“请求的操作需要提升”我真的无法识别内置管理员和手动创建之间的区别管理员帐户。我确认两个用户(内置的和手动创建的)都是管理员和家庭用户的成员。我尝试了所有可能性,通过创建具有不同用户组甚至不同操作系统(Windows 7 和 Windows 10——32 位和 64 位版本)的不同用户——但是,所有这些都以与上述相同的方式工作。我的代码有什么需要改变的吗?

附加信息:在这里,我以标准用户(不是管理员)的身份运行此“启动器”应用程序,并且该应用程序运行良好,并且它确实提升了权限,如果

TbUser.Text = “管理员”和 TbPass.Text = 123(管理员密码)。

但这不是提升特权,如果

TbUser.Text = “Adminuser”(也是属于同一“Administrators”组的管理员)和 TbPass.Text = 321(Adminuser 的密码)。

0 投票
1 回答
994 浏览

powershell - Powershell FileSystemWatcher 操作不起作用

在下面的代码中,action.bat - 调用一个将文件名作为参数传递的 java 进程,而 log.txt - 记录一行文件名是用时间戳创建的。

我正在通过删除 10 个完美运行的 txt 文件来测试这个脚本,我重复了这个测试几次,log.txt 得到更新,并且 action.bat 也被正确调用。

但是,当我让这个 filewatcher 运行 4 小时并删除 10 个新的文本文件时,只有 log.txt 得到了更新,但 action.bat 文件没有被调用。

当我再次杀死 powershell 并重新启动脚本并使用 10 个新文件再次测试时,它工作正常。

为什么等待 4 小时后开始进程不会被调用?但日志语句在行动中更新

我的代码类似于net event filewatch.ps1

0 投票
1 回答
1858 浏览

powershell - Powershell 和 Excel - 如果 excel.exe 已在运行,则 Start-Process -Wait 会引发错误

当 excel.exe 进程已经存在时,Start-Process -Wait 将不起作用。当没有 excel.exe 实例正在运行时,cmdlet 可以正常工作。但是如果有一个实例已经在运行,它会抛出一个错误。我已经进行了一些故障排除,问题似乎是启动的进程“嵌套”到现有进程中。您会看到新的 excel.exe 将以单独的 PID 开始,但 1-2 秒后,此 PID 消失,新实例被封装到调用 cmdlet 之前运行的 excel.exe 实例的现有 PID 中。

有人对这种行为有正确的解释吗?
有人有解决方法吗?
欢迎所有信息!

谢谢!

0 投票
0 回答
905 浏览

java - JAVA getRuntime().exec 用于执行 powershell 脚本,Start-Process -wait 不再起作用

我正在尝试从我的 java 控制台应用程序执行一个 powershell 脚本,我能够使用以下命令使其工作:

在我的 powershell 脚本中,我有以下代码片段,它在循环中被调用,

如果我打开命令提示符并准确复制exec(...)命令中的内容,它运行良好,但是,当我在我的 Java 应用程序中运行它时,似乎-wait我的 powershell 脚本中的 被忽略了,下一行(即检查和删除日志)运行,我什至已经在我的powershell中添加了几秒钟的睡眠时间Start-Process,这有效,但我希望有更好的方法。

我得到的错误是在powershell脚本中(这仅在我从我的Java应用程序运行它时发生,-wait等待启动过程完成,然后在直接从命令提示符运行时继续......):

当我使用 Java 应用程序运行它时,为什么-wait我的 powershell 脚本中的 不起作用runtime().exec

0 投票
1 回答
84 浏览

powershell - 您好,我需要知道如何使用 cmdlet 启动 10 个记事本,然后停止所有 10 个进程(仅限 powershell)

启动进程记事本 | 停止进程

我几乎都知道该怎么做。

0 投票
1 回答
1979 浏览

powershell - 启动进程未运行

我一直在尝试重新编写以下 PowerShell 代码,因为我需要它等到完成后再继续,所以假设 Start-Process with -Wait 就足够了,但是我似乎无法让它真正运行......

可以工作的原始代码,但不会等到它完成后再继续执行脚本。

我的重写尝试没有按预期运行,到目前为止什么也没做......

0 投票
1 回答
14061 浏览

powershell - 使用 PowerShell 的 Start-Process cmdlet 传递变量参数

各位晚上好,

我正在使用命令行将参数传递给以下脚本中的变量,以便在我从该脚本中调用的另一个 ps1 中运行。每当我尝试从命令行传递参数时,我都会收到以下错误

Start-Process:找不到接受参数的位置参数

有人可以提供帮助吗?
感谢您的宝贵时间,非常感谢您的帮助。

0 投票
0 回答
1189 浏览

windows - 从 powershell 运行同一可执行文件的多个实例

我正在尝试使用 powershell 同时在本地系统上打开两个 msftpsrvr.exe(CoreFtp) 实例。我有两个 .bat 文件来处理它,但是一旦我在一个函数中运行它,它就会覆盖之前的那个。

我尝试使用带有 -Wait 的 Start-Process ,但在手动干预之前它不会继续下一步。

我尝试了工作流 RunScripts(在堆栈溢出时给出的解决方案),但没有成功。

当前输出是它打开两个具有 XXX-in-Reg.bat 凭据的 Coreftp 窗口(端口号和路径)

我几乎正在学习这种强大的语言,并希望我能清楚地说明我的问题。