Windows 以管理员身份运行计划的PowerShell脚本

Windows 以管理员身份运行计划的PowerShell脚本,windows,powershell,Windows,Powershell,我使用admin创建了一个windows任务 通过执行Start Job直接调用它时,它工作正常。但是作业触发器在没有提升权限的情况下执行它。如何在windows(使用admin PowerShell)上创建任务/作业,其中-计划脚本本身也以admin运行。在Linux上想象:我编辑根crontab 这是我到目前为止尝试过的,没有任何效果(弹出窗口不显示): 继续我的评论,这里是一个完整的ST创作: 例如: $Action = New-ScheduledTaskAction -Execut

我使用admin创建了一个windows任务

通过执行
Start Job
直接调用它时,它工作正常。但是作业触发器在没有提升权限的情况下执行它。如何在windows(使用admin PowerShell)上创建任务/作业,其中-计划脚本本身也以admin运行。在Linux上想象:我编辑根crontab

这是我到目前为止尝试过的,没有任何效果(弹出窗口不显示):


继续我的评论,这里是一个完整的ST创作:

例如:

$Action   = New-ScheduledTaskAction -Execute 'C:\Windows\System32\WindowsPowerShellv1.0\powershell.exe' -Argument "-NonInteractive -NoLogo -NoProfile -File 'C:\scripts\PowerShellscript.ps1'" -WorkingDirectory 'C:\scripts'
$Trigger  = New-ScheduledTaskTrigger -RandomDelay (New-TimeSpan -Minutes 5) -AtStartup
$Settings = New-ScheduledTaskSettingsSet -DontStopOnIdleEnd -RestartInterval (New-TimeSpan -Minutes 1) -RestartCount 10 -StartWhenAvailable
$Settings.ExecutionTimeLimit = 'PT0S'

$SecurePassword = $password = Read-Host -AsSecureString
$UserName       = 'svc_account'
$Credentials    = New-Object System.Management.Automation.PSCredential -ArgumentList $UserName, $SecurePassword
$Password       = $Credentials.GetNetworkCredential().Password

$Task = New-ScheduledTask -Action $Action -Trigger $Trigger -Settings $Settings
$Task | Register-ScheduledTask -TaskName 'ScheduledTaskName' -User 'svc_account' -Password $Password
更新,根据我们的评论交流

事件,若要使用不同的标识/凭据运行,必须在创建时将它们传入

# Create a task to run at 11 pm every weekday
SCHTASKS /Create /SC weekly /D MON,TUE,WED,THU,FRI /TN MyDailyBackup /ST 23:00 /TR c:\backup.cmd /RU MyDomain\MyLogin /RP MyPassword

如果要以当前用户身份运行,则这是默认设置。

这不是PowerSHekk代码问题。这是一个如何设置计划任务的问题。在任务属性中,将计划任务设置为使用管理员凭据运行,并在需要时以最高权限运行。管理员凭据是通过
-Credential
标志传递的
PSCredential
对象,对吗?我是如何做到这一点的?创建和使用ST的PS是一个定义良好的用例,Microsoft和整个web都有很好的文档记录,显示了完整的示例。想想你在做什么,就像使用TS GUI一样。你说的一个字我都听不懂。在我告诉我们的人他们必须从一个单位跳到另一个单位之前,点击一些GUI,我宁愿使用teamviewer。我只想按计划以管理员身份运行powershell脚本。当任务进程由管理员用户执行时,为什么我必须创建一个credentials对象呢。也就是说,您试图通过PS执行的操作与通过GUI执行的操作相同。你甚至不需要PS来创建一个ST.Windows已经有了一个可执行文件几十年了
schtasks.exe
ST将仅使用任务中配置的标识和凭据运行。你的程序/.ps1/.vbs/.bat在做什么并不重要。计划任务仅在您为其设置时启动,或在您调用它时手动运行;无论任何程序或脚本如何,都要求ST运行。你不能在没有身份/信誉的情况下运行ST,句号
# Create a task to run at 11 pm every weekday
SCHTASKS /Create /SC weekly /D MON,TUE,WED,THU,FRI /TN MyDailyBackup /ST 23:00 /TR c:\backup.cmd /RU MyDomain\MyLogin /RP MyPassword