2016年9月1日木曜日

【Windows10】【vbs】ログオン時、ログオフ時に確認スクリプト【bat】

■簡易手順
①Win+R
②gpedit.msc
③[ユーザーの構成]-[Windowsの設定]-[スクリプト(ログオン/ログオフ)]-[ログオフ]
④(Win10)[ユーザの構成-管理用テンプレート]-[システム]-[スクリプト]-[実行中のログオフ スクリプトの命令を表示する]

Win10での実施手順についてコメントをいただき、出来る事を確認しました。
何故かWindows7ではできるが、Windows10はできない。
■画像付き手順
  1. c:\vbs\ログオフ時スクリプト.vbsを作成し、以下の内容で保存。
    (パスやファイルの内容は適宜読み替えること。)

     MsgBox "本当に退社して大丈夫ですか?"  
  2. 「Winロゴ」キー+「R」キーを押下。
  3. 「gpedit.msc」を入力。
  4. [ユーザーの構成]-[Windowsの設定]-[スクリプト(ログオン/ログオフ)]と辿り、
    ログオフをダブルクリック。
  5. [追加]ボタン押下。
  6. 最初に作ったvbsを指定して、「開く」ボタン押下。
  7. [OK]ボタン押下。
  8. [OK]ボタン押下。
  9. (Win10のみ)[ユーザの構成]-[管理用テンプレート]-[システム]-[スクリプト]-[実行中のログオフ スクリプトの命令を表示する]の順に辿る。
  10. (Win10のみ)[未構成]を[有効]に変更し、[OK]ボタンを押下。
  11. ログオフやシャットダウンすると以下のようにメッセージボックスが表示され、
    OKが押下されるまで待つ。OKが押されると、ログオフ/シャットダウンされる。
Win7のログオフスクリプト
Win7のログオフスクリプト
Win10のログオフスクリプト
Win10のログオフスクリプト

Win7のログオフは上記のようにメッセージボックスが表示されるが、
Win7のシャットダウンスクリプトではメッセージボックスが表示されず、
以下の画面が延々と続く。裏でメッセージボックスが表示され、
OKが押されるのを待っていると思われる。

何故かWin10の場合、ログオフでも上記ようにメッセージボックスが表示されない。
なんでだ?

8 件のコメント:

  1. こんにちは。
    gpedit.mscで
    ユーザーの構成
    管理用テンプレート
    システム
    スクリプト
    実行中のログオフ スクリプトを表示する
    を「未構成→有効」に変更してみてください。

    Windows7では「未構成」で問題なく動きます。

    返信削除
  2. サイトの管理者です。
    貴重な情報ありがとうございます。
    試してみます。

    返信削除
    返信
    1. サイトの管理者です。
      仰る通りに実施して動きました。
      ありがとうございます!!
      ブログも更新したいと思います。

      削除
  3. こんにちは。
    先の投稿をした匿名の者です。
    動作してよかったです。

    「OK」を押さずに放置すると「10分」で続行されます。
    (スクリプトタイムアウトが10分のため)
    コンピュータの構成
    管理用テンプレート
    システム
    スクリプト
    スクリプトの実行時間・・・
    で時間は変更できます。

    実は自分でも出来なくて困ってたのですが、お役に立てるかなと思って投稿しました。

    返信削除
  4. こんにちは。
    上記と似たような事を実施したく、powershellのフォームを立ち上げようとしているのですが、フォームが立ち上がり次第、シャットダウンが続行され画面が消えてしまいます。 フォームからボタンをクリックしたら、シャットダウンが再開されるといった形にしたいのですが、何かアドバイス頂けますと幸いです。

    返信削除
  5. ブログ管理者です。win7で試しましたが、私の環境だとほぼ同じ手順で可能でした。以下の手順です。以下の手順と何か違います?

    1.以下のサイトでメッセージボックスを作ります。
    https://letspowershell.blogspot.com/2015/06/powershellmessagebox.html?m=1
    2.本ページと同じ手順で「ログオフのプロパティ」画面を出してpowershellのタブから作成したスクリプトを指定。その際に「windows powershellスクリプトを最初に実行」を指定。

    返信削除
    返信
    1. ご返信ありがとうございます。
      2.本ページと同じ手順で「ログオフのプロパティ」画面を出してpowershellのタブから作成したスクリプトを指定。その際に「windows powershellスクリプトを最初に実行」を指定。

      →powershellのタブではなく、スクリプトのタブの方でvbsファイルを設定しております。
      上記の設定の場合、スクリプトタブの方で設定していると感じたのですが、 powershellのタブの方に設定すべきなのでしょうか?

      また、もし可能でしたら違いを教えて頂けますでしょうか?
      ネットを調べてみましたが情報が見当たらず・・

      削除
    2. サイトの管理者です。

      ①vbsを挟むのでしたら、仰る通り「スクリプト」タブ
      で合っていると思います。

      ②帰宅したので自宅PCで試してみました。
      私の環境(Win10)では上手く行ってます。

      vbsを使っているとのことですが、
      処理順は以下で合ってます?

      gpedit.msc ⇒ vbs ⇒ powershell(Formを表示)

      こちらで試したvbs、ps1は以下です。
      (ファイル名と中身はテキトーです。)

      以下のスクリプトの場合、サインアウトをすると、
      フォームが表示されたままになり、
      OKボタンを押すまでWindowsが待ち(サインアウトの
      途中の状態で止まる)になります。

      私が把握できてないだけかもしれませんが、
      以下とは全然別です?

      あとOSはWin10でしょうか?別の方の指摘通りWin10のみ
      別の設定(上述の手順10.)が必要です。

      ログオフ時スクリプト.vbs==================================
      Dim wsh
      Set wsh = WScript.CreateObject("WScript.Shell")
      call wsh.Run ("cmd /c powershell -file C:\vbs\2.ps1",0,True)
      ==========================================================

      2.ps1=====================================================
      # アセンブリの読み込み
      Add-Type -Assembly System.Windows.Forms

      # メッセージボックスの表示
      [System.Windows.Forms.MessageBox]::Show("ここにメッセージ", "タイトル")
      ==========================================================

      ③「スクリプト」「PowerShell」両者のタブの違いは分かりません。
      確かに情報は少ないですね。Windowsサーバー管理者とか、そっちの勉強している人じゃないと分からないと思います。

      削除