问题标签 [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.
powershell - 远程计算机上的 Powershell Start-Process msiexec 无法正常工作
由于某种原因,在远程机器上通过调用命令运行时,Start-Process msiexec 将无法工作。我查了一下,虽然有些人建议使用 psiexec,但我看到很多人使用普通的旧调用命令在远程机器上启动 msi 安装程序。
这是我目前正在使用的代码:
我使用相同的方法使用 intallutil 远程安装服务并且它有效。在目标机器上启用脚本以及远程处理,因此所有帐户都应该工作。两台计算机都有相同的凭据,但我仍然尝试将凭据添加到调用命令和 pssession。我在本地测试了代码并且安装工作正常。远程它没有,也没有任何错误。我可以在 taskmanager 中的目标机器上看到 msiexec 已启动,但没有任何反应。我什至尝试禁用防火墙,但仍然没有。我尝试了 & 运算符来启动 msiexec,但仍然没有。
不知道我还能尝试什么。
powershell - Powershell 在 PSSession 中使用 Start-Process 打开记事本
我在远程计算机上创建了一个 pssession 并输入了该属性。在该会话中,我使用 start-process 启动记事本。我可以确认记事本正在使用 get-process 命令以及远程计算机中的 taskmgr 运行。但是,该过程的 GUI 方面没有显示。这是我一直在使用的序列:
该进程正在运行,但是当 RDP 发送到盒子时,记事本没有打开。如果我从服务器打开记事本,则会开始一个新的记事本进程。我也尝试过使用这样的动词参数:
结果相同...进程开始,但没有记事本显示。我在远程进入盒子(但从我的本地主机发出)以及远程进入服务器之前尝试过这个。
powershell - 如何在powershell中将参数传递给批处理
我的 PowerShell 脚本有问题。我正在尝试检查收件箱中收到的电子邮件。当一封电子邮件到达收件箱时,脚本会调用一个批处理文件,该文件将收到的电子邮件的一些数据保存在数据库中。当我只使用字符串(测试)调用批处理文件时,一切正常,但是当我尝试使用需要保存的真实信息更改参数之一时,不会调用批处理文件。这是我的代码。
现在,如果我改变
经过
看起来没有调用批处理文件(我看到的最后一件事是日志,但不是我在数据库中的数据)。怎么了?
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。如果您在远程桌面到测试机器后运行此命令,它会。有人知道根本原因和解决方法吗?谢谢和问候, 京飞
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
c# - 从 C# 运行 dos 命令行?
我正在尝试从命令行提示符运行此命令:
当我在命令行控制台中键入它时,它可以完美运行。
然而,当我试图让它在 C# 应用程序中工作时,它失败了。我尝试了以下操作,但似乎上面的命令没有以某种方式执行:
任何人都知道如何改变它来工作?谢谢。
powershell - 带空格的启动进程 powershell
我已经做了很长时间了,到了让我非常沮丧的地步。我希望有人能指出我正确的方向。
我需要为 6 个特定数据库运行 mysqldump。我需要每个产卵在最后一个完成后运行。它不应同时运行所有命令。它需要等待。
我试过这个:
我试过这个:
如何执行命令,尤其是将输出重定向到文件系统上的文件的命令?
谢谢你。
string - PowerShell Start-Process 丢失作为字符串传递给函数的数字的精度
我有一些编辑注册表的代码,所以它需要以管理员身份运行。为此,我从正在运行的 PowerShell 脚本启动一个新的 PowerShell 进程,并传入部分注册表项路径,该路径恰好是版本号,例如“12.0”。新 PowerShell 进程中的函数将字符串接收为“12”,而不是“12.0”,因此我收到了找不到注册表项的错误。
我创建了一个小样本 powershell 脚本来重现该问题。这是片段:
在这里,我硬编码了“12.0”,但实际上我想传入一个变量。
关于我做错了什么的任何想法?提前致谢。
string - PowerShell 使用 Start-Process 在脚本块中执行一个函数会用双引号做一些奇怪的事情
我有一个编辑注册表的 PowerShell 脚本,因此它需要以管理员身份运行。为此,我从正在运行的 PowerShell 脚本启动一个新的 PowerShell 进程,并使用其中包含函数的脚本块传入部分注册表项路径。当我在该函数中使用双引号时,PowerShell 会尝试将它们解释为命令,而不是字符串。如果我使用单引号,那么一切正常。
我创建了一个简单的示例 powershell 脚本来重现该问题。这是片段:
所以在新的 PowerShell 进程中,它会首先在脚本块中定义代码,然后调用 Test 方法,它会产生这个错误:
This :术语“This”未被识别为 cmdlet、函数、脚本文件或可运行程序的名称。检查名称的拼写,或者如果包含路径,请验证路径是否正确并重试。
因此,它试图将字符串视为逗号,就好像我刚刚This is a string
在脚本的新行中自己键入一样。
如果我换行
到
该脚本按预期工作并简单地输出字符串This is a string
。
我注意到的另一个奇怪问题是,如果我不使用变量而只使用:
然后它在单独的行上输出每个单词,如下所示:
这
是
一种
细绳
但如果我使用这样的单引号:
然后它按预期在一行上输出整个句子。
有人知道为什么 PowerShell 在这些情况下表现异常吗?
回答
因此,正如 TessellatingHeckler 所提到的,解决方案是将任何双引号括在双引号、单引号中,或者您可以使用括号。
所以在我的例子中,你会改变:
对此:
或这个:
或这个:
如果您想评估字符串中的变量(即查看变量的值),那么您必须使用双双引号方法:
仍然不确定这是错误还是设计使然,但至少我们有一个解决方法,因为这解决了我上面描述的两个问题。
powershell - Powershell打开带有空格的文件路径
我是我的 PS 脚本,我希望能够通过执行以下操作在另一个 PS 实例中运行另一个脚本:
destruct.ps1
与此脚本位于同一文件夹中。
但是,在包含空格 () 的位置运行此脚本时,"C:\My Scripts\"
我将收到以下错误:
术语“C:\My”未被识别为 cmdlet、函数、可运行程序或脚本文件。验证术语并重试。
我知道通过使用'&'
带有 Invoke-Expression 方法的方法解决了这个问题,但是使用 start-process 方法我怎么能做到这一点?