דילוג לתוכן

עזרה הדדית - מחשבים וטכנולוגיה

23.6k נושאים 259.0k פוסטים
  • 21 הצבעות
    406 פוסטים
    33k צפיות
    א
    @3157686 יש לך מושג למה רק המוצרים של אנקר עוברים שבעה מדורים עד שמגיע לארץ? קניתי מוצרים פשוטים וזולים משמעותית והגיע ברבע מהזמן במשלוח ישיר
  • בקשה | איתור סיסמה של מדפסת

    9
    0 הצבעות
    9 פוסטים
    50 צפיות
    E
    @שדה-שלום איפוס מדפסת HP LaserJet M277dw שלבים: 1 כיבוי 2 הפעלה 3 המתן עד שתראה את לוגו האנרגיה 4 לחץ והחזק את החלק הימני התחתון של הצג 5 - אתה יכול לשחרר כאשר אתה רואה "אחסון קבוע "
  • בעיה | התקנה מלאה של FydeOS על כונן חיצוני – לא נשמרים נתונים

    14
    0 הצבעות
    14 פוסטים
    98 צפיות
    E
    @אלישע-מואב-0 נראה שלא ניתן https://community.fydeos.io/t/topic/33529
  • בעיה | תצוגה מקדימה בווינדוס 11

    4
    1
    0 הצבעות
    4 פוסטים
    45 צפיות
    יוסי מחשביםי
    @שפו כתב בבעיה | תצוגה מקדימה בווינדוס 11: @י.-פל. איפה? ניסיתי לחפש בפורום ולא הצלחתי כנראה זה: https://mitmachim.top/post/1057537
  • בירור | הורדת פודקאסטים בשיטס

    לא נפתר
    4
    0 הצבעות
    4 פוסטים
    56 צפיות
    S
    @איל-משולש לא יודע מה @י.-פל. אמר אבל בנטפרי לא יעבוד כל קובץ שטיס ללא בדיקת נטפרי ובקובץ שהעלו פה פעם יש דברים שלא לרוחה של נטפרי ולכן זה לא יעבוד
  • 4 הצבעות
    4 פוסטים
    77 צפיות
    י. פל.י
    @ARISH עובד גם כיום? אחרי שגוגל הפסיקו את הנדיבות?
  • להורדה | ShieldBox Pro - הכירו את נועל הקבצים החדש!!!!!!

    26
    3
    11 הצבעות
    26 פוסטים
    548 צפיות
    מתכנת חובבמ
    @יהודי-זה-הכי זה יעבוד לך רק במחיצות NTFS בכל אופן בניתי משהו עם ג'מיני (2 פרומפטים סך הכל) לא ממליץ להשתמש בזה אבל הנה זה כאן import os import threading import queue import customtkinter as ctk from tkinter import filedialog, messagebox import win32security import win32api import win32net import win32con import ntsecuritycon as ntc # --- הגדרות עיצוב --- ctk.set_appearance_mode("Dark") ctk.set_default_color_theme("blue") # --- מנוע הליבה (Native Win32 Security) --- class WinApiEngine: PERMISSIONS_MAP = { "F": ntc.GENERIC_ALL, "M": ntc.GENERIC_WRITE | ntc.GENERIC_READ | ntc.DELETE, "R": ntc.GENERIC_READ | ntc.GENERIC_EXECUTE, "W": ntc.GENERIC_WRITE } def __init__(self, update_callback): self.update_callback = update_callback self.stop_event = threading.Event() def get_sid(self, user_name): try: sid, _, _ = win32security.LookupAccountName(None, user_name) return sid except Exception: return None def apply_permission(self, path, user_list, action, perm_char): try: sids = [self.get_sid(u) for u in user_list if self.get_sid(u)] if not sids: return False sd = win32security.GetFileSecurity(path, win32security.DACL_SECURITY_INFORMATION) dacl = sd.GetSecurityDescriptorDacl() or win32security.ACL() access_mask = self.PERMISSIONS_MAP.get(perm_char, ntc.GENERIC_READ) inheritance = win32security.CONTAINER_INHERIT_ACE | win32security.OBJECT_INHERIT_ACE for sid in sids: if action == "grant": dacl.AddAccessAllowedAceEx(win32security.ACL_REVISION, inheritance, access_mask, sid) elif action == "deny": dacl.AddAccessDeniedAceEx(win32security.ACL_REVISION, inheritance, access_mask, sid) sd.SetSecurityDescriptorDacl(1, dacl, 0) win32security.SetFileSecurity(path, win32security.DACL_SECURITY_INFORMATION, sd) return True except Exception as e: # self.update_callback(f"Error on {path}: {e}") # פתח אם אתה רוצה לוג מלא על שגיאות return False def process_recursive(self, root_path, user_list, action, perm_char, recursive): count = 0 if self.stop_event.is_set(): return # טיפול בתיקייה הראשית if self.apply_permission(root_path, user_list, action, perm_char): count += 1 if recursive: for root, dirs, files in os.walk(root_path): if self.stop_event.is_set(): break for name in dirs + files: if self.apply_permission(os.path.join(root, name), user_list, action, perm_char): count += 1 if count % 100 == 0: self.update_callback(f"[RUNNING] Updated {count} objects...") self.update_callback(f"[COMPLETE] Finished. Total objects updated: {count}") def start(self, path, users, action, perm, recursive): self.stop_event.clear() threading.Thread(target=self.process_recursive, args=(path, users, action, perm, recursive), daemon=True).start() # --- מנוע סיווג משתמשים (User Classifier) --- class UserManager: @staticmethod def fetch_categorized_principals(): """ מחזיר מילון עם 3 מפתחות: 'humans', 'system', 'groups'. משתמש ב-Win32Net API כדי לנתח דגלים. """ data = { "humans": [], "system": [], "groups": [] } # 1. שליפת משתמשים (Level 2 נותן לנו Flags ו-Privileges) try: users, _, _ = win32net.NetUserEnum(None, 2) # רשימת "רעש" ידועה של משתמשים טכניים technical_keywords = ["docker", "nvidia", "vmware", "wdag", "default", "guest", "support_388945a0"] for u in users: name = u['name'] flags = u['flags'] # UF_ACCOUNTDISABLE = 2. אם הביט דלוק, המשתמש מושבת. is_disabled = (flags & win32con.UF_ACCOUNTDISABLE) # בדיקה יוריסטית: האם זה משתמש טכני? is_technical = any(k in name.lower() for k in technical_keywords) entry = {'name': name, 'active': not is_disabled} if is_technical or is_disabled: # הולך לסיסטם אם הוא טכני או מנוטרל data["system"].append(entry) else: # הולך לבני אדם רק אם הוא פעיל ולא טכני data["humans"].append(entry) except Exception as e: print(f"User Enum Error: {e}") # 2. שליפת קבוצות try: groups, _, _ = win32net.NetLocalGroupEnum(None, 0) for g in groups: data["groups"].append({'name': g['name'], 'active': True}) # Principals מיוחדים שתמיד טוב שיהיו special = ["Everyone", "Authenticated Users", "SYSTEM", "Interactive"] for s in special: data["groups"].append({'name': s, 'active': True}) except Exception as e: print(f"Group Enum Error: {e}") # מיונים for key in data: data[key] = sorted(data[key], key=lambda x: x['name']) return data # --- ממשק המשתמש (UI) --- class App(ctk.CTk): def __init__(self): super().__init__() self.title("Permission Master - Native & Categorized") self.geometry("1000x750") self.engine = WinApiEngine(self.log_message) self.log_queue = queue.Queue() self.all_data = {} # כאן יישמרו המשתמשים לפי קטגוריות self.selected_users_list = [] self.selected_path = ctk.StringVar() self.create_layout() self.load_users_async() self.check_queue() def create_layout(self): # Header top_frame = ctk.CTkFrame(self) top_frame.pack(fill="x", padx=20, pady=15) self.path_entry = ctk.CTkEntry(top_frame, textvariable=self.selected_path, placeholder_text="Select target folder...", width=600) self.path_entry.pack(side="left", padx=10, pady=10) ctk.CTkButton(top_frame, text="Browse", command=self.browse_folder, width=100).pack(side="left") # Main Content Area content_frame = ctk.CTkFrame(self, fg_color="transparent") content_frame.pack(fill="both", expand=True, padx=20, pady=5) # --- Left Column: User Selector --- left_col = ctk.CTkFrame(content_frame, width=350) left_col.pack(side="left", fill="both", expand=True, padx=(0, 10)) # Segmented Button for Filtering ctk.CTkLabel(left_col, text="Source Principals", font=("Arial", 14, "bold")).pack(pady=5) self.filter_seg = ctk.CTkSegmentedButton(left_col, values=["Humans", "Groups", "System/Apps"], command=self.change_filter) self.filter_seg.set("Humans") self.filter_seg.pack(pady=5, padx=10) self.scroll_users = ctk.CTkScrollableFrame(left_col) self.scroll_users.pack(fill="both", expand=True, padx=5, pady=5) # --- Right Column: Selected Targets --- right_col = ctk.CTkFrame(content_frame, width=350) right_col.pack(side="right", fill="both", expand=True, padx=(10, 0)) header_right = ctk.CTkFrame(right_col, fg_color="transparent") header_right.pack(fill="x", pady=5) ctk.CTkLabel(header_right, text="Apply To List", font=("Arial", 14, "bold")).pack(side="left", padx=10) ctk.CTkButton(header_right, text="Clear", width=50, height=20, fg_color="darkred", command=self.clear_selection).pack(side="right", padx=10) self.scroll_targets = ctk.CTkScrollableFrame(right_col) self.scroll_targets.pack(fill="both", expand=True, padx=5, pady=5) # --- Footer: Actions --- footer = ctk.CTkFrame(self) footer.pack(fill="x", padx=20, pady=15) # Options opts = ctk.CTkFrame(footer, fg_color="transparent") opts.pack(side="left", padx=10) self.action_var = ctk.StringVar(value="grant") ctk.CTkRadioButton(opts, text="GRANT Permissions", variable=self.action_var, value="grant").grid(row=0, column=0, padx=10, sticky="w") ctk.CTkRadioButton(opts, text="DENY Permissions", variable=self.action_var, value="deny", text_color="#ff5555").grid(row=1, column=0, padx=10, sticky="w") self.perm_combo = ctk.CTkComboBox(opts, values=["F (Full Control)", "M (Modify)", "R (Read)", "W (Write)"], width=150) self.perm_combo.grid(row=0, column=1, padx=10) self.recursive_var = ctk.BooleanVar(value=True) ctk.CTkCheckBox(opts, text="Recursive", variable=self.recursive_var).grid(row=1, column=1, padx=10) # Big Button self.btn_run = ctk.CTkButton(footer, text="EXECUTE", font=("Arial", 16, "bold"), fg_color="green", height=50, command=self.start_execution) self.btn_run.pack(side="right", fill="x", expand=True, padx=20, pady=10) # Log self.log_textbox = ctk.CTkTextbox(self, height=80, state="disabled") self.log_textbox.pack(fill="x", padx=20, pady=(0, 15)) # --- Logic --- def load_users_async(self): loading = ctk.CTkLabel(self.scroll_users, text="Loading System Principals...") loading.pack(pady=20) def _load(): data = UserManager.fetch_categorized_principals() self.all_data = data self.after(0, lambda: self.change_filter("Humans")) threading.Thread(target=_load, daemon=True).start() def change_filter(self, value): # מנקה את התצוגה for widget in self.scroll_users.winfo_children(): widget.destroy() # מיפוי השם בכפתור למפתח במילון הנתונים key_map = {"Humans": "humans", "Groups": "groups", "System/Apps": "system"} category_data = self.all_data.get(key_map.get(value), []) if not category_data: ctk.CTkLabel(self.scroll_users, text="No items found in this category").pack(pady=10) return for item in category_data: name = item['name'] active = item['active'] # צבע שונה למשתמשים לא פעילים (רלוונטי בעיקר בקטגוריית System) color = "white" if active else "gray" suffix = "" if active else " (Disabled)" btn = ctk.CTkButton( self.scroll_users, text=f"{name}{suffix}", fg_color="transparent", border_width=1, border_color="#404040", text_color=color, anchor="w", command=lambda u=name: self.add_to_target(u) ) btn.pack(fill="x", pady=2) def add_to_target(self, user): if user not in self.selected_users_list: self.selected_users_list.append(user) self.refresh_targets_ui() def remove_from_target(self, user): if user in self.selected_users_list: self.selected_users_list.remove(user) self.refresh_targets_ui() def clear_selection(self): self.selected_users_list.clear() self.refresh_targets_ui() def refresh_targets_ui(self): for widget in self.scroll_targets.winfo_children(): widget.destroy() for user in self.selected_users_list: row = ctk.CTkFrame(self.scroll_targets, fg_color="transparent") row.pack(fill="x", pady=2) ctk.CTkLabel(row, text=user).pack(side="left", padx=5) ctk.CTkButton(row, text="X", width=30, fg_color="#aa0000", hover_color="red", command=lambda u=user: self.remove_from_target(u)).pack(side="right") def browse_folder(self): p = filedialog.askdirectory() if p: self.selected_path.set(p) def log_message(self, msg): self.log_queue.put(msg) def check_queue(self): try: while True: msg = self.log_queue.get_nowait() self.log_textbox.configure(state="normal") self.log_textbox.insert("end", msg + "\n") self.log_textbox.see("end") self.log_textbox.configure(state="disabled") except queue.Empty: pass self.after(100, self.check_queue) def start_execution(self): path = self.selected_path.get() if not path or not self.selected_users_list: messagebox.showerror("Error", "Please select path and users.") return self.engine.start(path, self.selected_users_list, self.action_var.get(), self.perm_combo.get().split()[0], self.recursive_var.get()) if __name__ == "__main__": app = App() app.mainloop() הוא טען שיש פה "מנוע יוריסטי" לזיהוי סוגי משתמשים כשזה סף הכל רשימה מצומצמת של מילות מפתח בקיצור, סתם לכיף
  • בירור | חלון קופץ בעת פתיחת כרום

    3
    1
    0 הצבעות
    3 פוסטים
    36 צפיות
    מ
    @נשרפון [image: 1765541249657-b64827ea-d28c-47dc-a29e-16659d21b14c-image.png]
  • בירור | לנדבוט לא עובד?

    2
    0 הצבעות
    2 פוסטים
    32 צפיות
    י
    @יצחק-הצוחק כתב בבירור | לנדבוט לא עובד?: לאחרונה אני מנסה להיכנס ללנדבוט ואני לא מצליח מישהו יודע מה הבעיה? אשמך לתגובה!!!!!!
  • 14 הצבעות
    19 פוסטים
    622 צפיות
    מ
    @תלמידהון זה כבר בחירה שלך יש כאלה שלא אכפת להם
  • בקשה | ווינדוס 10/11 להפעלה ניידת באמצעות ventoy

    1
    0 הצבעות
    1 פוסטים
    29 צפיות
    אין תגובות
  • בירור | פלאפון זול מעליאקספרס

    9
    0 הצבעות
    9 פוסטים
    145 צפיות
    ה
    @סתם-יהודי כתב בבירור | פלאפון זול מעליאקספרס: בקישור הראשון באמת יש אחד שמתלונן שזה לא G4 אבל בשני יש כמה שמדווחים שזה כן תואם, נקנה אותו ונדווח לציבור. תגיד האם קנית את הטלפון בקישור נשמח לשמוע גם האם אתה ממליץ, וכן האם יש אפשרות לשנות MIMI תודה
  • באג | באג | הטאצ'פד לא עובד

    7
    0 הצבעות
    7 פוסטים
    68 צפיות
    א
    איפוס דרך הביוס עצמו (אם אפשר להיכנס) הדלק את המחשב. כנס ל-BIOS ע"י לחיצה על F2 / DEL / ESC / F10 (תלוי בלוח). בתפריט חפש: Load Defaults Load Optimized Defaults Restore Defaults שמור ויצא – Save & Exit.
  • עזרה | פתרון להגבלת הדפסה באוצר החכמה בגרסה 21-22

    109
    0 הצבעות
    109 פוסטים
    7k צפיות
    א
    @zalmensmok כתב בעזרה | פתרון להגבלת הדפסה באוצר החכמה בגרסה 21-22: @אהרן כמה עמודים נסית? לא זוכר, כשיזדמן לידי אנסה שוב.
  • בקשה | מחיצת vbmeta_vendor_a של M36 - יש לך?

    9
    1
    0 הצבעות
    9 פוסטים
    46 צפיות
    מ
    @יאיר-דניאל כן
  • בירור | כונן D במחשב בשם HP_TOOLS ניתן למחיקה?

    11
    1 הצבעות
    11 פוסטים
    65 צפיות
    מ
    @בנימין-מחשבים תודה, יש לי אבל עוד 350 ג'יגה פנויים בכונן השני.
  • בירור | הכונן של גוגל דרייב לוקח לי מקום במחשב?

    4
    0 הצבעות
    4 פוסטים
    56 צפיות
    מ
    [image: 1765453495506-67c8a78d-1e33-4009-b771-5eb6981d5468-image.png] זה תלוי בבחירה שבחרת בהגדרות באפשרות של העברת קבצים בסטרימינג אז הקבצים מאוחסנים בענן ויש רק כמו קישור על המחשב שלך אם בחרת את האפשרות השניה אז הקבצים מאוחסנים אצלך במחשב ותופסים נפח בכונן שלך
  • להורדה | חיפוש AI תורני מקומי בקבצים מקומים

    12
    2
    5 הצבעות
    12 פוסטים
    159 צפיות
    Y
    @ע-ה-דכו-ע סדרתי את זה וזה עובד בנטפרי אני צריך להעלות קובץ זיפ מתוקן
  • 1 הצבעות
    32 פוסטים
    407 צפיות
    יוסף אלחנןי
    @צדיק-תמים כתב בבירור | אני מפתח אתר מאוד נוח להורדה מיוטיוב (עם אופצייה לנטפרי) ומחפש vps חינמי לשרת פייתון קטן לאתר: ב. איך תדע מה פתוח בנטפרי? אני פעם פיתחתי אתר להורדה מיוטיוב ועשיתי שהID של הקובץ המורד (אצלי בשרת) יהיה עם אותו ID של הקובץ ביוטיוב. ביקשתי מנטפרי שיסננו את האתר שלי כמו את אתר יוטיוב, כך שכל קובץ שחסום ביוטיוב (בזיהוי הID) ייחסם אוטומטית אצלי באתר, כמו כן קובץ שצריך בדיקה ביוטיוב יצטרך בדיקה אצלי באתר. ככה זה גם יסנן תגיות (מה שלא היה בתמר.טופ). (את הרעיון הזה הגה מרדכי עצמו, רק יישמתי את זה באתר) כשסיימתי את הפרוייקט ביקשתי מנטפרי שיפתחו את האתר אבל נתקלתי בסירוב...
  • הסבר | האם הסמל של הבטריה בווינדוס השתנה היום?

    4
    2
    0 הצבעות
    4 פוסטים
    79 צפיות
    י. פל.י
    https://www.windowslatest.com/ דיווח על זה בהרחבה כבר מזה זמן, עוד כשזה היה בגרסאות פיתוח.