A while back I posted my initial script to find users that are logged into a server and log off them remote. それは数年前のことですが、速度を向上させ、書式を改善し、もう少し柔軟性のある専用スイッチを追加するために、もう一度挑戦してみようと思いました。 最後に、この不格好で型破りな名前を、もっとPowershellが認めるものに変えたいと思いました。 この新しい関数をGet Logged In Usersと呼んでいます。
基本的な構造は、クエリ セッションを使用するため、変更されることはありません。 変更されたのは、特定のユーザーを指定したり、ユーザーがドメイン内でログオンしている場所を検索したりできるようになったことです。
Get Logged In Users Using Powershell
振り返ってみると、なぜ ActiveDirectory モジュールを追加して、管理者として実行するようにしたのかが分かりません。 それは単に、この機能を実行するために必要なものではなく、不要なものです。 しかし、Windows 10 マシンまたは Server 2016 以降の Powershell 5 で実行することを強くお勧めします。まあ、2020 年にいるのですから。
Parameters
-ComputerName
Description: この関数は、Powershell 5 で実行します。 確認したいComputerNameを指定します。 ComputerNameが指定されていない場合は、ローカルコンピュータをチェックします。
-UserName
Description: チェックするComputerNameを指定します。 指定されたユーザー名がマシンにログインしている場合、出力に表示します。
-LogOff
Description: logoffパラメータが指定された場合、そのユーザーをコンピュータからログオフさせます。
How To Run Get Logged In User Powershell Script
このスクリプトを実行するには、いくつかのことを行う必要があります。 まず第一に、実行ポリシーを RemoteSigned または bypass に設定する必要があります。
次に、スクリプトが関数であるため、ドットソースを作成する必要があります。 スクリプトをドットソース化するには、次のようにします:
- 上記のスクリプトをコピーして、任意の場所に保存してください。 この例では、C: \_Scripts フォルダに保存します。
- Within the Powershell Window type: . .\_ScriptsGet-LoggedInUser.ps1 – Note the two dots before the backslash.
Get Logged On Users On Remote Computers
私がこのスクリプトで最も気に入っている点は、リモートコンピュータに誰がログインしているかを得ることができる点です。 これにより、コンピュータに物理的にログインし、その方法を確認する必要性が軽減されます。 このPowershellスクリプトでは、リモートサーバーやリモートコンピュータに問い合わせることができるため、自動化が可能で、拡張性も高いです。 このスクリプトを使えば、1台のサーバーをチェックするのも、1,000台のサーバーをチェックするのも、実行する人にとっては同じ労力となります。
また、ドメイン内でユーザーがどこにログオンしているかを非常に簡単に見つけることができます。 繰り返し実行するマシンの数によっては、明らかに時間がかかりますが、実行することは可能です。
ErrorAction SilentlyContinue は、接続エラーを抑制し、きれいな出力を表示するために使用されます
このように、多くの IT 管理者がシステム管理の旅で遭遇する問題に対する迅速で簡単な解決策があります。 グループ ポリシーを使用することもできますし、GUI ツールを使用することもできますが、私はいつも Powershell で自分の手を汚したいと思っています
。