Windows 7: ปิดใช้งานล็อคเวิร์กสเตชันหลังจาก 10 นาทีโดยใช้นโยบายกลุ่ม


8

ในพีซี Windows 7 ของฉันระบบจะถูกล็อคหลังจากไม่มีการใช้งานเป็นเวลา 10 นาที โดยปกติฉันจะพบการตั้งค่านี้ถัดจากการตั้งค่าตัวรักษาหน้าจอ อย่างไรก็ตามการตั้งค่าเป็นสีเทา

ฉันคิดว่าเป็นเพราะนโยบายกลุ่ม บริษัท เนื่องจากฉันเป็นผู้ดูแลระบบของคอมพิวเตอร์เครื่องนี้ฉันควรจะสามารถกำหนดค่าการตั้งค่านโยบายกลุ่มใหม่โดยใช้ gpedit.msc

การตั้งค่านโยบายกลุ่มคืออะไรที่ฉันต้องเปลี่ยนเพื่อป้องกันการล็อกเวิร์กสเตชันโดยอัตโนมัติ

แก้ไข: ฉันไม่ได้กำหนดค่าโปรแกรมรักษาหน้าจอ ฉันยังต้องการที่จะล็อคเวิร์กสเตชันด้วยตนเองต่อไป


3
เพียงเพราะบัญชีผู้ใช้เป็นผู้ดูแลระบบไม่ได้หมายความว่าคุณสามารถเปลี่ยนการตั้งค่าใด ๆ บน Windows นโยบายโดเมนจะแทนที่สิทธิ์ของคุณ
Ramhound

น่าสนใจน่ารู้ แต่ฉันจะหาการตั้งค่านี้ได้ที่ไหน ฉันยังอยากลอง
usr

1
มันหมายความว่าเขาสามารถเปลี่ยนการตั้งค่าใด ๆ นั่นคือพลังของผู้ดูแลระบบ - พวกเขาสามารถเป็นเจ้าของได้ทุกอย่าง ...
Martin Binder

คำตอบ:


11

หากต้องการปิดใช้งานการล็อก:

ภายใต้HKEY_LOCAL_MACHINE\SOFTWARE \Microsoft\Windows\CurrentVersion\Policies\Systemสร้างDWORDค่าใหม่ที่ชื่อว่าDisableLockWorkstationและตั้งค่าเป็น 1

จากนั้นรีสตาร์ทคอมพิวเตอร์


คุณเป็นคนแรกที่ตอบคำถาม ฉันจะลองคำแนะนำนี้
usr

1
หืมไม่ทำงานในกรณีของฉัน บางทีนโยบายกลุ่มจะแทนที่กุญแจนี้หรือไม่?
usr

นโยบายกลุ่มแทนที่ค่า แต่ฉันเข้าสู่ระบบโดเมนทุก ๆ 6 เดือนเพื่อให้งานนี้มีเสน่ห์สำหรับฉัน
st3inn

5

คำตอบสำหรับคำถามจริงที่คุณถาม:

User Configuration\Policies\Administrative Templates\Control Panel\Personalization. การตั้งค่าที่ต้องการคือ: 'เปิดใช้งานโปรแกรมรักษาหน้าจอ', 'หมดเวลาโปรแกรมรักษาหน้าจอ', 'บังคับโปรแกรมรักษาหน้าจอเฉพาะ' (นี่เป็นสิ่งสำคัญเพราะหากระบบไม่มีโปรแกรมรักษาหน้าจอที่กำหนดค่าไว้จะไม่ทำงาน) และสุดท้าย

จากhttps://social.technet.microsoft.com/Forums/windowsserver/en-US/5c2518d4-f531-471a-a649-0f5dd5495679/group-policy-to-auto-lock-the-system-after-fix-interval ? ฟอรั่ม = winserverGP


3

นโยบายกลุ่มจากโดเมนมีแนวโน้มที่จะแทนที่การเปลี่ยนแปลงใด ๆ ที่คุณทำ หากนี่เป็นการสร้างปัญหาให้กับงานของคุณทำไมไม่ติดต่อผู้ดูแลระบบและดูวิธีแก้ไข การเปลี่ยนแปลงอาจเป็นการละเมิดนโยบาย บริษัท และมีผลที่ตามมา

การโทรด่วนจะช่วยได้


ฉันจะทำอย่างนั้น. แต่สถานการณ์ของฉันคือฉันยังถูกล็อคอยู่ตลอดเวลาเมื่อใช้ Remote Desktop จากที่บ้าน สิ่งนี้ไม่ได้มีวัตถุประสงค์ใด ๆ
usr

2

นโยบายกลุ่มจะแทนที่การตั้งค่าของคุณ แต่คุณสามารถเลียนแบบกิจกรรมผู้ใช้เพื่อป้องกันการล็อกหน้าจอ ตรวจสอบคำตอบนี้สำหรับวิธีการง่ายๆ


ฉันแก้ไขปัญหาโดยใช้การเปลี่ยนแปลงรีจิสตรี แต่นี่ก็ดูสมเหตุสมผลเช่นกันเป็นทางเลือกสุดท้าย ขอบคุณ!
usr

1

เช่นเดียวกับคนอื่น ๆ ได้กล่าวว่านโยบายโดเมนโดยทั่วไปจะแทนที่การตั้งค่าท้องถิ่นใด ๆ ที่คุณพยายามกำหนดค่าสำหรับสิ่งนี้ มีอีกสองสิ่งที่ฉันต้องการเพิ่ม แต่:

โปรดใช้ความระมัดระวังในการปรับแต่งการตั้งค่านี้ไม่ว่าจะผ่านทางรีจิสตรีหรืออย่างอื่น ฉันเคยลองยุ่งกับฉันในระบบเดียว (นโยบายโดเมนคือการล็อคหลังจาก 15 นาที แต่ฉันชอบ 5 - จำไม่ได้ว่าสิ่งที่ฉันเปลี่ยนไป) และระบบสิ้นสุดการฟังทั้งโดเมนและการตั้งค่าของฉันแม้หลังจากที่ฉัน ย้อนกลับการเปลี่ยนแปลง ในกรณีนี้มันไม่ได้ทำงานสกรีนเซฟเวอร์เลย นั่นคือสิ่งที่คุณต้องการ แต่ไม่ใช่สิ่งที่ฉันต้องการ YMMV

คำนึงถึง: หากระบบของคุณเป็นประเภทที่ต้องการการเข้าถึงแบบทันทีเต็มเวลาเพื่อรักษาชีวิตและ / หรือทรัพย์สิน (เช่น 911 Call Center) อาจเป็นไปได้ว่านโยบายขององค์กรของคุณจะป้องกันไม่ให้เวิร์กสเตชันล็อก หากระบบของคุณไม่ตกอยู่ในประเภทนั้นแล้วมันจะอาจได้รับการกำหนดค่าที่จะไม่ล็อค ดังนั้นจึงเป็นเรื่องที่ดีที่สุดที่จะเพียงแค่ปล่อยให้มันอยู่คนเดียว

แม้ว่าคุณจะจัดการเปลี่ยนการตั้งค่าอย่างถาวรผู้ดูแลระบบขององค์กรอาจตรวจพบว่าคอมพิวเตอร์ไม่ได้ปฏิบัติตามและบังคับใช้นโยบายอีกครั้ง หลังจากทำสองสามครั้งคุณหรือผู้จัดการของคุณอาจได้รับบันทึกช่วยจำหรือเยี่ยมชมจากแผนกรักษาความปลอดภัยไอทีที่เป็นมิตรของคุณ


แต่สถานการณ์ของฉันคือฉันยังถูกล็อคอยู่ตลอดเวลาเมื่อใช้ Remote Desktop จากที่บ้าน สิ่งนี้ไม่ได้มีวัตถุประสงค์ใด ๆ เราเป็นร้านขายโปรแกรมเล็ก ๆ ไม่มีแผนกไอทีขององค์กร
usr

2
เหตุผลเพิ่มเติมว่าทำไมคุณควรติดต่อใครก็ตามที่ดูแลนโยบายกลุ่มโดเมนและอธิบายสถานการณ์ให้พวกเขาเพื่อให้พวกเขาสามารถแก้ไขไฟล์นโยบายได้
dotnetengineer

ดูเหมือนว่าคุณจะเปลี่ยนการตั้งค่านี้ในอดีต คุณบอกฉันได้ไหมว่าจะหาได้ที่ไหน
usr

@usr ตามที่ฉันพูดในคำตอบของฉันฉันจำไม่ได้ว่าการตั้งค่าใดที่ฉันปรับเปลี่ยนเพื่อปรับเปลี่ยนโปรแกรมรักษาหน้าจอ ฉันเริ่มสับสนเล็กน้อยว่าการตั้งค่าใดที่คุณพยายามพูดถึงที่นี่ เซสชันถูกล็อคในขณะที่ไม่ได้ใช้งานมากกว่า RDP หรือเป็นเซสชัน RDP ที่ถูกตัดการเชื่อมต่อทั้งหมด มีการตั้งค่าแยกกันสองรายการสำหรับสิ่งเหล่านี้และตัวหลังไม่มีส่วนเกี่ยวข้องกับโปรแกรมรักษาหน้าจอ
Iszi

เซสชั่นจะถูกล็อค ฉันสามารถดูและเข้าถึงหน้าจอล็อคสีน้ำเงินผ่าน RD โปรแกรมทั้งหมดยังคงทำงานอยู่เมื่อฉันเข้าสู่ระบบ
usr

1

เพียงแค่เล่นเพลงใน Windows Media Player โดยเลือกตัวเลือกซ้ำ (ปิดเสียง) จากนั้นมันจะไม่ล็อคหรือนอนหลับ


นี่คือหยาบ แต่ฉันสามารถยืนยันได้ว่าทำงานได้กับ XP (นั่นเป็นครั้งสุดท้ายที่ฉันต้องใช้เคล็ดลับนั้น)
Hennes


1

ฉันต้องการทำสิ่งที่คล้ายกัน

ฉันลองคาเฟอีนฟรีแวร์แต่มันถูกบล็อกโดยนโยบายไอทีของเรา ฉันลงเอยด้วยการเขียนสคริปต์ Python ที่ทำสิ่งเดียวกัน (ส่งการกดแป้นF15ทุก xx วินาที)

(สามารถตัดให้เหลือน้อยที่สุด แต่ต้องใช้เวลาเพียง 15 นาทีเท่านั้นดังนั้นส่วนแรกคือการคัดลอกโค้ดขนาดใหญ่)

นี่มันคือ:

#!/python

import ctypes
import random
import re
import time
from argparse import ArgumentParser, HelpFormatter

LONG = ctypes.c_long
DWORD = ctypes.c_ulong
ULONG_PTR = ctypes.POINTER(DWORD)
WORD = ctypes.c_ushort


class MOUSEINPUT(ctypes.Structure):
    _fields_ = (
        ('dx', LONG), ('dy', LONG), ('mouseData', DWORD),
        ('dwFlags', DWORD), ('time', DWORD),
        ('dwExtraInfo', ULONG_PTR)
    )


class KEYBDINPUT(ctypes.Structure):
    _fields_ = (
        ('wVk', WORD), ('wScan', WORD),
        ('dwFlags', DWORD), ('time', DWORD),
        ('dwExtraInfo', ULONG_PTR)
    )


class _INPUTunion(ctypes.Union):
    _fields_ = (
        ('mi', MOUSEINPUT),
        ('ki', KEYBDINPUT)
    )


class INPUT(ctypes.Structure):
    _fields_ = (('type', DWORD), ('union', _INPUTunion))


def SendInput(*inputs):
    nInputs = len(inputs)
    LPINPUT = INPUT * nInputs
    pInputs = LPINPUT(*inputs)
    cbSize = ctypes.c_int(ctypes.sizeof(INPUT))
    return ctypes.windll.user32.SendInput(nInputs, pInputs, cbSize)


INPUT_MOUSE = 0
INPUT_KEYBOARD = 1


def Input(structure):
    if isinstance(structure, MOUSEINPUT):
        return INPUT(INPUT_MOUSE, _INPUTunion(mi=structure))
    elif isinstance(structure, KEYBDINPUT):
        return INPUT(INPUT_KEYBOARD, _INPUTunion(ki=structure))
    else:
        raise TypeError('Cannot create INPUT structure (keyboard)!')


keys = {
    'DEFAULT': 0x7E,  # F15 key
    'SNAPSHOT': 0x2C,  # PRINT SCREEN key

    'F1': 0x70,  # F1 key
    'F2': 0x71,  # F2 key
    'F3': 0x72,  # F3 key
    'F4': 0x73,  # F4 key
    'F5': 0x74,  # F5 key
    'F6': 0x75,  # F6 key
    'F7': 0x76,  # F7 key
    'F8': 0x77,  # F8 key
    'F9': 0x78,  # F9 key
    'F10': 0x79,  # F10 key
    'F11': 0x7A,  # F11 key
    'F12': 0x7B,  # F12 key
    'F13': 0x7C,  # F13 key
    'F14': 0x7D,  # F14 key
    'F15': 0x7E,  # F15 key
    'F16': 0x7F,  # F16 key
    'F17': 0x80,  # F17 key
    'F18': 0x81,  # F18 key
    'F19': 0x82,  # F19 key
    'F20': 0x83,  # F20 key
    'F21': 0x84,  # F21 key
    'F22': 0x85,  # F22 key
    'F23': 0x86,  # F23 key
    'F24': 0x87,  # F24 key
}

def Keyboard(code, flags=0):
    # Code for key 0..9 or A..Z: it corresponds to the the ASCII code
    if len(code) == 1 and re.match(r'[0-9A-Za-z]', code):
        key = ord(code.upper())
    # Keys 'F...': we use code in the dictionary
    else:
        key = keys.get(code.upper(), keys['DEFAULT'])
    return Input(KEYBDINPUT(key, key, flags, 0, None))


############################################################################

sentences = [
    "Don't sleep!",
    "Stay awake!",
    "Are you still here?",
    "Hello...",
    "Want some coffee?",
    "What are you doing?"
]


def keep_alive(delay, nb_cycles=-1, key='F15'):
    """
    Send keystroke F15 at a given delay for a given nb of cycles

    Args:
        delay(int): delay in seconds
        nb_cycles(int): number of cycles (set to -1 for unlimited)
        key(str): Key to send (default: 'F15')
    """
    print("Trust me, I will keep you alive!\n")   
    while nb_cycles != 0:
        time.sleep(delay)
        SendInput(Keyboard(key))
        print(random.choice(sentences))
        nb_cycles -= 1


if __name__ == '__main__':
    # Information on the Program
    copyright_year = 2018
    prog = "stay_awake"
    version_str = "%s v1.0" % prog
    help_string = """\
    Purpose: Send a keystroke (F15) to simulate user activity
    """

    # Options
    parser = ArgumentParser(
        description=help_string, prog=prog,
        formatter_class=lambda prog:
        HelpFormatter(prog, max_help_position=60)
    )
    parser.add_argument(
        "-k", "--key",
        type=str, default='F15',
        help="Key to send [Dflt: F15]"
    )
    parser.add_argument(
        "-d", "--delay",
        type=int, default=234,
        help="Delay (in s) between keystrokes [Dflt: 234]"
    )
    parser.add_argument(
        "-r", "--duration", 
        type=int, default=-1,
        help="Duration (in s) or negative value for infinite"
    )
    options = parser.parse_args()

    # Run
    nb_cycles = options.duration if options.duration < 0 \
           else int(options.duration/options.delay)
    keep_alive(options.delay, nb_cycles, key=options.key)
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.