ラボの回答キー : PowerShell を使用したジョブ管理

演習 1: ジョブの開始と管理

タスク 1: Windows PowerShell リモート ジョブを開始する

  1. LON-CL1Adatum\Administrator として、パスワード Pa55w.rd を使用してサインインしていることを確かめます。
  2. [スタート] を選択して、「powersh」と入力します。
  3. 結果の一覧で、 [Windows PowerShell] を右クリックするか、またはそのコンテキスト メニューをアクティブにして、 [管理者として実行] を選択します。
  4. 物理ネットワーク アダプターの一覧を LON-DC1 および LON-SVR1 から取得する Windows PowerShell リモート ジョブを開始するには、次のコマンドを入力して、Enter キーを押します。

    Invoke-Command –ScriptBlock { Get-NetAdapter –Physical } –ComputerName LON-DC1,LON-SVR1 –AsJob –JobName RemoteNetAdapt
    
  5. サーバー メッセージ ブロック (SMB) 共有の一覧を LON-DC1 および LON-SVR1 から取得する Windows PowerShell リモート ジョブを開始するには、次のコマンドを入力して、Enter キーを押します。

    Invoke-Command –ScriptBlock { Get-SMBShare } –ComputerName LON-DC1,LON-SVR1 –AsJob –JobName RemoteShares
    
  6. Win32_Volume クラスのすべてのインスタンスを Active Directory Domain Services (AD DS) 内のすべてのコンピューターから取得する Windows PowerShell リモート ジョブを開始するには、次のコマンドを入力して、Enter キーを押します。

    Enable-PSRemoting –SkipNetworkProfileCheck –Force
    Invoke-Command –ScriptBlock { Get-CimInstance –ClassName Win32_Volume } –ComputerName (Get-ADComputer –Filter * | Select –Expand Name) –AsJob –JobName RemoteDisks
    

注: PowerShell リモート処理を使用して接続するには、LON-CL1 で PowerShell リモート処理を有効にする必要があります。Windows 10 では既定で無効になっています。 RemoteDisk では、LON-CL1 を含むすべてのドメイン コンピューターを対象とします。

注: ドメイン内の一部のコンピューターがオンラインでない可能性があるため、このジョブは正常に終了しない場合があります。 これは通常の動作です。

タスク 2: ローカル ジョブを開始する

  1. セキュリティ イベント ログからすべてのエントリを取得するローカル ジョブを開始するには、次のコマンドを入力して、Enter キーを押します。

    Start-Job –ScriptBlock { Get-EventLog –LogName Security } –Name LocalSecurity
    
  2. 100 件のディレクトリの一覧を生成するローカル ジョブを開始するには、次のコマンドを入力して、Enter キーを押します。

    Start-Job –ScriptBlock { 1..100 | ForEach-Object { Dir C:\ -Recurse } } –Name LocalDir
    

注: この操作は完了するまで時間がかかる場合があります。 完了するまで待たないでください。 次のタスクに進みます。

タスク 3: ジョブの状態を確認して管理する

  1. LON-CL1Adatum\Administrator として、パスワード Pa55w.rd を使用して確実にサインインします。
  2. 実行中のジョブの一覧を表示するには、次のコマンドを入力して、Enter キーを押します。

    Get-Job
    
  3. 名前が remote で始まる実行中のジョブの一覧を表示するには、次のコマンドを入力して、Enter キーを押します。

    Get-Job –Name Remote*
    
  4. LocalDir ジョブを停止するには、次のコマンドを入力して、Enter キーを押します。

    Stop-Job –Name LocalDir
    
  5. 状態が [実行中] であるジョブが存在しなくなるまで Get-Job を実行します。
  6. RemoteNetAdapt ジョブの結果を受け取るには、次のコマンドを入力して、Enter キーを押します。

    Receive-Job –Name RemoteNetAdapt
    
  7. RemoteDisks ジョブの結果を受け取るには、次のコマンドを入力して、Enter キーを押します。

    Get-Job –Name RemoteDisks –IncludeChildJob | Receive-Job
    

演習 2: スケジュールされたジョブの作成

タスク 1: ジョブ オプションとジョブ トリガーを作成する

  1. LON-CL1Adatum\Administrator として、パスワード Pa55w.rd を使用してサインインしていることを確かめます。
  2. 新しいジョブ オプションを作成するには、次のコマンドを入力して、Enter キーを押します。

    $option = New-ScheduledJobOption –WakeToRun -RunElevated
    
  3. 新しいジョブ トリガーを作成するには、次のコマンドを入力して、Enter キーを押します。

    $trigger1 = New-JobTrigger –Once –At (Get-Date).AddMinutes(5)
    

タスク 2: スケジュールされたジョブを作成し、結果を取得する

  1. ジョブを登録するには、次のコマンドを入力してから、Enter キーを押します。

    Register-ScheduledJob –ScheduledJobOption $option `
    –Trigger $trigger1 `
    –ScriptBlock { Get-EventLog –LogName Security } `
    –Name LocalSecurityLog
    
  2. ジョブ トリガーの一覧を表示するには、次のコマンドを入力して、Enter キーを押します。

    Get-ScheduledJob –Name LocalSecurityLog | 
    Select –Expand JobTriggers 
    
  3. 表示される時間に注目し、手順 2 の出力で返された時間が経過するまで待機します。
  4. ジョブの一覧を表示するには、次のコマンドを入力して、Enter キーを押します。

    Get-Job
    
  5. ジョブの結果を受け取るには、LocalSecurityLog ジョブを登録してから 5 分経過するのを待ってから、次のコマンドを入力して、Enter キーを押します。

    Receive-Job –Name LocalSecurityLog
    

注: 出力がログ エントリの一覧で構成されていることを確認します。

タスク 3: スケジュールされたタスクとして Windows PowerShell スクリプトを使用する

  1. コンソール セッションを LON-DC1 に切り替え、必要に応じてパスワード Pa55w.rd を使用して Adatum\Administrator として LON-DC1 にサインインします。
  2. LON-DC1サーバー マネージャーで、 [ツール] を選択し、次に [Active Directory ユーザーとコンピューター] を選択します。
  3. [Active Directory ユーザーとコンピューター] のコンソール ツリーで、Adatum.com を選択して展開し、次に [マネージャー] を選択します。
  4. [マネージャー] の詳細ウィンドウで、いずれかのユーザー アカウント (Adam Hobbsなど) を選択します。 アカウントを右クリックするか、そのコンテキスト メニューをアクティブにしてから、 [アカウントを無効にする] を選択します。
  5. 無効にしたユーザーをダブルクリックするか、それを選択して Enter キーを押します。
  6. [所属するグループ] タブを選択し、ユーザーがマネージャー セキュリティ グループのメンバーであることを確認します。
  7. [OK] を選択し、次に [Active Directory ユーザーとコンピューター] を最小化します。
  8. [スタート] を選択し、「タスク スケジューラ」と入力して、[タスク スケジューラ] を選択します。
  9. [タスク スケジューラ] のコンソール ツリーで、 [タスク スケジューラ (ローカル)] を右クリックするか、そのコンテキスト メニューをアクティブにしてから、 [タスクの作成] を選択します。
  10. [タスクの作成] ウィンドウの [全般] タブにある [名前] および [説明] ボックスに、「無効化されたユーザーをセキュリティ グループから削除する」と入力します。
  11. [セキュリティ オプション] セクションで、 [ユーザーがログオンしているかどうかにかかわらず実行する] を選択し、次に [最上位の特権で実行する] チェック ボックスをオンにします。
  12. [トリガー] タブで、 [新規] を選択します。
  13. [新しいトリガー] ウィンドウの [設定][毎日] を選択し、 [開始] 時刻ボックスで、時刻を現在の時刻から 5 分後に変更し、 [OK] を選択します。

    注: [タスク スケジューラ] ポップアップ ウィンドウが表示されたら、 [OK] を選択します。

  14. [操作] タブで [新規] を選択します。
  15. [新しい操作] ウィンドウで、[プログラム/スクリプト] ボックスに「PowerShell.exe」と入力します。
  16. [引数の追加 (オプション)] ボックスに「 -ExecutionPolicy Bypass E:\Labfiles\\Mod11\DeleteDisabledUserManagersGroup.ps1」と入力し、 [OK] を選択します。次に、ポップアップ ウィンドウで [はい] を選択します。
  17. [条件] タブでは、項目を確認しますが、変更はしません。
  18. [設定] タブの [タスクが既に実行中の場合に適用される規則] のドロップダウン リストで、 [既存のインスタンスを停止する] を選択し、次に [OK] を選択します。
  19. [タスク スケジューラ] の資格情報ポップアップ ウィンドウで、[パスワード] ボックスに「Pa55w.rd」と入力し、次に [OK] を選択します。
  20. [タスク スケジューラ] で、 [タスク スケジューラ ライブラリ] を選択し、次に詳細ウィンドウで [Managers セキュリティ グループから、無効にされたユーザーを削除する] を選択します。
  21. 詳細ウィンドウで、 [履歴] タブを選択します。5 分が経過したら、 [操作] ウィンドウで [最新の情報に更新] を選択します。 [タスクのカテゴリ][タスクが完了しました] である項目が表示されるのがわかります。
  22. [Active Directory ユーザーとコンピューター] を最大化します。
  23. 無効にしたユーザーをダブルクリックするか、それを選択して Enter キーを押します。
  24. [所属するグループ] タブを選択します。ユーザーは、マネージャー セキュリティ グループのメンバーではなくなっています。