2
我正在放置一個腳本,它將註銷已處於斷開連接狀態10多個小時的VDI會話。除了最後一道關卡之外,我已經設法將所有內容都集中在一起 - 實際上是強制註銷。Win32Shutdown通用故障
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我試圖關閉,但不是當處於斷開狀態。
任何人都可以指向正確的方向嗎?
你見過這[MSDN文檔](https://msdn.microsoft.com/en-us/library/aa394058(v = vs.85).aspx)?它提到你需要'SE_SHUTDOWN_NAME',它也建議在同一個WMI類上嘗試'Win32ShutdownTracker'方法。因此,我個人首先嚐試使用'Enter-PSSession'遠程訪問主機,並列出我的權限('whoami/priv'),然後嘗試調用相同的wmi命令以查看是否以此方式工作。 – nohwnd
@nohwnd是的,這是我一直在努力的文檔。我有域管理員權限,所以不會是問題,我剛剛嘗試過'Win32ShutdownTracker'並且有同樣的問題。我試圖使用強制關機參數,因爲這看起來可以正常工作,桌面也會刷新,所以它的結果是一樣的(儘管速度稍慢) –
已經使用VMware View的內置「Powercli」替代命令解決了這個問題, 。 'get-remotesession -state「斷開連接」| Where-Object {($ _。duration -match'Day'-or $ _。duration -match'\ d \ d hours')} |發送-SessionLogoff' –