Создание запланированного задания на удаленной машине с powershell - PullRequest
0 голосов
/ 12 сентября 2018

У меня возникла проблема, связанная с тем, что при попытке создать запланированное задание на удаленной машине в моем домене возникает ошибка «Отказано в доступе». Странно то, что когда я использую кнопку «Новая вкладка Remote Powershell» в powershell и запускаю свой код, она работает безупречно. Однако я не могу воспроизвести это, выполнив скрипт powershell в обычном режиме. У меня есть учетные данные администратора домена, которые я использую для создания сеанса с удаленной машиной, но это не имеет значения. Есть ли способ репликации разрешений, которые я, кажется, получаю при использовании опции удаленного powershell?

function Install {
$hostname = Read-Host -Prompt "Enter hostname" 

echo 'Testing connection...'

If(!(Test-Connection -ComputerName $hostname -Count 1 -quiet)){
echo "`n"
echo 'There was an issue connecting to this computer.'
pause
Install
}

echo 'Connection successful!'

Get-Service -Name WinRM -ComputerName $hostname | Start-Service

$cd = Convert-Path .

Copy-Item -Path "$cd\Install.bat" -Destination "\\$hostname\C$\Install.bat"

New-PSSession -ComputerName $hostname -Credential *

$gettime = (Get-Date).AddMinutes(1)
$run = $gettime.ToString('HH:mm')

$action = New-ScheduledTaskAction -Execute 'C:\Test'
$trigger = New-ScheduledTaskTrigger -Once -At $run
$principal = New-ScheduledTaskPrincipal -GroupID "BUILTIN\Administrators" -RunLevel Highest

Register-ScheduledTask -Action $action -Trigger $trigger -Principal $principal -TaskName "Install" -Description "Test"

pause
}

Install

1 Ответ

0 голосов
/ 12 сентября 2018

Каково было намерение New-PSSession -ComputerName $hostname -Credential * в сценарии?

Если вы пытаетесь создать запланированные задачи на удаленном компьютере, создайте сценарий для локального компьютера, как только он будет работать для локального компьютера, а затем введитеэто внутри Scriptblock и вызывается с помощью Invoke-Command

$Credes = Get-Credential
Invoke-Command -ComputerName $hostname -Credential $Credes -Scriptblock {
    $action = New-ScheduledTaskAction -Execute 'C:\Test'
    $trigger = New-ScheduledTaskTrigger -Once -At $run
    $principal = New-ScheduledTaskPrincipal -GroupID "BUILTIN\Administrators" -RunLevel Highest

    Register-ScheduledTask -Action $action -Trigger $trigger -Principal $principal -    TaskName "Install" -Description "Test"
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...