powershell脚本-使用windows计划程序启动后的不同行为

powershell脚本-使用windows计划程序启动后的不同行为,powershell,powershell-2.0,powershell-remoting,Powershell,Powershell 2.0,Powershell Remoting,我有这个脚本来检查远程服务器上是否有映射磁盘。当我在命令行中运行它时,它工作得很好,从PowerGUI和ISE它工作得很好,但是当我在Windows任务调度器中调度它时,我会收到一条邮件消息(不包括脚本的邮件发送部分),该磁盘未映射-尽管磁盘已映射,但仍会执行“else” if(Invoke-Command -ComputerName sdebt -ScriptBlock { Get-WmiObject win32_logicaldisk -ComputerName sdebt -Filter

我有这个脚本来检查远程服务器上是否有映射磁盘。当我在命令行中运行它时,它工作得很好,从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" }

谢谢。

可能与权限有关。

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

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

如果我是你,我会:

  • 试着用你的凭据运行它,看看这是否会有所不同
  • 尝试以最高权限运行它

  • 如果1)和2)之后仍然失败,至少您确定这不是权限问题:-)

    当然。我认为在创建脚本时,我考虑了任务调度器中定义的不同凭据,但后来我忘记了:(为愚蠢的问题感到抱歉,谢谢!这是一个有效的问题…我很高兴我帮助了你:)