我有这个脚本来检查远程服务器上是否有映射磁盘。当我在命令行中运行它时,它完美地工作,从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" }
谢谢。
答案 0 :(得分:2)
可能与权限相关。
当您从命令行/ ISE / PowerGUI运行它时,您正在使用您的凭据
默认情况下,当您从计划任务运行它时,请使用系统凭据
如果我是你,我会:
如果在1)和2)之后仍然失败,至少你知道这不是一个许可问题: - )