0

我是一位新用戶,因此請提前感謝您的幫助!這是我之情況:Windows 7憑證提供程序或登錄解決方案

  • Windows 7企業版(64位)
  • 多個用戶登錄和註銷
  • 需要在新用戶登錄

註銷先前的用戶在我們當前的Windows XP環境我們有一個自定義的Gina.dll,提示非管理員用戶登錄將引導前一個用戶。這可以通過Windows 7中的「快速用戶切換」實現,但會導致應用程序的多個實例處於打開狀態,並且會導致問題。我們也擔心多個用戶會造成的性能下降。在我的研究中,我發現最有可能需要證書提供者,但由於時間限制,我認爲我們無法及時建立證書提供者。

我已經成功地創建了一個PowerShell腳本(!與計算器的幫助下)將登錄以前的用戶了,它看起來像這樣:

$pc = qwinsta | select-string "Disc" | select-string -notmatch "services" 

$pc = $pc -replace "[^\d]","" 

logoff $pc 

這樣做的問題是,如果用戶名包含一個數字,如username1或user2,這個腳本連接數字,然後失敗。你能不能幫我修改這個小PowerShell腳本,以便它會選擇「光盤的會話ID」會話和註銷?

進一步的測試結果:

  • 如果沒有‘光盤’的用戶,它註銷當前用戶登錄這個心不是很好,任何幫助,以及
+0

此外,該計劃將在劇本上的每個日誌中運行這個作爲日誌, – ideq0

回答

0

你可以試試這個:?

$pc = qwinsta | select-string "Disc" | select-string -notmatch "services" 

if ($pc) 
{ 
    $pc = ($pc.tostring() -split ' +')[2]  
    logoff $pc 
} 

這樣就可以登錄關每個斷開的會話:

$pc = qwinsta | select-string "Disc" | select-string -notmatch "services" 

if ($pc) 
{ 
    $pc| % { 

    logoff ($_.tostring() -split ' +')[2] 

    } 
} 
+0

這提供了以下錯誤: 會話的用戶名沒有找到 謝謝! – ideq0

+0

@ ideq0立即嘗試。註銷命令不能使用用戶名,這樣我們就可以通過會話註銷。經過測試,它的工作原理。 –

+0

這工作很棒!謝謝!現在我必須用cert來簽署ps1文件,讓它在登錄時自動啓動。你是否對此有任何疑問?謝謝! – ideq0