Win32Shutdown通用失败



我正在整理一个脚本,该脚本将注销已处于断开连接状态的VDI会话超过10小时。我已经把所有的东西都准备好了,除了最后一个障碍——实际上是强迫下线。

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参数应该允许远程注销,如果我有一个实时的PCoIP会话到VDI,我试图关闭,但在断开连接的状态下不工作。
谁能给我指个正确的方向?

仍然不完全确定为什么第一个脚本是给出一个错误,但我转而使用VMWare视图的内置PowerCLI snapin产生相同的结果-只是更快,更有效。

get-remotesession -state "Disconnected" | Where-Object {($_.duration -match 'Day' -or $_.duration -match 'dd hours')} | Send-SessionLogoff

这将查询地平线视图服务器的任何会话与"断开连接状态",然后它将过滤掉任何对象的生命周期小于10小时,并注销任何剩下的。

这需要加载VMware View PowerCLI PSSnippets并连接到您的视图连接断开

相关内容

  • 没有找到相关文章

最新更新