how to block social medias from windows [closed]

2019-02-20 16:21发布

问题:

I would like to block social medias from my PC according to time. Block after 9 PM and unblock after 11 AM (like parental control) I have tried following but failed.

Created a block.bat file

@echo off
(Get-Content C:\Windows\System32\drivers\etc\hosts) | ForEach-Object { $_ -replace "#127.0.0.1 facebook.com", "127.0.0.1 facebook.com" } | Set-Content C:\Windows\System32\drivers\etc\hosts

Created a Unblock.bat file

@echo off
(Get-Content C:\Windows\System32\drivers\etc\hosts) | ForEach-Object { $_ -replace "127.0.0.1 facebook.com", "#127.0.0.1 facebook.com" } | Set-Content C:\Windows\System32\drivers\etc\hosts

And Added these 2 bat file to Task Scheduler. Block will run at 11 AM and unlock at 9 PM.

I am getting this error from PowerShell:

Set-Content : The input object cannot be bound because it did not contain the
information required to bind all mandatory parameters:  Path
At line:1 char:140
+ ... e "#127.0.0.1 facebook.com", "127.0.0.1 facebook.com" } | Set-Content
+                                                               ~~~~~~~~~~~
    + CategoryInfo          : InvalidArgument: (# Copyright (c)...Microsoft Corp.:String) [Set-Content], ParameterBindingException
    + FullyQualifiedErrorId : InputObjectMissingMandatory,Microsoft.PowerShell.Commands.SetContentCommand

And manually running bat file does nothing.

回答1:

Give a shot for this code :

@Echo off
cls & color 0A & echo.
Mode con cols=55 lines=5
Set Copyright=Hackoo 2016
Title Block-UnBlock Facebook by %Copyright%
:::::::::::::::::::::::::::::::::::::::::
:: Automatically check & get admin rights
:::::::::::::::::::::::::::::::::::::::::
CLS
Echo.
Echo.
ECHO         **************************************
ECHO                  Running Admin shell
ECHO         **************************************
::pause
:checkPrivileges
NET FILE 1>NUL 2>NUL
if '%errorlevel%' == '0' ( goto gotPrivileges ) else ( goto getPrivileges )

:getPrivileges
if '%1'=='ELEV' (echo ELEV & shift /1 & goto gotPrivileges)
Echo.
ECHO.
ECHO         **************************************
ECHO          Invoking UAC for Privilege Escalation
ECHO         **************************************

setlocal DisableDelayedExpansion
set "batchPath=%~0"
setlocal EnableDelayedExpansion
(
ECHO Set UAC = CreateObject^("Shell.Application"^)
ECHO args = "ELEV "
ECHO For Each strArg in WScript.Arguments
ECHO args = args ^& strArg ^& " " 
ECHO Next 
ECHO UAC.ShellExecute "!batchPath!", args, "", "runas", 1 
)> "%temp%\OEgetPrivileges.vbs"
"%SystemRoot%\System32\WScript.exe" "%temp%\OEgetPrivileges.vbs" %*
exit /B

:gotPrivileges
if '%1'=='ELEV' shift /1
setlocal & pushd .
cd /d "%~dp0"
::::::::::::::::::::::::::::
::START
::::::::::::::::::::::::::::
setlocal enabledelayedexpansion
Set Copyright=Hackoo 2016
Title Block-UnBlock Facebook by %Copyright%
Rem If you didn't want to create a shortcut and see the intro on your desktop just comment this line below
If Not Exist %USERPROFILE%\Desktop\Block-UnBlock_Facebook.lnk Goto:Intro
::***********************************************************************************************
:CheckPassword
Mode con cols=55 lines=3
cls & color 0A & echo.
set MyPassword=Hackoo
set "psCommand=powershell -Command "$pword = read-host 'Enter your password' -AsSecureString ; ^
    $BSTR=[System.Runtime.InteropServices.Marshal]::SecureStringToBSTR($pword); ^
        [System.Runtime.InteropServices.Marshal]::PtrToStringAuto($BSTR)""
for /f "usebackq delims=" %%p in (`%psCommand%`) do set password=%%p
if %MyPassword%==%password% (Goto:Good) else (Goto:Bad)
exit/b
::***********************************************************************************************
:Good
Cls & Color 0A
echo(
echo                     Good Password
TimeOut /T 1 /NoBreak>nul
Goto:menuLOOP
::***********************************************************************************************
:Bad
Cls & Color 0C
echo(
echo                      Bad password
TimeOut /T 1 /NoBreak>nul
Goto:CheckPassword
::***********************************************************************************************
:menuLOOP
Mode con cols=85 lines=8
Cls & color 0B
Title Block and UnBlock Facebook by %Copyright%
echo(
echo(         ================================Menu================================
echo(
for /f "tokens=2* delims=_ " %%A in ('"findstr /b /c:":menu_" "%~f0""') do echo                               %%A  %%B
echo(
echo(         ====================================================================
set choice=
echo( & set /p choice=Make a choice or hit ENTER to quit: || GOTO :EOF
echo( & call :menu_[%choice%]
GOTO:menuLOOP
::********************************************************************************************
:menu_[1] Blocking Facebook
Mode con cols=85 lines=8
cls & color 0C
Call:SkipLine 3
Call:Tab 6
echo %x% "Deactivate write protection" ...
TimeOut /T 2 /NoBreak>nul
set hostspath=%windir%\System32\drivers\etc\hosts
Set BackupHosts=%AppData%\hosts.hackoo
If Not Exist %BackupHosts% Attrib -R %hostspath% && Type %hostspath% > %BackupHosts%
cls
Attrib -R %hostspath%
(
echo ###########################
echo # Block Facebook %Copyright%#
echo ###########################
echo 127.0.0.1 www.facebook.com
echo 127.0.0.1 facebook.com
echo 127.0.0.1 ok.facebook.com
echo 127.0.0.1 www.ok.facebook.com
echo 127.0.0.1 a.ok.facebook.com
echo 127.0.0.1 www.a.ok.facebook.com
echo 127.0.0.1 facebook.com.au
echo 127.0.0.1 www.facebook.com.au
echo 127.0.0.1 nl-nl.facebook.com
echo 127.0.0.1 www.nl-nl.facebook.com
echo 127.0.0.1 facebook.nl
echo 127.0.0.1 www.facebook.nl
echo 127.0.0.1 login.facebook.com.au
echo 127.0.0.1 www.login.facebook.com.au
echo 127.0.0.1 www-10-01-snc2.facebook.com
echo 127.0.0.1 www-11-01-snc2.facebook.com
echo 127.0.0.1 www-10-03-ash1.facebook.com
echo 127.0.0.1 www-12-08-ash1.facebook.com
echo 127.0.0.1 www-13-08-ash1.facebook.com
echo 127.0.0.1 static.ak.fbcdn.net
echo 127.0.0.1 www.static.ak.fbcdn.net
echo 127.0.0.1 login.facebook.com
echo 127.0.0.1 www.login.facebook.com
echo 127.0.0.1 login.facebook.com.nl
echo 127.0.0.1 www.login.facebook.com.nl
echo 127.0.0.1 fbcdn.net
echo 127.0.0.1 www.fbcdn.net
echo 127.0.0.1 fbcdn.com
echo 127.0.0.1 www.fbcdn.com
echo 127.0.0.1 ads.ak.facebook.com
echo 127.0.0.1 www.ads.ak.facebook.com
echo 127.0.0.1 static.ak.connect.facebook.com
echo 127.0.0.1 www.static.ak.connect.facebook.com
echo 127.0.0.1 login.facebook.com
echo 127.0.0.1 www.login.facebook.com
) > %hostspath%
cls
Call:SkipLine 3
Call:Tab 5
echo %x% "Facebook is Blocked by %Copyright%"
ATTRIB +R %hostspath%
TimeOut /T 2 /NoBreak>nul
Start www.facebook.com
::GOTO :menuLOOP
Exit
::********************************************************************************************
:menu_[2] UnBlocking Facebook
cls & color 0A
Title UnBlocking Facebook ....
Call:SkipLine 3
Call:Tab 5
set hostspath=%windir%\System32\drivers\etc\hosts
Set BackupHosts=%AppData%\hosts.hackoo
If Exist %BackupHosts% Attrib -R %hostspath% && Type %BackupHosts% > %hostspath%
ATTRIB +R %hostspath%
echo %x% "Facebook is UnBlocked by %Copyright%"
TimeOut /T 2 /NoBreak>nul
Start www.facebook.com
Exit
::GOTO :menuLOOP
::******************************************************************************************
:Play
(
echo Play "%~1"
echo Sub Play(URL^)
echo    Dim Sound
echo    Set Sound = CreateObject("WMPlayer.OCX"^)
echo    Sound.URL = URL
echo    Sound.settings.volume = 100
echo    Sound.Controls.play
echo    do while Sound.currentmedia.duration = 0
echo        wscript.sleep 100
echo    loop
echo    wscript.sleep (int(Sound.currentmedia.duration^)+1^)*1000
echo End Sub
)>%~2
::********************************************************************************************
:SkipLine
    For /L %%I In (1,1,%1) Do Echo(
    Goto:Eof
::********************************************************************************************
:Tab
set "x="
For /L %%I In (1,1,%1) Do Set "x=!x!    "
REM                                  ^-- this is a TAB
goto :eof
::********************************************************************************************
:Intro
Color 0A & Mode con cols=101 lines=57
echo(
echo                                      `   ``  `    `   ` ``   ``                                    
echo                                   ```    `  `````````        ` `                                 
echo                                 `    .-/+osyhhhhhhhhhhhhyyso+:-`   `  `                            
echo                                ````/hddddddddddddddddddddddddddhy- `` `                            
echo                                `` :mdmdmdmmddddddddddddddddddddddy`                                
echo                                 ` oNmmmmddddddddddddddddddddddmmmd.   `                            
echo                                 ` yNmNNNmmmmmmmmmmmmmmmmmmmmmmmmmm:                                
echo                                ` .dNmNmNNmmNmmmmmmmmmmmmmmmmmmmmmN+ ``                             
echo                                ` :NmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmNy `   ``                         
echo                               `  oNmmmmNmmmmmmmmmmmmmmmmmmmmmmmmmmm.    `                          
echo                                ` hNmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmN: `      `                      
echo                 ``            ` .mNmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmN+ `` ``   `                     
echo              `    `    `..-/++osyNmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmNmNy```   ``                       
echo             ` `   `.:+syhddddddmmmNmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmNmyoo/:-.``                      
echo            ` ``-/shhddddddddddddmNNmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmNmdddddddhyo+:-```  ```          
echo          ` `.+ydddddddddddddddddNNNNmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmdddmddddmmddhyo:.``           
echo          ``+dddddddddddddddddmmmNNNNmmmmmmmmdddddmddddddddmmdmmmmmmNmdmdddddddddddddddy/`          
echo       `  `ydddddddddddddddddddmNNNNNmmmmmdddddddddddddddddddddmmmNNNmdddddddddddddddddddd/``       
echo          omdmdddddddddddddddddmNNNmmmmmmmmddddddddddddddddddddmmNNNmmdmddddddddddddddddddd. `      
echo        ` omddddddddddddmddddmmdmmmmmmNmmmmmddddddddddddddddmmmmmNmmmdddddddddddddddddddddy` ` `    
echo          `ymdddddddddddddddddmddddmmmmmmmmmdddddddddddddddddmmmdmddddddddddddddddddddddds. ``      
echo        `  `+dmdddddmmdmmmmddmmmdddddmmmddddddddddddddddddddddddddddddddddmmddmddddddmh+.`  ` `     
echo         `` ``/shmdmddmmmmmmmddddmmmmmmmmmmdddddddddddddddddddddddddddddmmddmdddddhy+-` `  ` `      
echo        `   ` ```-/oyhdddmmmmmmmmmmmmmmmmmmdddddddddddddmddddmmmdmmddddddddddhyo/-`   ` ` `   `     
echo         ` ` ` `  `  ``-/+sydddddddddmddmmdmdddmdddddmmmdmmmdddddddhhhhhho/-.`  `                   
echo                     ``` ` :mNMNNNNNmdhhhhhhhddddddddhdhhhhhhhyyhmmNNNmmd. `                        
echo                        ` :mNNNNNMNNNhsooo+++++oyyo+oo++/://++++sNNNNNNmh/ ``                       
echo                     ``` :dNNNNNNMNNNdyssoo++/+oyy++o++////+oooohNNNNNNmd/ ` ` `                    
echo                       `:dNNNNNNMNNNNmyyssooo+osyy++ooo++++oosssdNNNNNNmdo `  `                     
echo                    ``./hNNNNNNNNNNNmNdsyhhoooyoys+/+o+++++yhssymNNNNNNmdy.                         
echo                ` `` .oymNNNNmNNNMNNNNMhosdmdysohho+hs+++sddossmNNNNNNNmdmo````                     
echo                 ` ` -/smNNNNNNNNNNNNNMNdosyydmmmdoodNmmddssosmMNmNNNNNmmdds:.`                     
echo `               ` ` .+dmNNNmNNNNNNNNNNMNdosyssssoo+osoooososmMMNmNNNNmNmmddds:.``                  
echo   ` ``` ``  ` ``.-/odNNNNNNmNMNNNNNNMMMMMmssyooooyys++++oohNMMMNmNNNNmNmmmmNNNmdho-`   `           
echo `   `` `.-/+syhdmNNNNMMNNNNNNNNNNNNmNMNNMNNhso++smms//+oodNNMMNmNmmNNmNNmNmNNNNNNNmhs/.`    ` `    
echo `  `  .+ydmNNNNNNNNNMNMMNNNNNNNNNNNNNNMMMNMMNmy+/hmdh:++yNNNMMMNNNmmmmmNNmNNNNNNNNNNNNmmhs:.` `     
echo  ```/dmNNNNNNNMNNNMMMMMMNMNNNNNNNNmNNMMMMMNMNNh+omNo/sdMNMNNMMNNNmmmmmmNNNNNNNNNNNNNNNNmNmds:``   `
echo ``.smmmNNNNNNNNNNNNNNNNMNMNNNMNNmNmNNMNMMMNNNNNNdNmdmNNNNNNMMNNNNNNmmmmNNNNNNNNNNNNNNNNNNNmmmh/`  `
echo ``/dmmNmNNNNNNNNNNNNNNNNNNMMNNNNmmNNNMMMMMMMMMMMNMNNMNMNNNNNNNNNNNNNmmmmNNNNNNNNNNNNNNNNNmmNmmmms. `
echo NmmmmNNNmmmmNNNNNNNNNNNMMMNNNNNmNNNNNNNNNNNNNMNNMNNNNNNNNNNNNNNNNNmmmmNNNNNNNNNNNNNNNmmmmNmmmmmh-`
echo mmmmNmNmmmmmmmNNNNNNNNMMMMMMMMNNNmNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNMNNNmmmNNNNNNNNNNNNNNNNNmmmmmmmmmmd:
echo mNNmmmmmmmmmmNNNNNMMMMMMNMNMMMMNNmNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNmmmmmmmmmmmmmmm
echo NmmmmmmmmmmmNNNNNNNNMMNNNMNNNMMNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNmmmmmmmmmmmmm
echo(
echo                    "/  |  /  |                    /  |                          ";
echo                    "$$ |  $$ |  ______    _______ $$ |   __   ______    ______  ";
echo                    "$$ |__$$ | /      \  /       |$$ |  /  | /      \  /      \ ";
echo                    "$$    $$ | $$$$$$  |/$$$$$$$/ $$ |_/$$/ /$$$$$$  |/$$$$$$  |";
echo                    "$$$$$$$$ | /    $$ |$$ |      $$   $$<  $$ |  $$ |$$ |  $$ |";
echo                    "$$ |  $$ |/$$$$$$$ |$$ \_____ $$$$$$  \ $$ \__$$ |$$ \__$$ |";
echo                    "$$ |  $$ |$$    $$ |$$       |$$ | $$  |$$    $$/ $$    $$/ ";
echo                    "$$/   $$/  $$$$$$$/  $$$$$$$/ $$/   $$/  $$$$$$/   $$$$$$/  ";
echo                    "                                                            ";
echo                    "                                                            ";

Set vbsfile=%temp%\Intro.vbs
Set URL=http://hackoo.alwaysdata.net/Intro.mp3
Call:Play %URL% %vbsfile%
Start %vbsfile%
Timeout /T 18 /Nobreak>nul
::********************************************************************
Set MyFile=%~f0
Set ShorcutName=Block-UnBlock_Facebook
(
echo Call Shortcut("%MyFile%","%ShorcutName%"^)
echo ^'**********************************************************************************************^)
echo Sub Shortcut(CheminApplication,Nom^)
echo    Dim objShell,DesktopPath,objShortCut,MyTab
echo    Set objShell = CreateObject("WScript.Shell"^)
echo    MyTab = Split(CheminApplication,"\"^)
echo    If Nom = "" Then
echo    Nom = MyTab(UBound(MyTab^)^)
echo    End if
echo    DesktopPath = objShell.SpecialFolders("Desktop"^)
echo    Set objShortCut = objShell.CreateShortcut(DesktopPath ^& "\" ^& Nom ^& ".lnk"^)
echo    objShortCut.TargetPath = Dblquote(CheminApplication^)
echo    ObjShortCut.IconLocation = "Winver.exe,0"
echo    objShortCut.Save
echo End Sub
echo ^'**********************************************************************************************
echo ^'Fonction pour ajouter les doubles quotes dans une variable
echo Function DblQuote(Str^)
echo    DblQuote = Chr(34^) ^& Str ^& Chr(34^)
echo End Function
echo ^'**********************************************************************************************
) > %temp%\Shortcutme.vbs
Start /Wait %temp%\Shortcutme.vbs
Del %temp%\Shortcutme.vbs
Goto:CheckPassword
::****************************************************************************************************
:EOF
EXIT


回答2:

You cannot block facebook via hosts forwarding it to localhost.

Do it on your router or firewall.

But if works for you Go with batch file. Block

best use this vbs

https://www.experts-exchange.com/questions/26971010/VBScript-Hosts-File-add-remove-multiple-entries.html



回答3:

Here is our solution then.

Unblock

$HostFile = "$($env:windir)\system32\Drivers\etc\hosts"

$Hosts = Get-Content -Path $HostFile 
(Get-Content $HostFile) -replace '127.0.0.1 Facebook.com', '#127.0.0.1 Facebook.com' | Set-Content $HostFile

Block

$HostFile = "$($env:windir)\system32\Drivers\etc\hosts"
$Hosts = Get-Content -Path $HostFile 
(Get-Content $HostFile) -replace '#127.0.0.1 Facebook.com', '127.0.0.1 Facebook.com' | Set-Content $HostFile