2022年12月21日 星期三

2023 [Win11/Win10] 家用版如何停用自動更新? 不用第三方軟體

2023 [Win11/Win10] 家用版如何停用自動更新?  不用第三方軟體

家用版就算禁用服務也會在一時間之後又自己悄悄開啟。而就算手動安裝從 gpedit.msc(群組原則) 下手,基本上就是一點反應也沒有。

有嘗試過的人大概知道上面再講什麼XD


如果只是不想被自動升級到Win11,而不是禁用整個安全性更新可以參考這篇處理
CHG: 【禁止自動更新下載Win11】不想升級如何停留在Win10



打開終端機

操作是用命令的方式設置的,不過不用怕只是貼上一行並按執行而已


對於Win10可以用快捷鍵啟動

  1. 先先按下 Win+X 然後再按下 A ➔ 會自動打開終端機



新版 Win11 因為沒有快捷鍵換個方式開

  1. 對著開始(微軟標誌)按右鍵
  2. 然後選擇 終端機(系統管理員)



停用自動更新:: 方法1

這個是直接調整延遲更新的上限,除限制後就隨便調整了相當於禁用更新了。


調整設定裡圖形介面的暫緩上限 (天數自行調整)

# 設定暫緩更新的範圍上限到 90 天
irm bit.ly/SetWinUpd|iex; Set-WUPauseMax 90

# 復原暫緩更新的範圍上限設置
irm bit.ly/SetWinUpd|iex; Set-WUPauseMax -RestoreDefault



這個只是解除上限而以並沒有實際延緩更新,設定完畢之後需要自行到設定裡面延緩更新,或是接著執行下面的命令調整

暫緩更新 (天數自行調整)

# 暫緩更新 90 天
irm bit.ly/SetWinUpd|iex; Set-WUPause 90

# 復原暫緩更新設置
irm bit.ly/SetWinUpd|iex; Set-WUPause -RestoreDefault





停用自動更新:: 方法2

這個是比較強力的手段在緩存資料夾生成一個假檔案,藉此阻止系統下載更新。

irm bit.ly/StopWinUpdate|iex; StopWinUpdate -Stop



復原就把那假檔案砍掉就好了,對應的恢復代碼

irm bit.ly/StopWinUpdate|iex; StopWinUpdate -Default



方法2停用後的狀況

Win10 測試結果



手動啟動服務的話會跳這個訊息,錯誤 0x80070003: 系統找不到指定的路徑。



Win11測試結果



手動啟動服務







2022年12月18日 星期日

【免重灌】Windows 專業版降家用版

【免重灌】Windows 專業版如何降級回家用版

升級可以參考這篇 https://charlottehong.blogspot.com/2019/02/win10.html

降級比較麻煩沒辦法直接降回去,直接保資料覆蓋安裝就好,這邊提供的方法是可以直接在Windwos上操作的,就像安裝應用程式一樣下一步到就可以了。

使用者資料和應用程式都會保留下來,不會有變動。


修改登錄檔數值

先從登錄檔把版本號改成 Windwos Home 版本,藉此來欺騙微軟官方的軟體強制安裝自己所需要的版本

按下 Win+X 然後再按下 A ➔ 打開終端機。然後輸入底下的代碼按Enter


1. 將登錄檔設置成家用版 (要降回去的)

reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v "EditionID" /t REG_SZ /d "Core" /f
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v "ProductName" /t REG_SZ /d "Windows 10 Home" /f 


2. 將登錄檔設置成專業版 (要升級的話)

reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v "EditionID" /t REG_SZ /d "Professional" /f
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v "ProductName" /t REG_SZ /d "Windows 10 Pro" /f 


設置好登錄檔之後安裝的時候就會自動選所需的版本安裝了。




覆蓋安裝 Windows

再來需要載官方的媒介來升級,用ISO安裝也可以

這邊示範是用MediaCreationTool

微軟官方載點
https://www.microsoft.com/zh-tw/software-download/windows10

進去之後點擊”立即下載”下載工具



安裝

再來安裝基本上就是下一步按到底




這邊下載可能要等一陣子


安裝按下去就開始重新安裝了,時間會比較久跑完會自動重啟到桌面。


2022年12月17日 星期六

Windwos7 無法安裝 VMTool 如何解決

Windwos7 無法安裝 VMTool 如何解決

似乎單純只是少更新補釘而已補丁的名字是
windows6.1-kb4474419-v3-x64_b5614c6cea5cb4e198717789633dca16308ef79c.msu

這個安裝好就可以正常安裝VM的驅動了,找不到可以參考這邊備份載點
https://mega.nz/folder/1okm0LIA#dIQPQ6duhJ4gPFPV-pkUWQ


2022年11月27日 星期日

Windwos11 Exploer 資料夾資訊 如何自動更新

Windwos11 Exploer 資料夾資訊 如何自動更新

Windwos11 目前22H2 貌似預設不會自動更新資料夾一定要按重新整理的樣子。姑且設定是有的可能是為了效能相較於 Windwos10 預設值是關閉的。這邊提供一個快速更改的方法。

開啟自動更新資料夾資訊

先按下 Win+X 然後再按下 A ➔ 打開終端機。然後輸入底下的代碼

irm bit.ly/ExploreReflash|iex

執行完畢就好了





對應的登錄檔值

上面程序執行完改動的值

HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{BDEADE7F-C265-11D0-BCED-00A0C90AB50F}\Instance






2022年11月23日 星期三

WinMerge 使用 命令.bat 輸出兩個資料夾的比較報告

WinMerge 輸出兩個資料夾的比較報告

弄了好久才搞定怎麼輸出改完程式之後要提交的報告,所有的準備工作都做完了 WinMerge 可裝可不裝,不裝預設會下載到暫存資料夾啟動。

再來就依靠 Powershell 的魔法吧直接一行指令搞定全部的事情

 


懶人包的使用方式

先按下 Win+X 然後再按下 A ➔ 打開終端機。然後輸入底下的代碼

irm bit.ly/DiffSource|iex; DiffSource $LeftPath $RightPath

打完自動會生成報告



詳細使用說明

# 設定
$LeftPath  = "Z:\Work\INIT"
$RightPath = "Z:\Work\master"
$OutPath   = "Z:\Work\Diff\index.html"

# 載入函式庫
irm bit.ly/DiffSource|iex; 

# 比較並自動打開報告 (輸出到暫存資料夾)
DiffSource $LeftPath $RightPath
# 比較並輸出到特定資料夾
DiffSource $LeftPath $RightPath -Output $OutPath
# 比較並輸出到特定資料夾但不打開網頁
DiffSource $LeftPath $RightPath -Output $OutPath -NoOpenHTML

# 忽略相同檔案輸出到檔案總攬
DiffSource $LeftPath $RightPath -IgnoreSameFile
# 忽略白色 (右端空白, 跳行, 結尾符號)
DiffSource $LeftPath $RightPath -IgnoreWhite

# 比較壓縮檔中第二層資料夾(資料夾名必須與壓縮檔名一致)
DiffSource $LeftPath $RightPath -CompareZipSecondLayer

# 排除特定資料夾
DiffSource $LeftPath $RightPath -Filter "!.git\;!.vs\"
# 過濾特定檔名
DiffSource $LeftPath $RightPath -Filter "*.css;*.js;"

# 檔案名稱過濾與排除: 物件清單(會刪除的資料夾路徑僅取結尾檔名輸入Filter)
DiffSource $LeftPath $RightPath -Include @("xsl/A.xsl", "css/B.css")
DiffSource $LeftPath $RightPath -Include (Get-Content "Z:\Work\list.txt")

-

2022年11月15日 星期二

git 如何儲存明碼 自動登入

git 如何儲存明碼 自動登入

需要改兩個地方一個是git的設定檔指定到特定的檔案,第二個是儲存密碼的檔案。

git設定檔可以在兩個地方設定,一個是在git主程式裡面的etc文件,另一個是在使用者文件裡面,兩個都可以區別只是一個全域一個是針對特定使用者。


.gitconfig 設定檔

如果是安裝在預設位置全域設定檔存在這個位置

C:\Program Files\Git\etc\

這個路徑下的 gitconfig 檔案,沒有副檔名也沒有點開頭(使用者路徑的話有點開頭)

在這裡面隨便找個空行新增底下的字串

[credential]
    helper = store --file ".git/.git-credentials"

後面是的是指定特定檔案,上面的範例我是把它存在個別專案的隱藏.git資料夾

這是相對路徑相對於這三個地方

  • 全域ect
  • 使用者資料夾
  • 當前git倉庫下

在這三個地方任意放都可以。

如果不放隱藏的 .git 內也可以把它砍掉就好,只是你的明碼文本小心別放在倉庫內一起提交到倉庫了,放在使用者資料夾或全域的etc內。


如果要指定這份密碼只給特定的線上倉庫使用可以在credential後面指定

[credential "http://127.0.0.1:8081"]
    helper = store --file ".git/.git-credentials"


.git-credentials 設定檔

第二個文檔是 .git-credentials 創建他然後把它放到你要的倉庫內,內容跟著下面打

http://root:PassWd@127.0.0.1%3a8081

然後上面的個別是代表這些意思

IP : 127.0.0.1
Port: 8081
AC : root
PW : PassWd

如果是自己建立的服務器更改成對應的就可以連上了

不過畢竟是儲存明碼,純粹就是區網內求方便的快速做法,毫無安全性可言。
公開的話還是建議用RAS加密金鑰比較好。



2022年11月11日 星期五

筆電如何強制使用 獨立顯卡NVIDIA 輸出 遊戲或軟體

筆電如何強制使用 獨立顯卡NVIDIA 輸出 遊戲或軟體

一般來說絕大多數的筆電是沒有顯卡直連的,內建的螢幕是連接在內顯上,這會間接導致效率變差,多一個路徑先傳輸到內顯然後才輸出到螢幕。

大概會有5~10%不等的性能損耗,不過這都還不是大事要命的是某些遊戲支持性不好,壓著就不在顯卡在跑,直接在內顯跑了。

以往的解法是在NVIDIA設定面板裡面調整,不過隨著Windows的版本更新,不知道從哪一版本之後設定被整合Windows設定裡了,導致部分遊戲或軟體無法從NVIDIA設定面板裡調整。

除了這個坑之外還有第二個坑是,有些軟體壓就不支援這個設定,即便調成獨立顯卡也依然跑在內顯上,這個留著在後半段解決。


從圖形設定指定由獨立顯運算

圖型設定在 桌面右鍵→顯示設定→圖形設定 可以找到。或者直接在開始選單裡搜尋 “圖形設定” 也可以找到。

點進來之後長這個樣子



進去之後點擊瀏覽選擇你要執行的遊戲或程式把她加入清單



然後從清單裡找到剛剛新增的遊戲,點選選項

進去之後就可以選擇高性能或省電來決定要跑在哪張卡上



預設狀態下"讓Windows決定"的意思是看顯示設定裡1號螢幕接在哪顆GPU就用哪顆GPU計算,所以如果外接螢幕是接在獨立顯卡上,那就會自動切過去了。



軟體支援性差即便設定也無效

確實有部分軟體或遊戲會這個樣子,解決辦法可以打下面的指令強制切換到獨立顯卡輸出

先按下 Win+X 然後再按下 A ➔ 打開終端機輸入底下的命令

irm bit.ly/SwitchSDC|iex

執行完畢就會切換過去了,不過重新啟動之後會恢復。



2022年11月3日 星期四

不小心按到 更新升級 Win11 還沒重新啟動想反悔該怎麼辦

不小心按到 更新升級 Win11 還沒重新啟動想反悔該怎麼辦

手殘按到但是還沒重新啟動卡在要求的階段這個還有救,清理掉更新的暫存檔就好了



清理更新暫存檔案

先按下 Win+X 然後再按下 A ➔ 打開終端機,接下來輸入底下的代碼即可

irm bit.ly/StopWinUpdate|iex; Remove-WinUpdateStorage

會自動清理掉更新的緩存,強制移除更新狀態。



接下來選擇不更新的重新啟動即可



啟動完畢會跳回原本的狀態



這樣就好摟,免得手濺按到第二次,建議是禁用掉Win11的更新(不會影響到日常的安全性更新),詳細可以參考這篇站內文。

CHG: 家用版如何避免 被擅自更新成 Windows11






2022年10月30日 星期日

Rdp遠端桌面連線 降低延並遲提高禎數到 60fps

Rdp遠端桌面連線 降低延並遲提高禎數到 60fps

有一部分設定從群組原則可以改,位置在這裡
系統管理範本\Windwos元件\遠端桌面服務\遠端桌面工作階段主機\遠端工作階段環境



其中有一個啟用GPU運算這個在舊版Windows預設值是關閉的,我這邊Win10 21H2版本預設已經是開啟了,這個版本以後可以不用管這個設定。



接下來是最關鍵的啟用高禎數的設定,這邊是從登錄檔設定的,自行打開命令提示字元或是 Powershell 輸入底下命令

reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations" /v "DWMFRAMEINTERVAL" /t REG_DWORD /d 15 /f


之後重新啟動電腦即可,測試可以從 UFO TEST網站 來測試是否啟用高禎數了
網站鏈結:https://www.testufo.com/






2022年10月17日 星期一

PowerShell 滑鼠抖動 防止系統休眠

PowerShell 滑鼠抖動 防止系統休眠

主要目標是公司沒有管理員權限的電腦,無法關閉休眠又不想花大錢買滑鼠抖動器。

快速使用

irm bit.ly/KeepScrOn|iex; KeepScrOn -Time:59

具體功能會每59秒向右移動一格再向左移動回來,速度依照各電腦CPU而定,基本上電腦再爛也看不出來的,實現真正沒有妨礙的防待機。

代碼寫了很多應該有一半以上是冗於的,主要是為了精準計算在各種解析度下仍然可以精準的移動1px,不過CPU速度之快多移動幾格應該是看不出來拉,如果放棄精準計算的話大概可以減少8成代碼吧XD

參考了很多資料有一個坑是,用PowerShell內建的滑鼠移動函式雖然真的會移動,但卻沒辦法防止休眠,一定要走C#路線的代碼才能防止。



還有一個功能是離線加密安裝到電腦上,上面代碼是連我github才能運作的

irm bit.ly/KeepScrOn|iex; Install-App "C:\ProgramData\Adobe\Temp\keep"

這個路徑是隨意找的比較隱密的位置,會自動把代碼本體下載到指定路徑並加密,然後新增一個捷徑到桌面。需要使用再從捷徑上點擊即可。捷徑別丟了解密Key藏在捷徑裡面。




2022年10月7日 星期五

PowerShell ExecutionPolicy 權限變更詳細解說

PowerShell ExecutionPolicy 權限變更詳細解說



執行原則

ExecutionPolicy(執行原則) 是 Windows 的保護機制,預設狀態是最低權限只能執行有簽証證的ps1檔案。預設有5+1個設定值,最後一個1是預設的空欄未設定。

執行原則的官方說明:關於執行原則 - PowerShell | Microsoft Learn


先上蓋略圖 (実行ポリシーExecution Policy)

執行原則有簽證無簽證
本地檔案經由網路下載的檔案
Restricted×
無法執行
×
無法執行
×
無法執行
AllSigned
可執行
×
無法執行
×
無法執行
RemoteSigned
可執行

可執行
×
無法執行
Unrestricted
可執行

可執行

會跳出確認事項
Bypass
可執行

可執行

可執行


大概比較有疑問的是本地檔案跟經由網路下載的檔案有什麼區別,我也沒有測出變成網路檔案的條件,大概列舉幾個案例

  1. 上傳雲端再下載毫無疑問會變成網路檔案
  2. 透過隨身碟傳輸到其他電腦似乎不受影響是可以的執行的
  3. 透過網路芳鄰直接點兩下執行,會被當作網路檔案




作用範圍

範例代碼
# 計算當前執行原則
Get-ExecutionPolicy

#獲取各個範圍的詳細執行原則
Get-ExecutionPolicy -List


詳細執行原則會把每個範圍的原則寫出來,會有權限大小互相覆蓋的問題。第一行的指令會自動幫你計算,各個範圍總合起來後目前應該是什麼權限。

預設的執行原則全部都是 Undefined 這個就是未設定 NULL 的意思,預設值全 Undefined 的形況下經過第一行計算出來會返回 Restricted 權限的結果。


範圍有這些
        Scope ExecutionPolicy
        ----- ---------------
MachinePolicy       Undefined
   UserPolicy       Undefined
      Process       Undefined
  CurrentUser       Undefined
 LocalMachine       Undefined


1. MachinePolicy,  UserPolicy

前兩個Policy結尾的是從登錄檔設定的,下面是 MachinePolicy 設定的範例。

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\PowerShell]
"EnableScripts"=dword:00000001
"ExecutionPolicy"="RemoteSigned"


快速命令 (MachinePolicy)

reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\PowerShell" /v "EnableScripts" /t REG_DWORD /d 1 /f
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\PowerShell" /v "ExecutionPolicy" /t REG_SZ /d RemoteSigned /f


快速命令 (UserPolicy)

reg add "HKEY_CURRENT_USER\SOFTWARE\Policies\Microsoft\Windows\PowerShell" /v "EnableScripts" /t REG_DWORD /d 1 /f
reg add "HKEY_CURRENT_USER\SOFTWARE\Policies\Microsoft\Windows\PowerShell" /v "ExecutionPolicy" /t REG_SZ /d RemoteSigned /f


ExecutionPolicy的值自行依照情況修改,這邊預設是 RemoteSigned 通用性比較高



2. Process, CurrentUser

直接在 PowerShgell內 用 Set-ExecutionPolicy 追加範圍提示即可修改

Set-ExecutionPolicy Bypass CurrentUser -Force
Set-ExecutionPolicy Bypass Process -Force

範圍 Process 是本次運行的程序,可以當作臨時的當前視窗關掉就沒了


3. LocalMachine

最後一個是 Set-ExecutionPolicy 的預設修改選項,不給範圍會改變 LocalMachine

Set-ExecutionPolicy Bypass -Force

相比於 CurrentUser 這個不分使用者任何人登陸都一樣




PowerShell 參數 -ExecutionPolicy

這是另外執行新視窗 PowerShell 的時候設定權限,有兩種方式可以執行。

權限範圍僅限制在新執行的視窗內,預設執行完會自動退出,退出後回到原本的視窗就沒有權限了,可以視為權限僅這一行。


1. 以傳入命令的方式執行

Powershell.exe -nop -exec bypass -c "Write-Host 'Hello Word'"

注意 -c 之後不能有其他命令選項,該選項限定只能是所有選項的最結尾。


2. 以傳入檔名的方式執行腳本

Powershell.exe -nop -exec bypass -file ".\example.ps1"

如果 example.ps1 是高級腳本需要輸入參數,直接補在後面就可以了。





以讀取的方式使用Invoke-Expression執行

這個是最終極的手段可以突破執行原則,不要把 ps1 當成檔案執行或載入,把它當作 txt 讀取然後執行即可。

因為安全限制是針對執行檔案而不是執行命令,想要要確保萬無一失直接用這個辦法比較保險絕對不會出錯的。


$Path = 'D:\MyPwshFile.ps1'
$Enc  = [Text.Encoding]::GetEncoding('UTF-8')
Invoke-Expression( [Io.File]::ReadAllText($Path, $Enc) )


注意路徑盡量使用絕對路徑,因為C#的路徑未必會跟 PowerShell 路徑相同,可能會導致函式 [Io.File]::ReadAllText 找不到路徑。

解決辦法可以參考這篇站內文:PowerShell 如何轉換絕對路徑




2022年9月28日 星期三

日本駕照譯本 有效期限如何計算

日本駕照譯本 有效期限如何計算

相信大家應該常常聽到有效期限說法不一定的問題對吧,甚至有些人租不到車子之類的,明明就有譯本他可以我就不行。

這次為了能在日本騎車,回台灣的時候順便把重機的駕照考了,打算就這樣拿譯本來騎車。結果租車店直接給打槍了,說沒有在台灣待超果三個月。

後來一個折衷的辦法就是,我朋友租車而我其他的車子,想說應該就可以了吧。只是這邊我就有疑點了,店家是因為不合法不給租還是單純只是店家不想租呢?

-

規則

參考的網頁是這裡
https://www.koryu.or.jp/tw/faq/tabid1185.html

有效期限簡單總結一句話

觀光客:以入境為起點,開始計算一年有效期
長期居:以出境超過3個月後再次入境為起點,開始計算一年有效期

  1. 駕照正本過期會提前結束
  2. 期間或期後再入境可以重置一年效期


以我的情況來說短期的回台灣沒超過3個月,不但換不了駕照也騎不了車了…


附上日本官方原文:台湾の運転免許保有者が日本において車両を運転するための制度 | 公益財団法人日本台湾交流協会 (koryu.or.jp)

(2)運転できる期間

 観光客等の短期滞在者の場合、日本に入国した日から1年間又は台湾の運転免許証の有効期間のいずれかの短い期間であり、この期間以外に車両を運転すれば無免許運転となるため罰せられます。 ただし、日本から一度出国して再入国した場合は、再入国した日から1年という計算になります。

 一方、住民基本台帳に記録されている方(長期滞在者等)については、出国の確認又は再入国の許可等を受けて日本から出国し、3か月以上の期間を空けて日本に入国した場合、その入国の日が運転することができる期間の起算日(入国した日)となります。しかし、出国してから再び日本へ入国するまでの期間が3か月未満の場合は、その入国の日は運転することができる期間の起算日とはなりません。詳細は、こちらの資料をご覧ください。

 

-

譯本的有效期限

譯本本身是沒有效期限的,網路上的說法一年就到期了要重辦這是錯誤的。真正的限制是距離 上次出境超過三個月 有沒有超過一年,如果沒有就算你譯本是新辦的也是不合法的。

但是不排除警察執法時不清楚法規細節,推薦每次出遊時花個100元保平安。對於簽證超過半年的居住者,建議是趕緊換成日本駕照省得麻煩。


順帶一提為了確認這個問題一開始直接跑去大間的警察署問,警察署的人直接跟我說這個是台灣的在日本不能用,日本只認國際駕照跟日本駕照。

要是真被被攔下來了找麻煩,直接打給租車店家讓他幫你解釋吧www

同樣的也會造成一種情況就是,店家直接不租給你,遇到不認譯本的店家直接換一家可能比較快,可能壓根就不是不知道這是合法的而是不想做這麻煩的生意。

-



參考

2022年9月18日 星期日

PowerShell 安全密碼物件 SecureString 如何生成與使用

PowerShell 安全密碼物件 SecureString 如何生成與使用

安全密碼網上看了一堆好像都沒人整理起來,這次有用到一次把全部打通了

整理啊下大概就下面幾種物件要互轉

  • 原始密碼
  • 加密暗號
  • 安全字串

全部的轉換方法可以參考下面的範例

有一點要注意的是,加密過後的安全密碼只能在原機原使用者解密,無法在其他電腦解密的。


安全物件與明暗碼轉換

# 普通字串密碼
$PassWord = "Charlotte.Hong"
# 普通字串 -> 安全密碼物件
$secure = ConvertTo-SecureString $PassWord -AsPlainText -Force
# 安全密碼物件 -> 加密字串
$encrypt = ConvertFrom-SecureString -SecureString $secure

# 加密字串 -> 安全密碼物件
$secure = ConvertTo-SecureString -String $encrypt
# 安全密碼物件 -> 普通密碼字串
$bstr = [Runtime.InteropServices.Marshal]::SecureStringToBSTR($secure)
$Plaintext = [Runtime.InteropServices.Marshal]::PtrToStringBSTR($bstr)

快速轉換

# 加密密碼
$encrypt = ConvertFrom-SecureString(ConvertTo-SecureString -A -F "PassWD")
# 解密密碼
[Runtime.InteropServices.Marshal]::PtrToStringBSTR([Runtime.InteropServices.Marshal]::SecureStringToBSTR((ConvertTo-SecureString $encrypt)))



加密密碼並把他複製到剪貼簿中

&{param($_)ConvertFrom-SecureString($_|ConvertTo-SecureString -A -F)|scb} PassWD


如果要避免密碼被紀錄在歷史命令中,可以從CMD命令提示字元執行
(這行也會自動複製到剪貼簿)

PowerShell -nop "&{param($_)ConvertFrom-SecureString($_|ConvertTo-SecureString -A -F)|scb} PassWD"


 

兩個方便使用的小函式

# 獲取安全密碼字串
function EncryptPassWord {
    [CmdletBinding(DefaultParameterSetName = "A")]
    param (
        [Parameter(Position = 0, ParameterSetName = "A", Mandatory)]
        [String] $String,
        [Parameter(Position = 0, ParameterSetName = "B", Mandatory)]
        [Object] $Object
    )
    if ($Object) { $secure = $Object } else {
        $secure = (ConvertTo-SecureString $String -AsPlainText -Force)
    }
    return (ConvertFrom-SecureString $secure)
} # EncryptPassWord "MyPassWord"

# 從安全密碼字串獲取原密碼
function DecryptPassWord {
    [CmdletBinding(DefaultParameterSetName = "A")]
    param (
        [Parameter(Position = 0, ParameterSetName = "A", Mandatory)]
        [String] $String,
        [Parameter(Position = 0, ParameterSetName = "B", Mandatory)]
        [Object] $Object
    )
    if ($Object) { $secure = $Object } else {
        $secure = (ConvertTo-SecureString $String)
    }
    $bsr    = [Runtime.InteropServices.Marshal]::SecureStringToBSTR($secure)
    return [Runtime.InteropServices.Marshal]::PtrToStringBSTR($bsr)
} # DecryptPassWord (EncryptPassWord "MyPassWord")