2016-07-06 9 views
1

時間に応じて自分のPCからソーシャルメディアをブロックしたいと思います。 午後9時以降にブロックし、午前11時以降にブロック解除する(ペアレンタルコントロールのように) 私は次の試みを試みたが失敗した。 ウィンドウからのソーシャルメディアをブロックする方法

Unblock.batファイルに

@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 

を作成しblock.batファイル

@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 

を作成し、タスクスケジューラにこれら2 batファイルを追加しました。ブロックは午前11時に実行され、午後9時にロック解除されます。

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

を、手動でbatファイルを実行すると、何もしません:

私はPowerShellのからこのエラーを取得しています。

+0

をこんにちは、何が動作しませんか?バットファイル?スケジュールされたタスクですか?これを含めるように質問を編集してください。 – sodawillow

+0

あなたが失敗したことを正確に説明してください。 –

+0

powershellでテストスクリプトを実行する '(Get-Content test.txt)| ForEach-Object {$ _ -replace "from"、 "to"} | Set-Content test.txt'このコードは完全に機能します。しかし、私はパスを変更し、バットから実行されているときは動作していません。 – Nithee

答えて

1

は、このコードに打撃を与える:

@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 
+0

素晴らしい:-O、ホストファイル内のデータをブロックしている間にもう1つの問題があります。上書きしています。私はいつも必要です。 この素晴らしいコードのおかげで@Hackoo。 – Nithee

0

ローカルホストに転送するホストからフェイスブックをブロックすることはできません。

ルーターやファイアウォールで行います。

しかし、あなたのために働く場合は、バッチファイルを参照してください。ここで ブロック

最高使用このVBS

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

+0

あなたは絶対にできることはありますか...エキスパートエクスチェンジは恐ろしい場所です(paywall !!!)にリンクする –

+0

BDW vbsスクリプトがうまくいく、あなたのコンピュータでテストすることができます。 – DisplayName

0

は、私たちのソリューションです。

ブロックを解除

$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 

ブロック

$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 
関連する問題