powershell脚本 - 启动Windows调度程序后的不同行为

时间:2012-09-19 10:01:16

标签: powershell powershell-v2.0 powershell-remoting

我有这个脚本来检查远程服务器上是否有映射磁盘。当我在命令行中运行它时,它完美地工作,从PowerGUI和ISE它完美地工作,但是当我在Windows任务调度程序中执行它时,我收到一条邮件消息(邮件发送部分脚本不包括在内),该磁盘不是映射 - 尽管磁盘已映射,但仍执行“else”。

if(Invoke-Command -ComputerName sdebt -ScriptBlock { Get-WmiObject win32_logicaldisk -ComputerName sdebt -Filter "DeviceID = 'L:'"}) {
        Write-Host -ForegroundColor Green "L: is OK"} else {
                Write-Host -ForegroundColor Magenta "L: is NOT OK" 
                $subject = "CHYBA: Disk L is not mapped"
                $body += "Disk L is not mapped `r" }

谢谢。

1 个答案:

答案 0 :(得分:2)

可能与权限相关。

  • 当您从命令行/ ISE / PowerGUI运行它时,您正在使用您的凭据

  • 默认情况下,当您从计划任务运行它时,请使用系统凭据

  • 运行它

如果我是你,我会:

  1. 尝试使用您的凭据运行它,看看这是否有所作为。
  2. 尝试以最高权限运行
  3. 如果在1)和2)之后仍然失败,至少你知道这不是一个许可问题: - )