0

私はstackoverflowの新規ユーザーですので、よろしくお願いします。これが私のシーンリオです:

  • Windows 7 Enterprise(x64)
  • 複数のユーザーがログインおよびログアウトします
  • 新しいユーザーのログイン時に前のユーザーをログオフする必要があります

現在のWindowsXP環境には、管理者以外のユーザーにログインして前のユーザーを起動するように求めるカスタムGina.dllがあります。これは、Windows 7の「高速ユーザー切り替え」で実現できますが、アプリケーションの複数のインスタンスが開いたままになり、問題が発生します。また、複数のユーザーが引き起こすパフォーマンスへの影響も懸念されます。私の調査では、クレデンシャルプロバイダーが必要になる可能性が高いことがわかりましたが、時間の制約があるため、クレデンシャルプロバイダーを時間内に構築することはできないと思います。

以前のユーザーをログオフするPowerShellスクリプトを(stackoverflowを使用して)正常に作成しました。次のようになります。

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

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

logoff $pc

これに伴う問題は、ユーザー名にusername1やuser2などの数字が含まれている場合、このスクリプトは数字を連結して失敗することです。「ディスク」セッションのセッションIDを選択してログオフするように、この小さなPowerShellスクリプトを編集するのを手伝ってもらえますか?

さらなるテスト結果:

  • 「ディスク」ユーザーがいない場合は、現在ログインしているユーザーからログオフします。これは良くありません、これにも何か助けはありますか?
4

1 に答える 1

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]

  }
}
于 2012-12-04T19:29:00.337 に答える