当将 PowerShell 脚本作为计划任务运行时,某些 Exchange 2010 数据库属性为空

当将 PowerShell 脚本作为计划任务运行时,某些 Exchange 2010 数据库属性为空

我编写了一个脚本,用于从 Exchange 2010 中检索数据库的 DatabaseSize。我为该脚本创建了一个新的 AD 用户,以计划任务的形式运行。我授予该用户 Exchange 组织的管理员权限(作为测试期间的最后手段)和 Exchange 计算机上的本地管理员权限。

当我通过启动 powershell(使用 runas /noprofile /user:domain\user powershell)手动运行此脚本时,一切正常。所有数据库属性都可用。当我将脚本作为计划任务运行时,许多属性都为空,包括我想要的属性:DatabaseSize。

我也尝试以域管理员帐户身份运行该脚本,结果相同。

这两个上下文中肯定存在一些不同,但我不知道是什么。

我的脚本:

Add-PSSnapin Microsoft.Exchange.Management.PowerShell.E2010

Write-EventLog 'Windows PowerShell' -source PowerShell -eventid 100 -message "Starting script"

$databases = get-mailboxdatabase -status

if($databases -ne $null)
{
    Write-EventLog 'Windows PowerShell' -source PowerShell -eventid 100 -message "Object created"

    $databasesize_text = $databases.databasesize.tomb().tostring()

    if($databasesize_text -ne $null)
    {
        $output = "echo "+$databasesize_text+":ok"

        Write-EventLog 'Windows PowerShell' -source PowerShell -eventid 100 -message "Path check"

        if(test-path "\\mon-01\prtgsensors\EXE\")
        {
            Write-EventLog 'Windows PowerShell' -source PowerShell -eventid 100 -message "Path valid"
            Set-Content \\mon-01\prtgsensors\EXE\ex-05_db_size.bat -value $output
        }

        Write-EventLog 'Windows PowerShell' -source PowerShell -eventid 100 -message "Exiting program"
    }
    else
    {
        Write-EventLog 'Windows PowerShell' -source PowerShell -eventid 100 -message "databasesize_text is empty. nothing to do"
    }
}
else
{
    Write-EventLog 'Windows PowerShell' -source PowerShell -eventid 100 -message "object not created. nothing to do"
}

exit 0

答案1

您创建了“基本任务”还是“新任务”?如果您直接在对话框的第一页上使用“新任务”,则可以为任务设置安全选项。

相关内容