我有一个 Powershell 脚本来检测需要用户/密码才能访问它的网络服务器上的磁盘空间。
要获取此代码:
$password = get-content C:\creds.txt | convertto-securestring
$cred = new-object -typename System.Management.Automation.PSCredential -argumentlist "username",$password
Get-WmiObject -ErrorAction Stop Win32_LogicalDisk -ComputerName $deviceName -credential $cred -Filter "DeviceID='$darg'"
$deviceName
并且$darg
已经正确定义。
这在手动运行 Powershell 脚本时工作得很好。但是当我将它设置为 Windows 计划任务时,它会认为用户/密码不正确:
Get-WmiObject:访问被拒绝。(来自 HRESULT 的异常:0x80070005(E_ACCESS DENIED))
$disks = Get-WmiObject <<<< -ErrorAction Stop Win32_LogicalDisk -ComputerName $deviceName -credential $cred -Filter "DeviceID='$darg'" + CategoryInfo : NotSpecified: (:) [Get-WmiObject], Unauthorized AccessException + FullyQualifiedErrorId : System.UnauthorizedAccessException,Microsoft.PowerShell.Commands.GetWmiObjectCommand
为什么是这样?(该帐户是远程服务器上的本地用户。我尝试在 Schedule 界面上输入凭据,但它不允许我保存它,说登录无效;可能是由于是本地帐户)ServerName\LocalUser
在Windows Schedule UI,仍然给出不正确的登录错误。