參考網址:
https://kknews.cc/zh-tw/code/rygrn8o.html
裝置->插入Guest Additions CD 映像檔
cd /media
執行./VBboxLinuxAdditions.run
重啟後 進入系統設定螢幕解析度
參考網址:
https://kknews.cc/zh-tw/code/rygrn8o.html
裝置->插入Guest Additions CD 映像檔
cd /media
執行./VBboxLinuxAdditions.run
重啟後 進入系統設定螢幕解析度
參考網址:https://github.com/Alger23/ubuntu_dayi_for_ibus
下載安裝腳本 $ wget https://raw.githubusercontent.com/Alger23/ubuntu_dayi_for_ibus/master/dayisetup.sh 下載大易三碼字根檔 $ wget https://raw.githubusercontent.com/Alger23/ubuntu_dayi_for_ibus/master/dayi3.cin 執行安裝腳本 $ chmod u+x dayisetup.sh $ sudo ./dayisetup.sh
參考網址:https://github.com/majkinetor/posh/blob/master/MM_Network/Update-Proxy.ps1
# Author: Miodrag Milic <miodrag.milic@gmail.com> # Last Change: 14-Aug-2015. #requires -version 2.0 <# .SYNOPSIS Get or set system proxy properties. .DESCRIPTION This function implements unified method to set proxy system wide settings. It sets both WinINET ("Internet Options" proxy) and WinHTTP proxy. Without any arguments function will return the current proxy properties. To change a proxy property pass adequate argument to the function. .EXAMPLE Update-Proxy -Server "myproxy.mydomain.com:8080" -Override "" -ShowGUI Set proxy server, clear overrides and show IE GUI. .EXAMPLE Update-Proxy | Export-CSV proxy; Import-CSV proxy | Update-Proxy -Verbose Save and restore proxy properties .EXAMPLE $p = Update-Proxy; $p.Override += $p.Override += "*.domain.com" ; $p | proxy Add "*.domain.com" to the proxy override list .NOTES The format of the parameters is the same as seen in Internet Options GUI. To bypass proxy for a local network specify keyword ";<local>" at the end of the Overide values. Setting the winhttp proxy requires administrative prvilegies. .OUTPUTS [HashTable] #> function Update-Proxy() { [CmdletBinding()] param( # Proxy:Port [Parameter(ValueFromPipeline=$true, ValueFromPipelineByPropertyName=$true)] [string] $Server, # Semicollon delimited list of exlusions [Parameter(ValueFromPipelineByPropertyName=$true)] [string] $Override, # 0 to disable, anything else to enable proxy [Parameter(ValueFromPipelineByPropertyName=$true)] [string] $Enable, # Show Internet Options GUI [switch] $ShowGUI ) $key = "HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings" $r = gp $key Write-Verbose "Reading proxy data from the registry" $proxy=@{ Server = if ($PSBoundParameters.Keys -contains 'Server') {$Server} else { $r.ProxyServer } Override = if ($PSBoundParameters.Keys -contains 'Override') {$Override} else { $r.ProxyOverride } Enable = if ($PSBoundParameters.Keys -contains 'Enable') {$Enable} else { $r.ProxyEnable } } $set = "Server","Override","Enable" | ? {$PSBoundParameters.Keys -contains $_ } if ($set) { #if (!(test-admin)) { throw "Setting proxy requires admin privileges" } Write-Verbose "Saving proxy data to registry" sp $key ProxyServer $proxy.Server sp $key ProxyOverride $proxy.Override sp $key ProxyEnable $proxy.Enable if (!(refresh-system)) { Write-Warning "Can not force system refresh after proxy change" } Write-Verbose "Importing winhttp proxy from IE settings" $OFS = "`n" [string]$res = netsh.exe winhttp import proxy source=ie if ($res -match 'Access is denied') {Write-Warning $res} else { Write-Verbose $res.Trim()} } New-Object PSCustomObject -Property $proxy if ($ShowGUI) { start control "inetcpl.cpl,,4" } } # The registry changes aren't seen until system is notified about it. # Without this function you need to open Internet Settings window for changes to take effect. See http://goo.gl/OIQ4W4 function refresh-system() { $signature = @' [DllImport("wininet.dll", SetLastError = true, CharSet=CharSet.Auto)] public static extern bool InternetSetOption(IntPtr hInternet, int dwOption, IntPtr lpBuffer, int dwBufferLength); '@ $INTERNET_OPTION_SETTINGS_CHANGED = 39 $INTERNET_OPTION_REFRESH = 37 $type = Add-Type -MemberDefinition $signature -Name wininet -Namespace pinvoke -PassThru $a = $type::InternetSetOption(0, $INTERNET_OPTION_SETTINGS_CHANGED, 0, 0) $b = $type::InternetSetOption(0, $INTERNET_OPTION_REFRESH, 0, 0) return $a -and $b } Set-Alias proxy Update-Proxy proxy -Server "120.116.22.209:3128" -Override "59.127.219.48" -Enable 1
上面的程式碼存成 proxy_enable.ps1
proxy_enable.bat
@echo off powershell.exe -ExecutionPolicy Bypass -File "s:\bat\ps\proxy_enable.ps1" REM pause
參考網址:
福別問的部落格 一鍵開啟proxy代理伺服器、顯示隱藏檔案副檔名、新增刪除輸入法
網路上大部分的教學是修改登錄檔, 但是實際上是行不通的, 修改登錄檔只能"表面上"把開啟代理伺服器的選項打勾, 並沒有真正地開啟代理伺服器。 這就是為什麼你可能按照網路上的方法寫了一個修改登錄檔的批次檔, 執行之後仍然不能夠從校外連線, 但是進到設定代理伺服器的頁面時, 卻又可以看到其代理伺服器已經被打勾啟動, 這時候又突然可以校外連線了。 (當你"檢視"啟動代理伺服器到底有沒有打勾時, 這時候windows後台又會做一些動作, 來"真正地"啟動代理伺服器。)
本腳本的原理就只是很簡單地模擬鍵盤的動作。
# 註解 # 開啟[網際網路 - 內容] control inetcpl.cpl # 如果是要開啟[資料夾選項],顯示隱藏檔案的副檔名,可以用RunDll32.exe shell32.dll,Options_RunDLL 7 # 如果是要開啟[地區及語言],新增或刪除輸入法,可以用control intl.cpl # 更多進入控制台下的項目的指令,參考https://support.microsoft.com/en-us/help/192806/how-to-run-control-panel-tools-by-typing-a-command # 讓系統取得title叫做[開啟網際網路 - 內容]的視窗 # 並讓該視窗變成當前視窗 $wshell = New-Object -ComObject wscript.shell; $wshell.AppActivate('開啟網際網路 - 內容') #停頓1秒,避免delay造成下一步無法順利進行 Sleep 1 # 按下鍵盤上的各鍵 # ' '表示按下space鍵, +表示搭配Shift, %表示搭配Alt # 各鍵的對應表參考https://msdn.microsoft.com/en-us/library/office/aa202943(v=office.10).aspx # 注意,每個電腦的按鍵組合可能不相同, # 請自行做相應的修改 $wshell.SendKeys('+{TAB}') For ($i=1; $i -le 4; $i++) {$wshell.SendKeys('{RIGHT}')} $wshell.SendKeys('%l') $wshell.SendKeys('{TAB}') $wshell.SendKeys('{TAB}') $wshell.SendKeys(' ') $wshell.SendKeys('{ENTER}') $wshell.SendKeys('{ENTER}')
參考網址:https://github.com/majkinetor/posh/blob/master/MM_Network/Update-Proxy.ps1
# Author: Miodrag Milic <miodrag.milic@gmail.com> # Last Change: 14-Aug-2015. #requires -version 2.0 <# .SYNOPSIS Get or set system proxy properties. .DESCRIPTION This function implements unified method to set proxy system wide settings. It sets both WinINET ("Internet Options" proxy) and WinHTTP proxy. Without any arguments function will return the current proxy properties. To change a proxy property pass adequate argument to the function. .EXAMPLE Update-Proxy -Server "myproxy.mydomain.com:8080" -Override "" -ShowGUI Set proxy server, clear overrides and show IE GUI. .EXAMPLE Update-Proxy | Export-CSV proxy; Import-CSV proxy | Update-Proxy -Verbose Save and restore proxy properties .EXAMPLE $p = Update-Proxy; $p.Override += $p.Override += "*.domain.com" ; $p | proxy Add "*.domain.com" to the proxy override list .NOTES The format of the parameters is the same as seen in Internet Options GUI. To bypass proxy for a local network specify keyword ";<local>" at the end of the Overide values. Setting the winhttp proxy requires administrative prvilegies. .OUTPUTS [HashTable] #> function Update-Proxy() { [CmdletBinding()] param( # Proxy:Port [Parameter(ValueFromPipeline=$true, ValueFromPipelineByPropertyName=$true)] [string] $Server, # Semicollon delimited list of exlusions [Parameter(ValueFromPipelineByPropertyName=$true)] [string] $Override, # 0 to disable, anything else to enable proxy [Parameter(ValueFromPipelineByPropertyName=$true)] [string] $Enable, # Show Internet Options GUI [switch] $ShowGUI ) $key = "HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings" $r = gp $key Write-Verbose "Reading proxy data from the registry" $proxy=@{ Server = if ($PSBoundParameters.Keys -contains 'Server') {$Server} else { $r.ProxyServer } Override = if ($PSBoundParameters.Keys -contains 'Override') {$Override} else { $r.ProxyOverride } Enable = if ($PSBoundParameters.Keys -contains 'Enable') {$Enable} else { $r.ProxyEnable } } $set = "Server","Override","Enable" | ? {$PSBoundParameters.Keys -contains $_ } if ($set) { #if (!(test-admin)) { throw "Setting proxy requires admin privileges" } Write-Verbose "Saving proxy data to registry" sp $key ProxyServer $proxy.Server sp $key ProxyOverride $proxy.Override sp $key ProxyEnable $proxy.Enable if (!(refresh-system)) { Write-Warning "Can not force system refresh after proxy change" } Write-Verbose "Importing winhttp proxy from IE settings" $OFS = "`n" [string]$res = netsh.exe winhttp import proxy source=ie if ($res -match 'Access is denied') {Write-Warning $res} else { Write-Verbose $res.Trim()} } New-Object PSCustomObject -Property $proxy if ($ShowGUI) { start control "inetcpl.cpl,,4" } } # The registry changes aren't seen until system is notified about it. # Without this function you need to open Internet Settings window for changes to take effect. See http://goo.gl/OIQ4W4 function refresh-system() { $signature = @' [DllImport("wininet.dll", SetLastError = true, CharSet=CharSet.Auto)] public static extern bool InternetSetOption(IntPtr hInternet, int dwOption, IntPtr lpBuffer, int dwBufferLength); '@ $INTERNET_OPTION_SETTINGS_CHANGED = 39 $INTERNET_OPTION_REFRESH = 37 $type = Add-Type -MemberDefinition $signature -Name wininet -Namespace pinvoke -PassThru $a = $type::InternetSetOption(0, $INTERNET_OPTION_SETTINGS_CHANGED, 0, 0) $b = $type::InternetSetOption(0, $INTERNET_OPTION_REFRESH, 0, 0) return $a -and $b } Set-Alias proxy Update-Proxy
參考網址:平凡的幸福
PowerShell Scripts 檔案,附檔名為 .ps1。(數字的1)
PowerShell與一般直譯式語言一樣,直接以文字檔編輯,也不用編譯。
如果想要執行.ps1 的檔案,必須在PowerShell的介面下或直接以powershell指令執行
1、在PowerShell介面下
在CMD底下或「開始」–>「執行」,輸入powershell,會出現下列的提示(前面會有PS的識別字)
PS C:\>
再將Script檔案以./執行,如
PS C:\> ./test.ps1
或是以完整路徑+Script檔案來執行,如
PS C:\> d:\test.ps1
2、以powershell指令來執行
在CMD底下或「開始」–>「執行」,輸入powershell + script檔案,例如:
C:\> powershell "D:\test.ps1" 或是 C:\> powershell -command "D:\test.ps1"
註:如果資料夾名稱有「空白字元」,則必須以「單引號」來區別。例如:D:\'test ps'\test01.ps1
如何查詢所有指令:
PS C:\> get-command
如何查詢指令用法,例如要查詢get-process:
PS C:\> get-help get-process 或是 PS C:\> help get-process 或是 PS C:\> get-process -?
(說明的文件是中文的,而且也有範例可以查詢)
線上查詢所有的 Windows PowerShell 指令和說明文件,可使用「*」萬用字元或是「?」單一字元。例如:
get-help *:列出所有的主題,包括指令和概念。
get-help * | more:列出所有的主題,包括指令和概念,more表示當資料已顯示整個視窗就暫停。
get-help about*:列出所有的概念主題。
get-help about_???:列出所有about_後面最多三個字元的概念主題,如about_do、about_for
get-help get*:列出所有 get 開頭的主題。
get-help {<指令名稱或主題名稱>}:列出指定的指令或主題的說明,例如 get-help dir
教學網址:
http://www.pstips.net/
http://technet.microsoft.com/zh-tw/scriptcenter/dd742419.aspx
參考網址:office指南
在執行 Windows PowerShell 的 .ps1
指令稿時,出現「系統上已停用指令碼執行」的錯誤訊息,該如何解決?
. : 因為這個系統上已停用指令碼執行,所以無法載入 C:\Users\USERNAME\Documents\Windows PowerShell\profile.ps1 檔案。如需詳細資訊,請參閱 about_Execution_Policies,網址為 https:/go.microsoft.com/fwlink/?LinkID=135170。 位於 線路:1 字元:3 + . 'C:\Users\USERNAME\Documents\WindowsPowerShell\profile.ps1' + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : SecurityError: (:) [], PSSecurityException + FullyQualifiedErrorId : UnauthorizedAccess
若執行 .ps1
指令稿卻出現這樣的錯誤訊息,表示目前 PowerShell 中的執行原則(Excution Policy)可能被設定為 Restricted
,不允許執行指令稿。
若想要讓 PowerShell 允許執行自己撰寫的 .ps1
指令稿,可依照以下步驟更改執行原則的設定。
STEP 1
在 PowerShell 啟動捷徑上按下滑鼠右鍵,選擇以系統管理員身分執行 PowerShell。
STEP 2
執行以下 PowerShell 指令,將執行原則設定為 RemoteSigned
:
Set-ExecutionPolicy RemoteSigned
變更執行原則之後,就可以正常執行自己撰寫的 .ps1
指令稿了。
如果想要查詢目前 PowerShell 的執行原則設定值,可以執行以下 PowerShell 指令:
Get-ExecutionPolicy
RemoteSigned
如果想要將 PowerShell 的執行原則回復成預設的 Restricted
,可以執行:
Set-ExecutionPolicy Restricted
參考網址:A夢之IT可憐貓
Proxy Server 的分流程式( proxy.pac)
如果你的對proxy server log 檔做流量分析,結果排行榜的前幾名都是自己學校的網站,那網路的流量就有點浪費了;如果貴單位必須設上層的 Proxy Server ,那影響更大了,因為資料都由上層 Proxy Server 送來,即使瀏覽的是LOCAL 網站,快則由 local 的 proxy server 送來,慢則由上層 server 先到local 抓取,再送過來,等於是繞了一圈。
Squid 1.X 版時,有設定 local IP 和 local domain 的功能,2.X 版也有類似的設定,但一直試不出不抓網域內 網站的設定,所以、得靠分流程式;在一般較大的單位中,Proxy server 不只一台,這也得靠 分流程式的設定;總之,要發揮proxy server 的效能與有效控管,分流程式是最佳選擇。
分流程式是由JavaScript Function 組成,預設的副檔名是 .pac ,一般都是用 proxy.pac 這個名字,它必需獨立,不能包含在 HTML 中,格式如下
function FindProxyForURL(url, host)
{
……..
……..
}
proxy.pac 要放在那裡呢? 你可以把它當成網頁,放在 web server 上,讓瀏覽器讀取。 例如我們把設定檔存成 proxy.pac,然後放在 一台執行 Apache 的 WEB SERVER (www.cses.tcc.edu.tw) 的首頁目錄,那麼我們在瀏覽器的設定就是:
http://www.cses.tcc.edu.tw/proxy.pac
也許你會產生疑問,proxy.pac 和 proxy server 不用在同一台電腦上嗎? 那誰又規定跑 squid 的 proxy server 也要執行 apache 。 ^_^
那些 web server 支援呢? Netscape 、Apache、CERN、NCSA都可以,以Apache 為例,請檢查 httpd.conf 中是否有以下的設定,如果沒有就自己加上去吧!
Addtype application/x-ns-proxy-autoconfig .pac
一個一個function 來說明太麻煩了,就直接用例子來說明好了。
範例一:基本簡單型
function FindProxyForURL(url, host) { if (isPlainHostName(host) || dnsDomainIs(host, ".cses.tcc.edu.tw")) return "DIRECT"; else return "PROXY proxy.cses.tcc.edu.tw:3128; DIRECT"; } |
說明:以我學校為例,在Browser 的 URL 欄位打 www 就會連到 www.cses.tcc.edu.tw ,第一個 isPlainHostName(host) 就是處理這個部份,第二個部份 dnsDomainIs(host, ".cses.tcc.edu.tw") 就是處理 linux.cses.tcc.edu.tw 這種網址,這些網域都是 local 的網站,所以回應 DIRECT ,直接去抓就可以了。
如果不符以上情形,那就是透過 proxy.cses.tcc.edu.tw:3128 去抓資料,後面加上 DIRECT 是怕 PROXY 當了,也可以直接抓取。
範例二:多了 IP 的判斷
function FindProxyForURL(url, host) |
說明:這一個例子只是比上例多一個檢查 IP 的動作,只要是連往 163.17.208.x/24 也都直接存取。
範例三:LOCAL 、特殊網站、其他三種情形
function FindProxyForURL(url, host)
if (dnsDomainIs(host, ".edu.tw")) |
說明:因為 CODERED 的關係,中興大學對 80 PORT 的流量做管制,必需經過 proxy server ,所以,所有的教育網站都經過 proxy server ,興大提供 cache1 cache2 兩台 server ,是 edu.tw 的網站都要透過特定的 巨server , 要注意的是兩台 PROXy SERVER 的寫法。
我的設定:
function FindProxyForURL(url, host) {
# 自己學校的網域、IP 、縣網、縣網 IP 還有電子公文 |
小程式我會寫,但是JavaScript沒碰過,如果怕語法有錯,推薦一套編輯器 http://www.editplus.com/ 管它什麼 HTML, ASP, PHP, Perl, VBScript, JavaScript, CSS files, C/C++, Java, JSP, SQL, Pascal, Python 通通支援,只要下載它的 語法檔或控制檔,檔案都小的,不過它沒有 巨集的功能。
參考網址:winaero
例
control.exe /name microsoft.mouse
control.exe /name microsoft.DateAndTime
@%SYStemRoot%\System32\timedate.cpl,-51
How to Create Shortcuts to Open Control Panel Items in Windows 10