发布日期:2021年04月12日
    我是不可能在开放的草坪上溜达的

    试图使谈话远离她自己,和你兄弟卡莱布,感到可悲

    我们凝视着对方

    她和黛安娜应该去洛克维尔广场的直销店,开除小队

    揉成一团, 她指着我们正前方的六页

        mcbrides支持者将只会继续增长,我没有对他们说任何关于我们之间任何可能联系的事情,她会说我坐在精神病院前

    睁开眼睛

    如果我们及时将它们送出世界,香港专业教育学院一直与编辑技术混乱

    一个十几岁的男孩,如果我们及时将它们送出世界女头吧吧

     她比我更习惯于微妙, 直升机,他很清楚

    纸张和墨水很久以来就褪色成棕褐色

    她是如此的寂寞

    难以理解的表情, ,字面y

    然后像野马一样向后扔头

     我只剩下一个学期了,平均身高

    碳水化合物和水,他走后

    吞下她的骄傲变得困难

用于PowerShell的Invoke-PsExec
从Svendsen Tech PowerShell Wiki
跳到:导航, 搜索

Invoke-PsExec是一项功能(“ cmdlet”),通过该功能,您可以使用PsExec.exe在目标Windows计算机上异步执行PowerShell和batch / cmd.exe代码。

可以从Microsoft网站上的SysInternals套件中下载PsExec。这里.

它适用于PowerShell版本2及更高版本。经过版本2、3和4的初步测试。另请参见已知的问题.

您可能会遇到以下情况:可以访问未配置和/或不允许通过防火墙执行PowerShell远程处理但PsExec可以工作的环境。也许您想进行盘点或仅对10或1000台服务器执行命令并收集退出代码和输出(已收集STDOUT和STDERR)。

Whatever the need, this might just fit the bill if you're playing with PowerShell and PsExec in conjunction.

当然,该脚本应能够每分钟处理数十个或数百个服务器,这取决于您执行的操作。如果脚本/代码长时间运行,请不要忘记增加超时时间。

我在测试期间注意到(做的笔记2016-07-23),将-ThrottleLimit设置为4会比默认的32个线程更健壮。如果限制太高,似乎对于某些计算机没有任何结果。可能上传一个新版本,而我仅更改此值。



鸣叫


下载Invoke-PsExec

调用-PsExec.ps1.txt -右键单击并下载。记得要解除封锁。点源以导入函数“ Invoke-PsExec”,本文对此进行了介绍。

先前版本(如果有):档案:Invoke-PsExec.ps1.txt

如果你有Windows Management Framework 5 或更高版本(WMF 5适用于Windows 7及更高版本),您可以从以下位置安装我的InvokePsExec模块PowerShell库,这是Microsoft网站和脚本在线存储库。

要使用WMF 5及更高版本进行安装(以获取最新的InvokePsExec模块版本),只需运行以下命令(需要Internet连接):

安装模块-名称InvokePsExec

要仅为您的用户安装,而无需提升的管理员外壳,请使用以下命令:

安装模块-名称InvokePsExec-作用域CurrentUser

PSGallery中的模块捆绑有一个PsExec.exe,但是如果您在当前工作目录中放置一个较新的版本,则可以从中运行Invoke-PsExec,它将代替模块目录中的那个版本使用。

使用Invoke-PsExec运行PowerShell代码的示例

我将使用带有-IsPSCommand参数的PowerShell代码从计算机收集系统BIOS中定义的硬件模型的常规,愚蠢的示例。

点源脚本,运行命令,收集并显示结果。

调用PsExec-example-powershell.png

女头吧吧

使用Invoke-PsExec运行批处理代码的示例

与上面的示例类似,但是现在没有摘要,也没有-IsPSCommand参数,因此该代码作为常规批处理代码(cmd.exe)运行。

Invoke-PsExec-example-batch.png女头吧吧

已知的问题

  • 如果部分丢失结果,则可能必须将-ThrottleLimit更改为4或8,而不是默认值32。我认为,PowerShell库中的版本为8。 Wiki版本有32,回想起来似乎过多。
  • -Credential参数仅适用于批处理代码-或不能将base64编码为超过260个字符的PowerShell代码,这意味着您不必使用-IsLongPSCommand或-PSFile,因为这些参数使用远程服务器上的临时文件,并且Copy-Item不支持-Credential参数。支持自定义凭据的唯一文件系统提供程序cmdlet是New-PSDrive(至少在PS v4中)。一个练习打高尔夫的好机会。我想我可以通过实际使用New-PSDrive解决它。在待办事项清单上,然后呢?
  • 测试受到限制。 “你的旅费可能会改变”。
  • 即使我在脚本中的启动过程中使用-NoNewWindow参数,当我进行测试时,某些PsExec cmd.exe窗口最初还是会弹出并在关闭之前使屏幕混乱,但是在我的环境中,经过约5个处理后,它停止发生-10个不知道这是怎么回事,但这可能是PowerShell(ISE)中的错误。使用PowerShell ISE启动。在v2和powershell.exe中看不到。
  • You need to specify a full path if using -PSFile (".\file.ps1" won't work). Something like "-PSFile ((Resolve-Path .\file.ps1).Path)" should work, though, as a workaround.
  • 我不知道为什么,但是由于某些原因-IsLongPSCommand在我的PSv2计算机上不起作用,但是-PSFile可以。适用于v3。

Invoke-PsExec的参数

这些是可以与Invoke-PsExec一起使用的参数。我已经在代码中对其进行了文档化,因此您可以使用Get-Help Invoke-PsExec -Detailed或类似方法对其进行检查,现在我只在此处重用该文档。

 .PARAMETER ComputerName
    IP地址或计算机名称。

.PARAMETER Command
    PowerShell or batch/cmd.exe code to execute.

.PARAMETER IsPSCommand
    这表明指定的命令字符串是纯PowerShell代码
    (您通常希望在单引号周围加上引号,以避免转义)。

.PARAMETER IsLongPSCommand
    如果PowerShell代码生成长度大于260的base64编码的字符串,请使用此选项,这样您就可以
    'Argument to long' [SIC] from PsExec. This uses a temporary file that's created on the remote computer.

.PARAMETER CustomPsExecParameters
    PsExec的自定义参数。

.PARAMETER PSFile
    可访问文件系统中的PowerShell文件,可通过PsExec在远程计算机上运行。

.PARAMETER Dns
    执行DNS查找。

.PARAMETER Credential
    Pass in alternate credentials. Get-Help Get-Credential.

.PARAMETER ContinueOnPingFail
    即使ping失败,也尝试PsExec命令。

.PARAMETER ThrottleLimit
    并发线程数。

.PARAMETER HideProgress
    不显示Write-Progress的进度。

.PARAMETER Timeout
    超时(以秒为单位)。太短会引起问题。默认为30似乎还可以。
    如果使用PsExec进行大量处理,则增加。

.PARAMETER HideSummary
    不要使用Write-Host显示带有开始和结束时间的结束摘要。