问题标签 [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 投票
5 回答
22017 浏览

powershell - 远程计算机上的 Powershell Start-Process msiexec 无法正常工作

由于某种原因,在远程机器上通过调用命令运行时,Start-Process msiexec 将无法工作。我查了一下,虽然有些人建议使用 psiexec,但我看到很多人使用普通的旧调用命令在远程机器上启动 msi 安装程序。

这是我目前正在使用的代码:

我使用相同的方法使用 intallutil 远程安装服务并且它有效。在目标机器上启用脚本以及远程处理,因此所有帐户都应该工作。两台计算机都有相同的凭据,但我仍然尝试将凭据添加到调用命令和 pssession。我在本地测试了代码并且安装工作正常。远程它没有,也没有任何错误。我可以在 taskmanager 中的目标机器上看到 msiexec 已启动,但没有任何反应。我什至尝试禁用防火墙,但仍然没有。我尝试了 & 运算符来启动 msiexec,但仍然没有。

不知道我还能尝试什么。

0 投票
4 回答
27613 浏览

powershell - Powershell 在 PSSession 中使用 Start-Process 打开记事本

我在远程计算机上创建了一个 pssession 并输入了该属性。在该会话中,我使用 start-process 启动记事本。我可以确认记事本正在使用 get-process 命令以及远程计算机中的 taskmgr 运行。但是,该过程的 GUI 方面没有显示。这是我一直在使用的序列:

该进程正在运行,但是当 RDP 发送到盒子时,记事本没有打开。如果我从服务器打开记事本,则会开始一个新的记事本进程。我也尝试过使用这样的动词参数:

结果相同...进程开始,但没有记事本显示。我在远程进入盒子(但从我的本地主机发出)以及远程进入服务器之前尝试过这个。

0 投票
1 回答
1780 浏览

powershell - 如何在powershell中将参数传递给批处理

我的 PowerShell 脚本有问题。我正在尝试检查收件箱中收到的电子邮件。当一封电子邮件到达收件箱时,脚本会调用一个批处理文件,该文件将收到的电子邮件的一些数据保存在数据库中。当我只使用字符串(测试)调用批处理文件时,一切正常,但是当我尝试使用需要保存的真实信息更改参数之一时,不会调用批处理文件。这是我的代码。

现在,如果我改变

经过

看起来没有调用批处理文件(我看到的最后一件事是日志,但不是我在数据库中的数据)。怎么了?

0 投票
1 回答
1269 浏览

powershell - 在远程会话中使用替代凭据启动进程

总而言之,我相信这种情况听起来确实很奇怪,但我确实需要你的帮助。首先我使用

Enter-PSSession -ComputerName myComputerName -Credential domain\user1

从我的开发机器远程到第三台机器。我收到类似[myComputername]: PS C:\Users\user\的提示。然后我尝试与另一个用户一起启动进程,比如 domain\user2。但是它失败了,尽管提供给 Start-Process 的可执行路径完全在 domain\user2 的控制下。我想这没有权限问题。例如

Start-Process -FilePath powershell -ArgumentList "-command“ & {我是谁}"" -Credential domain\user2 -WorkingDirectory workingdirectory

它不会打印域\用户 2。如果您在远程桌面到测试机器后运行此命令,它会。有人知道根本原因和解决方法吗?谢谢和问候, 京飞

0 投票
1 回答
20181 浏览

powershell - 从使用 runas 打开的命令提示符或作为计划任务启动脚本时,Start-Process -wait 不起作用

我有一个脚本,我想作为计划任务运行,但它没有做它应该做的事情。在继续之前,我正在尝试使用 Start-Process 和 -Wait 开关调用可执行文件。线是

Start-Process -FilePath "C:\Pfx Engagement\Admin\Utilities\Backup Restore\BackupRestoreUtil.exe" -ArgumentList "/f "$backup_directory"" -Wait

如果我从命令提示符调用它,即:

电源外壳 .\script.ps1

有用。它运行命令并等待它完成,然后再继续。该命令完成后必须运行的脚本还有更多内容。问题是,当它是计划任务时,它不会等待。进行一些基本故障排除后,我首先尝试使用名为“Scripts”的计划任务帐户打开一个带有 runas 的 cmd 窗口。所以我跑

runas /env /user:脚本 cmd

使用任务帐户打开命令提示符窗口。在该命令提示符下,我再次尝试“powershell .\script.ps1”,这一次,它没有等待。它运行命令并在命令完成之前立即继续。所以我认为这可能是“脚本”帐户的问题,直到我用 runas 管理员打开一个新的命令提示符

runas /env /user:管理员 cmd

当我从这个管理员命令提示符调用脚本时,-Wait 开关也被忽略,并且脚本在调用它后立即移动而不等待它完成。

奇怪的是,当我从管理员帐户的命令提示符调用它而不执行 runas 时,它可以工作。同一个账户,两个不同的结果。关于这里到底发生了什么的任何想法,同样重要的是,如何解决它?

操作系统是 Server 2008 R2,运行 powershell 3.0

0 投票
3 回答
31042 浏览

c# - 从 C# 运行 dos 命令行?

我正在尝试从命令行提示符运行此命令:

当我在命令行控制台中键入它时,它可以完美运行。

然而,当我试图让它在 C# 应用程序中工作时,它失败了。我尝试了以下操作,但似乎上面的命令没有以某种方式执行:

任何人都知道如何改变它来工作?谢谢。

0 投票
1 回答
1808 浏览

powershell - 带空格的启动进程 powershell

我已经做了很长时间了,到了让我非常沮丧的地步。我希望有人能指出我正确的方向。

我需要为 6 个特定数据库运行 mysqldump。我需要每个产卵在最后一个完成后运行。它不应同时运行所有命令。它需要等待。

我试过这个:

我试过这个:

如何执行命令,尤其是将输出重定向到文件系统上的文件的命令?

谢谢你。

0 投票
1 回答
350 浏览

string - PowerShell Start-Process 丢失作为字符串传递给函数的数字的精度

我有一些编辑注册表的代码,所以它需要以管理员身份运行。为此,我从正在运行的 PowerShell 脚本启动一个新的 PowerShell 进程,并传入部分注册表项路径,该路径恰好是版本号,例如“12.0”。新 PowerShell 进程中的函数将字符串接收为“12”,而不是“12.0”,因此我收到了找不到注册表项的错误。

我创建了一个小样本 powershell 脚本来重现该问题。这是片段:

在这里,我硬编码了“12.0”,但实际上我想传入一个变量。

关于我做错了什么的任何想法?提前致谢。

0 投票
1 回答
10773 浏览

string - PowerShell 使用 Start-Process 在脚本块中执行一个函数会用双引号做一些奇怪的事情

我有一个编辑注册表的 PowerShell 脚本,因此它需要以管理员身份运行。为此,我从正在运行的 PowerShell 脚本启动一个新的 PowerShell 进程,并使用其中包含函数的脚本块传入部分注册表项路径。当我在该函数中使用双引号时,PowerShell 会尝试将它们解释为命令,而不是字符串。如果我使用单引号,那么一切正常。

我创建了一个简单的示例 powershell 脚本来重现该问题。这是片段:

所以在新的 PowerShell 进程中,它会首先在脚本块中定义代码,然后调用 Test 方法,它会产生这个错误:

This :术语“This”未被识别为 cmdlet、函数、脚本文件或可运行程序的名称。检查名称的拼写,或者如果包含路径,请验证路径是否正确并重试。

因此,它试图将字符串视为逗号,就好像我刚刚This is a string在脚本的新行中自己键入一样。

如果我换行

该脚本按预期工作并简单地输出字符串This is a string

我注意到的另一个奇怪问题是,如果我不使用变量而只使用:

然后它在单独的行上输出每个单词,如下所示:

一种

细绳

但如果我使用这样的单引号:

然后它按预期在一行上输出整个句子。

有人知道为什么 PowerShell 在这些情况下表现异常吗?

回答

因此,正如 TessellatingHeckler 所提到的,解决方案是将任何双引号括在双引号、单引号中,或者您可以使用括号。

所以在我的例子中,你会改变:

对此:

或这个:

或这个:

如果您想评估字符串中的变量(即查看变量的值),那么您必须使用双双引号方法:

仍然不确定这是错误还是设计使然,但至少我们有一个解决方法,因为这解决了我上面描述的两个问题。

0 投票
5 回答
41087 浏览

powershell - Powershell打开带有空格的文件路径

我是我的 PS 脚本,我希望能够通过执行以下操作在另一个 PS 实例中运行另一个脚本:

destruct.ps1与此脚本位于同一文件夹中。

但是,在包含空格 () 的位置运行此脚本时,"C:\My Scripts\"我将收到以下错误:

术语“C:\My”未被识别为 cmdlet、函数、可运行程序或脚本文件。验证术语并重试。

我知道通过使用'&'带有 Invoke-Expression 方法的方法解决了这个问题,但是使用 start-process 方法我怎么能做到这一点?