【发布时间】:2016-02-27 05:53:49
【问题描述】:
我正在编写一个 PowerShell 脚本,用于在 Windows Server 2012 R2 上注册和取消注册计划任务。我对这条线特别有问题:
Unregister-ScheduledTask -TaskPath "\Sensei\"
(Sensei是这个项目的代号,是包含我关心的所有任务的文件夹的名称。)
当我从 ISE 或命令行运行该命令时,它运行良好。但是,当我从 .ps1 文件运行它时,它给了我一个彻头彻尾的令人困惑的错误:
Unregister-ScheduledTask : Cannot retrieve the dynamic parameters for the cmdlet. Cannot bind argument to parameter 'TypeName' because it is null.
At Z:\server_scripts\clean.ps1:12 char:5
+ Unregister-ScheduledTask -TaskPath "\Sensei\"
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidArgument: (:) [Unregister-ScheduledTask], ParameterBindingException
+ FullyQualifiedErrorId : GetDynamicParametersException,Unregister-ScheduledTask
据我所知,TypeName 不是Unregister-ScheduledTask 接受的参数,因此它必须来自 cmdlet 内部的某个位置。
有人知道是什么原因造成的吗?
编辑:有人要了整个剧本。因为没有其他需要注意的,所以我省略了它。
cd Z:\server_scripts
. .\variables.ps1
#Delete config files
del $SENSEIPATH\assets.cfg
del $SENSEIPATH\Web\Web.config
#Remove the virtual application
Remove-WebApplication -Site $IISSITE -Name "c"
#Clean out the scheduled tasks
Unregister-ScheduledTask -TaskPath "\Sensei\"
.\variables.ps1 只包含一些变量定义,例如$SENSEIPATH 或$IISSITE。我不能在这里发布它,但我保证没有什么花哨的。
【问题讨论】:
-
你能告诉我们脚本文件的全部内容吗?
-
当然,但我怀疑有什么有用的
-
你是如何运行 ps1 文件的。只是从 PowerShell 调用它?
-
听起来像是
Unregister-ScheduledTask中的DynamicParam块中的错误。也许它将斜杠解释为转义序列。你试过-TaskPath "\Sensei" -
@JohandeHaan “添加”是什么意思?该 cmdlet 由 Microsoft 创建
标签: windows powershell scheduled-tasks powershell-3.0