Powershell 无法创建2个计算机环境变量并通过计划任务执行另一个命令

Powershell 无法创建2个计算机环境变量并通过计划任务执行另一个命令,powershell,powershell-3.0,powershell-4.0,windows-task-scheduler,Powershell,Powershell 3.0,Powershell 4.0,Windows Task Scheduler,我想创建2个“machine”环境变量,并通过单个计划任务执行命令。计划任务应立即运行并删除自身。计划任务应以当前登录的桌面用户身份执行 以下是我需要执行的3项: [Environment]::SetEnvironmentVariable('AppA', (Get-StartApps -Name 'PowerShell (Tools1)').AppID, 'Machine') [Environment]::SetEnvironmentVariable('AppB', (Get-StartApps

我想创建2个“machine”环境变量,并通过单个计划任务执行命令。计划任务应立即运行并删除自身。计划任务应以当前登录的桌面用户身份执行

以下是我需要执行的3项:

[Environment]::SetEnvironmentVariable('AppA', (Get-StartApps -Name 'PowerShell (Tools1)').AppID, 'Machine')
[Environment]::SetEnvironmentVariable('AppB', (Get-StartApps -Name 'PowerShell (Tools2)').AppID, 'Machine')
Export-StartLayout -path 'C:\temp\Orig.xml'
注意:我不想依赖外部脚本;这就是为什么我为
$action

当我运行下面的代码时,几乎总是不会执行任何命令。很少会创建单个环境变量。如果不可能在一个任务中可靠地完成这项工作,我希望有人能告诉我如何在三个独立的任务中可靠地完成这项工作。似乎即使我做了3个独立的任务,结果仍然不一致/不可靠

代码:

$AppA=(获取StartApps-名称“Windows PowerShell ISE(x86)”).AppID
$AppB=(获取StartApps-名称“Outlook”).AppID
$action=New ScheduledTaskAction-执行“C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe”-参数“-noprofile-WindowsStyle hidden-命令([Environment]::SetEnvironmentVariable('AppA',$AppA,'Machine');[Environment]::SetEnvironmentVariable('AppB',$AppB,'Machine');Export startAyout-路径'C:\temp\Orig.xml')”
$trigger=newscheduledtasktrigger-one-At(获取日期).AddSeconds(4)$trigger.EndBoundary=(get date).AddSeconds(8).ToString('s'))
$principal=New ScheduledTaskPrincipal-UserId(获取WmiObject-Class win32\u computersystem)。UserName-LogonType serviceCount-RunLevel最高
$settings=New scheduledtasksettingset-StartWhenAvailable-DeleteExpiredTaskAfter 00:00:12
注册ScheduledTask-TaskName“2个环境变量和导出惊人布局”-操作$Action-触发器$Trigger-主体$Principal-设置$Settings

谢谢。我确实分别运行了每个命令。它们也会产生不一致的结果。。即使用户名变量在我的情况下每次都是可靠的。我不是在虚拟机上运行这个。我只是在猜测。。但它似乎与时间有关,我注意到在
$trigger
$settings
中更改秒数似乎会产生不同的效果;但是,我不确定它每次可靠工作的最佳时机是什么。