2022-06-22

Block an Application from accessing Internet with Windows Firewall

 

$ProgramName = 'ProgramName';
$ProgramPaths = @();
$ProgramPaths += "$env:ProgramFiles\ProgramName";

$BlockIPs = @("1.0.0.0-9.255.255.255", "11.0.0.0-126.255.255.255", "128.0.0.0-172.15.255.255", "172.33.0.0-192.167.255.255", "192.169.0.0-255.255.255.255")

#----------------------------------------------------------

$Remove = New-NetFirewallRule -DisplayName "RemovePrepare" -Group ($ProgramName + 'Block') -Direction Outbound -Program "C:\windows\system32\calc.exe" -Action Block -RemoteAddress $BlockIPs;
Remove-NetFirewallRule -Group ($ProgramName + 'Block') -Confirm:$False;

$ProgramEXEFile = @();
foreach ($ProgramPath in $ProgramPaths) {
$ProgramEXEFile += Get-ChildItem $ProgramPath -Recurse | where {$_.extension -eq ".exe"};
};

2022-06-14

用 GPO 允許 User 安裝印表機驅動程式的設定

GPO

Computer Configuration
- Policies
- Windows Settings
- Security Settings
- Local Policies
- User Rights Assignment
- Load and unload device drivers 

Domain Users

Computer Configuration
- Policies
- Windows Settings
- Security Settings
- Local Policies
- Security Options
- Devices: Prevent users from installing printer drivers 

Disable

 Computer Configuration
- Policies
- Administrative Templates
- System/Device Installation/Device Installation Restrictions
- Allow installation of devices using drivers that match these device setup classes 

Computer Configuration
- Policies
- Administrative Templates
- System/Driver Installation
- Allow non-administrators to install drivers for these device setup classes

上面這兩個設定中原本只有以下這兩個:
{4658ee7e-f050-11d1-b6bd-00c04fa372a7}
{4d36e979-e325-11ce-bfc1-08002be10318}

Windows 10 & Windows 11 會一直出現 Driver is unavailable
查到還要再加下面這個就正常了:

2022-05-10

Teams 各種無法登入狀況時的處理

Teams 各種無法登入狀況時的處理

太多奇怪的錯誤訊息說無法登入了
總之下面這樣處理後大概都能解決

Taskkill /f /im teams.exe
移除 Teams
設定 -> 帳戶 -> 存取公司或學校資源 -> 刪除帳戶
移除記住的 Windows 驗證
下指令dsregcmd /leave
重開機
裝 Teams
登入 Teams

2022-02-11

查軟體清單 Software List 的工具

JSJSS

開源x節流:企業應用經驗分享 (一)+(二) [2017/02/03] @臺中市政府 (slideshare.net)

WinAudit

開源、軟體工具、不用 Server (當然也可以把資料存到 Server)

Computer Account Startup Script:

\\Server.Contoso.com\WinAudit$\WinAudit.exe /r=gous /T=datetime /f=\\Server.Contoso.com\WinAudit$\Logs\%computername%_macaddress.csv

2022-01-05

抓出 AD User Account Object 最後一次被異動的時間與內容

 簡單版只有抓時間:

    Get-ADUser UserName -Properties * | select-object whenChanged

複雜版什麼鬼東西都抓出來 (JerryChang 大魔神提供)

    Get-ADReplicationAttributeMetadata `
        -Object "CN=UserName,OU=User,DC=Contoso,DC=com" `
        -Server DC.Contoso.com | Select-Object `
             AttributeName, `
             AttributeValue, `
            LastOriginatingChangeTime, `
            LastOriginatingChangeDirectoryServerInvocationId | Out-GridView


2021-11-22

PFX 憑證轉 JKS

先裝好 Java 取得 keytool.exe
接著下指令:

 "C:\Program Files (x86)\Java\jre1.8.0_311\bin\keytool.exe" -importkeystore -srckeystore "C:\Cert\www.contoso.com.pfx" -destkeystore "C:\Cert\www.contoso.com.jks" -srcstoretype PKCS12 -deststoretype jks -srcstorepass "12345678" -deststorepass "12345678"

2021-11-03

語音轉文字工具 pyTranscriber + 剪映 校正時間軸

一直以來適用 pyTranscriber 來處理影片語音轉文字來上字幕
但是 pyTranscriber 的時間軸實在對不準,常常斷句在奇怪的地方
最近聽說大陸軟體 剪映 也可以自動產生字幕
試用之後發現語音辨識跟 pyTranscriber 這個用 Google 處理的半斤八兩沒有好到哪裡去
但是時間軸卻是較為準確的

所以決定來用他的時間軸與語音辨識搭配 pyTranscriber 的結果來東拼西湊
但是他卻沒有輸出 .srt 字幕檔的功能 Orz
所幸找到他的字幕是存在特定路徑下的 JSON File
於是寫了個簡單的 PowerShell Script 去撈

另外還有個問題是 剪映 產生的字幕是簡體字,所以還需要做繁簡轉換
那我不知道 PowerShell 有沒有函式之類的可以直接拿來用
但是先找了一個 ConvertZZ 來處理
(繁化姬 要用 http GET Query, 字幕數量太大會花很多時間而且可能影響該服務運作所以不採用)

以下是程式


$ConvertZZ = 'C:\Users\Administrator\Downloads\ConvertZZ_v1.0.0.8\ConvertZZ.exe';
#https://github.com/flier268/ConvertZZ/releases

#### ----- Constant ----- ####

$ProjectsFolder = ($env:USERPROFILE + '\AppData\Local\JianyingPro\User Data\Projects\com.lveditor.draft');
$CaptionFile = 'draft_content.json';

#### ----- Program Start ----- ####

2021-10-26

列出特定 OU 下帳號的密碼到期日 & 重設密碼到期日

Get-ADUser -filter {Enabled -eq $True -and PasswordNeverExpires -eq $False} -SearchBase "OU=CorpUsers,DC=contoso,DC=com" –Properties "DisplayName", "msDS-UserPasswordExpiryTimeComputed","passwordlastset","Passwordneverexpires","LockedOut" | Select-Object -Property "Displayname","passwordlastset",@{Name="ExpiryDate";Expression={[datetime]::FromFileTime($_."msDS-UserPasswordExpiryTimeComputed")}},"Passwordneverexpires","LockedOut" | ft

搭配以下指令重設密碼到期日

set-aduser -ChangePasswordAtLogon:$true
set-aduser -ChangePasswordAtLogon:$false