我是WSUS、Powershell和AutoIt的新手。我正在编写一个程序,只需点击几次即可批准多个更新(而不是每次更新和分组点击5次)。因此,我有一个Powershell脚本,可以搜索所有的计算机组和可用的更新。
脚本本身正在工作,我只是在AutoIt中调用它们时遇到了问题(正如我已经发现的,我必须导入模块UpdateServices,但我无法使其工作)。
这是我的AutoIt程序的一部分:
$sComSend = '-ExecutionPolicy ByPass import-module UpdateServices; ' & $sScript & 'Search_Updates.ps1 -FilePath ' & $sUpdateOutput
ShellExecuteWait("powershell.exe", $sComSend)
但这行不通。另一个尝试是:
$sComSend = 'powershell.exe import-module UpdateServices; "-ExecutionPolicy ByPass ' & $sScript & 'Search_Updates.ps1 -FilePath ' & $sUpdateOutput & '"'
RunWait(@ComSpec & " /c " & $sComSend, "", @SW_SHOW , $stdout_child)
但这也没有奏效。老实说,在第二个例子中,我甚至不知道这些参数到底是什么意思。有人看到我的错误了吗?
谢谢:-)
我建议它保持简单。
创建一个名为"myStuff.ps1"的新powershell文件,并在其中放入:
param([string]$FilePath)
Import-Module UpdateServices
Write-Host "FilePath = $FilePath"
完成后,只需调用它:
$fileLocation = "C:myAbsolutePathmyStuff.ps1"
$arguments = '-FilePath "C:Testing one two three"'
$commandLine = '-WindowStyle Normal -NoExit -NoLogo -NoProfile -Command & "' & $fileLocation & '" ' & $arguments
Run($commandLine, @SystemDir, @SW_SHOW , $stdout_child)