חסימת אינטרנט דרך קובץ HOSTS - בעזרת קובץ batch
-
@yosi44 זה מה שאני מחפש איך לחסום את Google.com וזה יחסום את כל הדברים שקשורים לגוגל.
(זה אותו דומיין) -
@yosi44 @יוסי-מחשבים @shloimy אני רוצה ליצור קובץ שיזהה אם בקובץ HOSTS יש או אין את שורת החסימה (במקרה שלי יוטיוב)
אני מנסה להשתמש בשורה הזאת:findstr /C:"www.youtube.com" %SystemRoot%\system32\drivers\etc\hosts
משום מה זה לא מוצא.
אם אני כותב לו לחפש אות או סימן מסויים הוא כן מוצא אותו... רק שיש כמה תווים לחיפוש הוא לא מוצא...
יודעים למה? -
@oryadaniely אמר בחסימת אינטרנט דרך קובץ HOSTS - בעזרת קובץ batch:
יודעים למה?
כי באמת זה לא נמצא במסמך, אם תכניס במסמך www.youtube.com הוא ימצא...
-
@יוסי-מחשבים דווקא לא קשור. ברגע ששיניתי את הפקודה לFIND זה עבד בלי בעיות - לא יודע למה...
כעת הקוד הוא::start move %SystemRoot%\system32\drivers\etc\hosts %SystemRoot%\system32\drivers\hosts.txt move %SystemRoot%\system32\drivers\hosts %SystemRoot%\system32\drivers\etc\hosts rename %SystemRoot%\system32\drivers\hosts.txt hosts Taskkill /F /IM chrome.exe FIND /i "www.youtube.com" "C:\Windows\System32\drivers\etc\hosts" >nul 2>&1 if errorlevel 1 ( timeout /T 3600 goto start )
עכשיו הבעיה שלי זה שאני רוצה שאם החסימה לא פעילה אז זה ינעל אוטומטית לאחר שעה (שורות 7-11 בקוד). אבל גם החלון נשאר פתוח עד שהוא מסיים את זמן ההמתנה (לזה אפשר להמיר לEXE ולטפל בזה שהסקריפט יהיה מוסתר לגמרי) אבל אני מפסיד את האופציה של לשלוט בזמן הפתיחה (האידיאל זה שאם אני פותח את החסימה אז הוא שואל אותי לכמה זמן אני מעוניין לפתוח ומיד אחרי זה המחשב מעלים את הסקריפט שלא יראה)
יש לך מושג איך אפשר לגרום לזה לקרות? -
@oryadaniely אמר בחסימת אינטרנט דרך קובץ HOSTS - בעזרת קובץ batch:
לזה אפשר להמיר לEXE ולטפל בזה שהסקריפט יהיה מוסתר לגמרי
@cd /d "%~dp0" && if exist "%temp%\getadmin.vbs" (del "%temp%\getadmin.vbs" && reg.exe query "HKU\S-1-5-19" 1>nul 2>&1 ( cmd /u /c echo Set UAC = CreateObject^("Shell.Application"^) : UAC.ShellExecute "cmd.exe", "/k cd ""%~sdp0"" && ""%~s0""", "", "runas", 0 >> "%temp%\getadmin.vbs" && "%temp%\getadmin.vbs" && exit )) else (cmd /u /c echo Set UAC = CreateObject^("Shell.Application"^) : UAC.ShellExecute "cmd.exe", "/k cd ""%~sdp0"" && ""%~s0""", "", "", 0 > "%temp%\getadmin.vbs" && "%temp%\getadmin.vbs" && exit)
תכניס בהתחלה.
זה מחייב הפעלה כמנהל + מריץ מוסתר. -
@oryadaniely אמר בחסימת אינטרנט דרך קובץ HOSTS - בעזרת קובץ batch:
@yosi44 אם רוצים שלא יהיה צורך בהפעלה מחדש של המחשב אפשר להוסיף שורה:
Taskkill /F /IM chrome.exe
כמובן תלוי בסוג הדפדפן שיש לך..
ipconfig /flushdns
-
@oryadaniely זה במקום לסגור את כרום.
-
@Men770 אמר בחסימת אינטרנט דרך קובץ HOSTS - בעזרת קובץ batch:
@oryadaniely איפה בקוד אתה שואל את המשתמש לכמה זמן לפתוח?
זה הבעיה - שאת זה אני לא כ"כ יודע איך עושים אם הקובץ מוסתר...
אם היה אפשרות שמיד לאחר שמזינים את הזמן הקובץ נהיה מוסתר זה היה מסדר הרבה בעיות.. -
@echo off set /p "OPEN_TIME=Enter time: " @cd /d "%~dp0" && if exist "%temp%\getadmin.vbs" (del "%temp%\getadmin.vbs" && reg.exe query "HKU\S-1-5-19" 1>nul 2>&1 ( cmd /u /c echo Set UAC = CreateObject^("Shell.Application"^) : UAC.ShellExecute "cmd.exe", "/k cd ""%~sdp0"" && ""%~s0""", "", "runas", 0 >> "%temp%\getadmin.vbs" && "%temp%\getadmin.vbs" && exit )) else (cmd /u /c echo Set UAC = CreateObject^("Shell.Application"^) : UAC.ShellExecute "cmd.exe", "/k cd ""%~sdp0"" && ""%~s0""", "", "", 0 > "%temp%\getadmin.vbs" && "%temp%\getadmin.vbs" && exit) :start move %SystemRoot%\system32\drivers\etc\hosts %SystemRoot%\system32\drivers\hosts.txt move %SystemRoot%\system32\drivers\hosts %SystemRoot%\system32\drivers\etc\hosts rename %SystemRoot%\system32\drivers\hosts.txt hosts ipconfig /flushdns FIND /i "www.youtube.com" "C:\Windows\System32\drivers\etc\hosts" >nul 2>&1 if errorlevel 1 ( timeout /T %OPEN_TIME% goto start )
נ.ב. כתבתי מהזיכרון, לא בדקתי בפועל.
-
@Men770 אמר בחסימת אינטרנט דרך קובץ HOSTS - בעזרת קובץ batch:
ipconfig /flushdns
הקוד הזה לא עובד... יש לך מושג למה?