小编Emp*_*LII的帖子

在C#中以编程方式在ScriptBlock中传递Parameter对象(PSCredential)

我试图以编程方式运行HPC cmdlet以更改远程计算机上的HPC安装凭据.如果在本地运行cmdlet,则非常简单:

Runspace rs = GetPowerShellRunspace();
rs.Open();

Pipeline pipeline = rs.CreatePipeline();
PSCredential credential = new PSCredential(domainAccount, newPassword);
Command cmd = new Command("Set-HpcClusterProperty");
cmd.Parameters.Add("InstallCredential", credential);

pipeline.Commands.Add(cmd);

Collection<PSObject> ret = pipeline.Invoke();
Run Code Online (Sandbox Code Playgroud)

但是,如果我想对远程PowerShell做同样的事情,我需要运行Invoke-Command并将凭证传递给Command内的ScriptBlock.我怎样才能做到这一点?它可能看起来像这样,除了我需要传递凭证作为绑定到ScriptBlock内的InstallCredential参数而不是字符串的对象:

Pipeline pipeline = rs.CreatePipeline();
PSCredential credential = new PSCredential(domainAccount, newPassword);

pipeline.Commands.AddScript(string.Format(
    CultureInfo.InvariantCulture,
    "Invoke-Command -ComputerName {0} -ScriptBlock {{ Set-HpcClusterProperty -InstallCredential {1} }}",
    nodeName,
    credential));

Collection<PSObject> ret = pipeline.Invoke();
Run Code Online (Sandbox Code Playgroud)

c# powershell hpc

2
推荐指数
1
解决办法
5261
查看次数

powershell函数仅在使用-and in if条件多次调用时执行一次

无论如何在powershell我有以下脚本

function ReturnTrue()
{
    write-host "ReturnTrue executed!"
    return $true
}

if (ReturnTrue -and ReturnTrue -and ReturnTrue)
{
    write-host "ReturnTrue should have executed 3 times"
}
Run Code Online (Sandbox Code Playgroud)

预期的输出是看"执行ReturnTrue!" 打印3次,但只打印一次.C#或Java中的类似代码将执行ReturnTrue()3次.这是怎么回事?

powershell

2
推荐指数
1
解决办法
755
查看次数

在不同的目录中合并相同名称的.txt文件?

我有一个文件夹,里面装满了过去日期的子文件夹(20120601例如),每个日期文件夹里面都有一个名为的文件test.txt,还有另一个名为的文件example.txt.如何将所有test.txt文件合并为一个?

我试图在Windows中执行此操作并可以访问Windows PowerShell和Windows命令处理器(cmd.exe).最好的方法是什么?

我的层次结构看起来像这样:

\Data
     \20120601
           test.txt
           example.txt
     \20120602
           test.txt
           example.txt
     \20120603
           test.txt
           example.txt
     \20120604
           test.txt
           example.txt
     \20120605
           test.txt
           example.txt
Run Code Online (Sandbox Code Playgroud)

我想它会是这样的

copy *\test.txt alltestfiles.txt
Run Code Online (Sandbox Code Playgroud)

那可能吗?你能为目录指定通配符吗?

powershell merge text command-prompt

2
推荐指数
1
解决办法
1759
查看次数

让PowerShell自动完成cli参数

假设我编写了一个简单的脚本,它$name 作为cli参数并打印出来.我知道当我调用脚本时它可以自动完成-name,但是是否可以为PowerShell提供一个值列表,从中自动完成分配给的值$name

powershell autocomplete

1
推荐指数
1
解决办法
185
查看次数

什么是bash或powershell中的>>模式?

如果`在bash或powershell中的命令中输入单个,它将进入显示>>在提示符上的模式.这种模式是什么,它用于什么?

我键入cd `而不是cd ~进入模式.似乎影响它的唯一输入是ctrl+ c来终止命令.我无法找到任何有关搜索bash手册页或参考手册的内容.

bash powershell

1
推荐指数
1
解决办法
95
查看次数

标签 统计

powershell ×5

autocomplete ×1

bash ×1

c# ×1

command-prompt ×1

hpc ×1

merge ×1

text ×1