我正在编写一个脚本,该脚本将注销已处于断开状态超过 10 小时的 VDI 会话。除了最后一个障碍-实际上是强制注销之外,我已经设法将所有东西放在一起。
ForEach ($Desktop in $VDIlist)
{
$win32OS = Get-wmiobject win32_operatingsystem -ComputerName $desktop.'DNS Name' -EnableAllPrivileges
write-host "Shutting down host $Desktop."DNS Name""
$win32OS.Win32Shutdown(4)
}
这会导致以下错误。
Exception calling "Win32Shutdown" : "Generic failure "
At line:1 char:1
+ $win32OS.win32shutdown(4)
+ ~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [], MethodInvocationException
+ FullyQualifiedErrorId : WMIMethodException
当不使用任何参数
($win32os.win32shutdown()
)时,这似乎不会发生,但这也不会像我要求的那样强制注销。
据我所读,该-EnableAllPrivileges
参数应该允许远程注销,如果我与 VDI 有实时 PCoIP 会话,它确实可以工作,我试图关闭但在断开连接状态时不会。
谁能指出我正确的方向?