繁体   English   中英

使用 Powershell 计划任务安装 Windows 安全补丁

[英]Install Windows Security Patches using Powershell scheduled task

我正在尝试使用 powershell 远程处理在远程计算机上安装 Windows 安全补丁。

当我在本地主机上运行脚本时,该脚本成功安装了 Windows 安全补丁。我已经设置了 loaclhost 和远程机器以进行远程处理,并且能够远程执行其他脚本。

使用计划任务:我使用以下脚本来启动计划任务:

param(
   [parameter(Mandatory = $true)]
   [string]$IPaddress
)
$PSModulePath = $env:PSModulePath
$SplittedModulePath = $PSModulePath.Split(";")
$ModulePath = $SplittedModulePath[0]
$secpasswd = ConvertTo-SecureString "Pass@12345678" -AsPlainText -Force
$cred = New-Object System.Management.Automation.PSCredential ("Admin02", $secpasswd)
#Create a Session. Replace host name with the host name of the remote machine.
$Session = New-PSSession -ComputerName $IPaddress -Credential $cred
$User= "Admin02"
$Action= New-ScheduledTaskAction -Execute "PowerShell.exe" -Argument "$env:ALLUSERSPROFILE\Install-WindowsUpdate.ps1"
$Trigger= New-ScheduledTaskTrigger -At 5:05am -Once
Invoke-Command -Session $Session -ScriptBlock { Register-ScheduledTask -TaskName "Install-Updates" -User $Using:User -Action $Using:Action -Trigger $Using:Trigger -RunLevel Highest –Force }

我已将以下脚本复制到目标机器上的 $env:ALLUSERSPROFILE 路径下

Install-Module -Name PSWindowsUpdate -RequiredVersion 2.1.0.1 -Force
Import-Module PSWindowsUpdate -Force
Get-WindowsUpdate -install -acceptall

在我安排任务后什么也没有发生。我做错了什么?

在您的 Register-ScheduledTask 命令中,您指定了运行命令的用户 (Admin02) 但没有密码,我敢打赌 TaskScheduler 无法启动该任务,因为它没有以指定用户身份启动它的凭据。 尝试:

$PlainPass = "Pass@12345678"    
Invoke-Command -Session $Session -ScriptBlock { Register-ScheduledTask -TaskName "Install-Updates" -User $Using:User -password $Using:PlainPass -Action $Using:Action -Trigger $Using:Trigger -RunLevel Highest –Force }

不幸的是,Register-ScheduledTask 似乎需要一个普通的、不安全的密码字符串。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM