捐血一袋救人一命

2021年7月27日 星期二

使用 Powershell 讀取系統事件檢視器的錯誤訊息及警告,然後輸出成 HTML 檔案

 Windows 的事件檢視器一直有許多人詬病,相當不好用!光是大量的事件,就要等待半天;在加上沒辦法隨心所欲的設定關鍵字查詢剛好前一陣子有人在問購買軟體來處理事件紀錄,個人是覺得很浪費錢。因為現成軟體雖然方便,但是彈性很差。所以就寫了個簡單的Powershell 程式給大...

2021年7月2日 星期五

使用 Powershell 發送 Synology Chat 訊息

Function Send-Chat{    Param(        [string] $Msg    )    Add-Type -AssemblyName System.Web    $url = "http://your ip:port/webapi/entry.cgi?api=SYNO.Chat.External&method=incoming&version=2&token=%22el3fotmx3xHbiXGz17aTTXFUJ5DTzgun6bwhLA5bfqso%22"    $json = 'payload={{"text": "{0}"}}' -f [System.Web.HttpUtility]::UrlEncode($Msg)    Try{        $Response = Invoke-WebRequest -Uri $url -Method POST -Body $json    }Catch [exception]{ ...

2021年3月15日 星期一

PowerShell 的 Internet http(s)/Web 存取功能

$ie = New-Object -com InternetExplorer.Application$Downloader = New-Object -TypeName System.Net.WebClient[Net.HttpWebRequest]$WebRequest = [Net.WebRequest]::Create($Uri)Invoke-WebRequestInvoke-RestMethod / Invoke-Method透過 Selenium 操控瀏覽器,存取網站第一種,只能操作 Internet Explorer,而且經常會莫名發生例外狀況,而無法使用 getElement(s)等相關方法;此時,建議改用IHTMLDocument3_getElement(s)等相關方法第二種,通常用在下載檔案,當你有確定的檔案網址時,就使用它來下載檔案/圖片/影片第三種讀取網站會是字串型態第四種、第五種則是 HtmlWebResponse物件,通常用在存取網頁或呼叫API,如果遠端網站的資料是透過 Javascript AJAX 取得,那很可能就會抓不到資料至於第五種,需要額外安裝Selenium WebDriver,不同瀏覽器需要安裝不同的版本;此外,當瀏覽器版本升級時,WebD...

2021年3月2日 星期二

使用 Powershell 設定電腦環境

因為經常需要設定電腦,所以寫了個程式來設定電腦的環境,免得經常要手動設定,還容易忘記漏設定。 Param ([switch]$Verbose)$VerboseStatus = $VerbosePreferenceIf($Verbose){    $VerbosePreference = "Continue"}If(-NOT ([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] "Administrator")){    $ScriptFullPath = $MyInvocation.MyCommand.Definition $arguments = "& '" + $ScriptFullPath + "'"    # 另外以管理者身分執行 PowerShell,並載入 Script 來執行 Start-Process powershell -Verb runAs -ArgumentList $arguments ...

使用 PowerShell 清除暫存檔,並清除垃圾桶

先設定一個陣列 $tempfolders ,用來存放所有暫存檔路徑然後使用 Remove-Item 指令來強制刪除檔案(force),包含子目錄(recurse)因為有些暫存檔,有可能正在使用,是無法刪除的,會造成指令發出錯誤訊息,所以最後加上參數 -ErrorAction SilentlyContinue,當發生錯誤時,安靜地繼續執行指令最後,清除垃圾桶,也是一樣的$tempfolders = @("C:\Windows\Temp\*", "C:\Windows\Prefetch\*", "C:\Documents and Settings\*\Local Settings\temp\*", "C:\Users\*\Appdata\Local\Temp\*")Remove-Item $tempfolders -force -recurse -ErrorAction SilentlyContinueClear-RecycleBin -Force -ErrorAction SilentlyContinue如果要清除特別命名方式的檔案,或是不確定檔案位置的話,歡迎留...

使用 PowerShell 停用不安全的 SSL 2.0 3.0 & TLS 1.0 1.1 通訊協定

$Protocols = @("SSL 2.0", "SSL 3.0", "TLS 1.0", "TLS 1.1")$EndPoints = @("Client", "Server")Write-Verbose "停用 SSL 2.0 & 3.0 以及 TLS 1.0 & 1.1"$Protocols | ForEach{    $Protocol = $_    If(!(Test-Path -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\Schannel\Protocols\$Protocol")){        New-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\Schannel\Protocols\$Protocol" | Out-Null    }    $EndPoints | ForEach{        $EndPoint...

2021年2月18日 星期四

使用 PowerShell 進行硬體資產調查

Windows 的 WMI, CIM 有很多資訊可以運用管理例如軟硬體資產、系統資源效能、程式運作等這次要做的是硬體資產調查,以前我有介紹使用 AIDA64 Business 來做資產調查,但這套軟體是要付費的。所以不想要花錢,又要做到資產調查,就只好自己動作來只要將 PowerShell 程式將資料寫入網芳檔案,使用群組政策,讓使用者開機就自動執行這個 PowerShell ,資料就會自動寫...

使用 PowerShell 讀取 Synology NAS LDAP Server

網路上查到的PowerShell 讀取 LDAP 資訊,幾乎清一色都是讀取 Active Directory....很少講到如何讀取 Linux LDAP Server找了好久,終於找到 C# 讀取 LDAP 的資訊,改成 PowerShell&nb...

使用 PowerShell 批次執行 IE ,自動登入 Synology NAS

這次會想寫這個程式,是因為公司打算將 G Workspace 轉移到 Synology NAS公司本來也沒有使用 AD or LDAP 做驗證,打算將帳號整合到 LDAP 做未來準備。轉移郵件的功能 MailPlus 本身的功能就很完整,不需要太多操心但是Synology Drive 卻沒辦法自動批次轉移全公司的 Google Drive!使用Cloud Sync ,必須讓使用者自行操作,也沒辦法限制使用者只能加入指定的 Google Workspace幸運的是,Synology Active Backup for G Suite可以將全部使用者的Google Drive 都備份下來,只要把使用者備份檔案複製到使用者家目錄,就可以正常在Synology Drive 使用。只是因為整合了 LDAP 驗證,所以家目錄變成 "帳號-LDAP uidNumber" 這樣的格式。手動去建立家目錄也很麻煩(一兩百個帳號),用PowerShell 讀取 LDAP 也有點麻煩,所以最簡單的方法就是使用者登入Synology NAS,Synology NAS 會自動建立家目錄。以下不多說,就直接看程式吧之前在每個 Page 變動後,都去偵測 $ie.ReadyState = 4 或是 $ie.Busy...