, . , psexec.exe .
, , .
powershell script:
param (
[string]$Computer = ($env:computername),
[string]$User = "",
[string]$Command,
[string]$Args
)
$script_task =
{
param (
[string]$User = "",
[string]$Command,
[string]$Args
)
$Action = New-ScheduledTaskAction βExecute $Command
if($Args.Length > 0) { $Action = New-ScheduledTaskAction βExecute $Command -Argument $Args}
$P = New-ScheduledTaskPrincipal -UserId $User -LogonType Interactive -ErrorAction Ignore
$S = New-ScheduledTaskSettingsSet -MultipleInstances Parallel -Hidden
$TASK = New-ScheduledTask -Action $Action -Settings $S -Principal $P
Unregister-ScheduledTask -TaskName 'TEMPTASK' -ErrorAction Ignore -Confirm:$false
Register-ScheduledTask -InputObject $TASK -TaskPath '\KD\' -TaskName 'TEMPTASK'
Get-ScheduledTask -TaskName 'TEMPTASK' -TaskPath '\KD\' | Start-ScheduledTask
Unregister-ScheduledTask -TaskName 'TEMPTASK' -ErrorAction Ignore -Confirm:$false
}
Invoke-Command -ComputerName $Computer -ScriptBlock $script_task -ArgumentList $User, $Command, $Args
:
file.ps1 -User USER_NAME -Command notepad.exe -Computer REMOTE_COMPUTER