gpt4 book ai didi

powershell v2 远程功能?

转载 作者:行者123 更新时间:2023-12-03 00:55:21 25 4
gpt4 key购买 nike

刚听了 Hansellminutes 播客。他与两位 Microsoft PS 开发人员进行了交谈。他们提到了 PS V2 远程处理功能。

我有一些基于 PS v1 的脚本。在远程命令或执行方面,我在本地和远程机器上安装了 PS。然后我使用 PsExec.exe 在远程推送 bat 以执行 PS 脚本。现在我正在考虑利用 PS V2。

对于我的简单问题,要获取本地文件列表,我可以使用以下代码:

$fs = Get-Item -Path $Path | Where { !$_.PSIsContainer ... } # more constrains in ...
if ( $fs -ne $null )
{
# continue to work on each file in the collection
...
}

从远程获取文件集合的等效命令是什么?我更喜欢取回类似的文件对象集合,以便我可以访问它们的属性。

第二个问题是如何使用外部应用程序远程执行命令?我以前尝试使用 WIM Process,但我无法让 WMI 类在 Windows 2008 服务器的情况下工作。然后我使用 PsExec.exe 将 bat 推送到远程执行 PS 脚本。它适用于案例。但是,我也必须在 Remote 上安装 PS 的问题。我要在另一个 Remote 上工作。我会尽量避免在 Remote 上安装 PS。我可以利用 PS V2 的优势在远程 Windows 上执行命令吗?新命令是什么?

顺便说一句,通常,我必须将用户名和密码传递给 Remote 。我想在 PS 中我也必须通过用户/密码。

最佳答案

您可以将上面的代码放在脚本文件中,然后使用 V2 远程处理在远程计算机上调用它,如下所示:

PS> Invoke-Command remotePCName -file c:\myscript.ps1

您需要以管理员权限运行(如果启用 UAC,则提升权限)才能使用远程处理。上面的命令会将脚本复制到远程机器,执行它并返回反序列化的对象。这些元素本质上是属性(property)袋。它们不是“事件”对象,并且在它们上设置属性(如 IsReadOnly)不会影响远程文件。如果要设置属性,请在远程 PC 上执行的脚本中进行。

如果您有一点脚本,则可以选择像这样使用脚本 block :
PS> Invoke-Command remotePCName { Get-Item C:\*.txt | Where {$_.IsReadOnly }

您可以使用脚本或脚本 block 在远程计算机上执行 native 命令 (EXE)。您只需要确保 EXE 在远程 PC 上可用。

关于凭据,如果您在域中并且您在远程计算机上拥有管理员权限,则您不需要传递凭据,因为您的默认凭据应该可以工作。如果您需要以特定用户身份运行,请在 Invoke-Command 上使用 -Credential 参数,如下所示:
PS> $cred = Get-Credential
PS> icm remotePCName { gci c:\windows\system32 -r *.sys } -credential $cred

关于powershell v2 远程功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1871138/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com