小编Dmy*_*tro的帖子

使用参数和凭据从 PowerShell 启动 .ps1 脚本并使用变量获取输出

你好堆栈社区:)

我有一个简单的目标。我想从另一个 Powershell 脚本启动一些 PowerShell 脚本,但有 3 个条件:

  1. 我必须传递凭据(执行连接到具有特定用户的数据库)
  2. 它必须采取一些参数
  3. 我想将输出传递给一个变量

有一个类似的问题链接。但答案是使用文件作为在 2 个 PS 脚本之间进行通信的一种方式。我只是想避免访问冲突。@Update:主脚本将启动其他几个脚本。因此,如果要同时从多个用户执行执行,则文件解决方案可能会很棘手。

Script1.ps1是应该有字符串作为输出的脚本。(需要说明的是,这是一个虚构的脚本,真实的脚本有 150 行,所以我只是想举个例子)

param(  
[String]$DeviceName
)
#Some code that needs special credentials
$a = "Device is: " + $DeviceName
$a
Run Code Online (Sandbox Code Playgroud)

ExecuteScripts.ps1应该调用具有上述 3 个条件的那个

我尝试了多种解决方案。这一个例如:

$arguments = "C:\..\script1.ps1" + " -ClientName" + $DeviceName
$output = Start-Process powershell -ArgumentList $arguments -Credential $credentials
$output 
Run Code Online (Sandbox Code Playgroud)

我没有得到任何输出,我不能只是调用脚本

&C:\..\script1.ps1 -ClientName PCPC
Run Code Online (Sandbox Code Playgroud)

因为我无法将-Credential参数传递给它..

先感谢您!

powershell runas start-process

10
推荐指数
2
解决办法
4129
查看次数

标签 统计

powershell ×1

runas ×1

start-process ×1