Macos 下的Powershell

用Macos,但是現實逃離不過office,因此還是要部署AD,沒有PC 的情況下想用powershell 還是經常試過,最近測試一下。首先必須有個利器:brew

brew 估計用Macos 的應該熟悉,安裝一些程序時經常會用,開個終端,貼上去就好,說明在這

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

經常誤會Azure CLI 和 Azure AD Powershell, 之前一直用brew 安裝Azure CLI,結果說我沒Azure 服務,找了資料發現原來Microsoft 365 是用Azure AD PowerShell,走了彎路

brew install powershell/tap/powershell

上面是安裝Powershell 7 , 安裝完敲下pwsh 終於出現Powershell 版本,powershell 成功執行,接下來可以繼續安裝Az Module 了,還是不停下載。詳細說明

Install-Module -Name Az -Repository PSGallery -Force

安裝完成後,馬上連結測試是否能連上AD

Connect-AzAccount
 =

成功的話,跳個網頁出來,登入帳號,powershell 就會出現的公司名了。

接著要打什麼指令呢? 之前文章有寫過批量的更新用戶資料,可以回顧回顧

不過因為指令模組不一樣,用法也有不同,例如列出10用戶

Get-AzADUser -First 10

具體還是要看說明,雖然admin panel 那邊也有網頁終端,不過有時還是開不起來。

模組具體說明

https://learn.microsoft.com/en-us/powershell/module/az.resources/get-azaduser?view=azps-12.2.0

Microsoft Graph PowerShell 設定M365的使用者

發現M365 powershell 又停用了一些,其實真的好煩,網頁界面只能一次更新40位,沒辦法就要繼續學習,看了一下docs,powershell 轉移到Graph,例如之前能用的Set-MsolUserLicense 已經失效,需要使用microsoft graph 來更新。假如你不懂得,可以考慮使用Entra ID 來更新用戶

在 Azure 入口網站 中大量建立使用者 – Microsoft Entra ID | Microsoft Learn

安裝Graph PowerShell

Install-Module Microsoft.Graph -Scope CurrentUser -Repository PSGallery -Force

假如想指定某些 版本也可以使用

Install-Module -Name Microsoft.Graph -Scope CurrentUser -RequiredVersion 2.5.0

成功後就要開始登入進行授權,一般是使用 Connect-MgGraph,不過這樣直接登入只是查詢,基本權限很低,所以要登入並要求更多權限

Connect-MgGraph -Scopes "User.ReadWrite.All","Organization.Read.All","Team.ReadBasic.All"

這樣就成功了,接下來就是更新授權了,我看了一些外國的代碼,高手都寫成script,不過我一年只做一次就不折騰了,還是用csv 更新。有一些欄目名不太一樣,例如UserPrincipalName 換成了UserId,我懶得換原來的csv titile ,就只是命令那邊更換了UserId,csv 那邊title 就繼續使用UserPrincipalName ,在Grphy 這邊可以先看看一個用戶的授權碼,命令如下:

Get-MgUserLicenseDetail -UserId davidchew@contoso.com

我這次因為要批量去刪除授權,所以就想看了一下賬號有什麼授權,然後就讀取SkuId,然後就只根據csv 的賬號列表去刪除Skuid 資料

Import-Csv C:\rmlic.csv  | ForEach-Object {Set-MgUserLicense -UserId $_.UserPrincipalName -RemoveLicenses "Sukid號碼" -AddLicenses @()}

假如想增加授權就是RemoveLicenses 改成AddLicenses ,後面-AddLicenses @() 改成 –RemoveLicenses @() 就可以了,最後登出Disconnect-MgGraph

可以參考一下外國資料,很詳細,下面是我看的文章:

Manage Microsoft 365 Licenses with the Microsoft Graph PowerShell SDK (practical365.com)

Microsoft Graph PowerShell SDK: User and Group Operations (practical365.com)

還有寫好的Script

GitHub – 12Knocksinna/Office365itpros: Office 365 for IT Pros PowerShell examples

群組

Manage security groups with PowerShell – Microsoft 365 Enterprise | Microsoft Learn

賬號

Create Microsoft 365 user accounts with PowerShell – Microsoft 365 Enterprise | Microsoft Learn

macOS 14 sonoma smb print

smb print 又死了

每次興高采烈升級完系統後,就會聽到同事們的呼救,列印失敗!我說我都沒測試你們又跑在潮流尖端,跟車太貼肯定出事。

apple 討論區貼文

一大群求救信息,每次升級,smb print 都會折騰一番,上一次也一樣(Ventura)

雖然對於為何會每次升級系統都會死了smb print不太清楚,但是起碼我覺得Apple 內部沒有在用smb print,所以他們不知道升級後會死了,然後翻了下文章,又長知識。

PostScript’s sudden death in Sonoma

看來事發不是突然,Apple 估計應該不會繼續下去,使用的人就要換方法了。

如何解決smb print 呢? 方法就是不用smb 啊,直接換成lpd,也許有些人覺得有驗證問題,其實問題不大,首先確保電腦使用者名稱和smb 用戶名一樣,你可以選擇修改macOS user name 跟windows AD user name 一樣 或者修改windows ad username 跟macOS user name 一樣,lpd 發送過去windows AD 後,看到帳號名稱一樣就會自動加入列印隊列,進去隊列了,就是可以解決了,其他如何登入打印機就跟據不同品牌來登入。目前這方法在macos 12.5 後都可以,而且列印也不用輸入密碼,只要去打印機那邊才輸入列印就可以,還是比較方便的。在這也提供script 給有需要的人

#!/bin/sh

#  addprinter.sh
#  Created by Rock on 31/05/2023.
#  First step need to download and install fuji driver 
#  chmod a+x command file
# 
/usr/sbin/lpadmin -p print -L 1F -E -v lpd://192.168.0.1/FILE1 -o printer-is-shared=false -o FXColorMode=Black -o media=iso_a4_210x297mm -o XRFinisher=OF -o XRHolePunch=TruePunch -o XRTrays=FiveTraysHCTT -o XRPrintQuality=Standard -o auth-info-required=negotiate -P /Library/Printers/PPDs/Contents/Resources/FX\ ApeosPort\ C6570\ PS.gz

把檔案儲存為sh 檔案,記得用terminal 輸入chmod a+x ,然後拉這個檔案進去,確認後就可以再拉一次檔案進去再確認一次,就可以安裝了,當然你要提前安裝你的驅動,而且確認路徑,上面Recourse 就是fujifilm 的驅動。

為何macOS 列印會這麼折騰呢,我也不大清楚,就算我買了台brother usb 直接連都不是很順利,最後還是用AirPrint 來解決,是不是開發商跟不上Apple 的步伐呢?

Office 365 bulk update user photos

  1. 首先使用管理員執行powershell, 然後執行:
Install-Module -Name ExchangeOnlineManagement

Connect-ExchangeOnline -Credential $M365credentials

2. 上面第一行安裝模組,這次用exchangeonline 模組

然後將用戶名,及照片路徑放在user.csv 檔案,如

username,picture

2022@rock.net,c:\2022.jpg

3.接著執行:

Import-csv c:\Pics\user.csv | % { Set-UserPhoto –Identity $_.username -PictureData ([System.IO.File]::ReadAllBytes($_.picture)) -Confirm:$false}

Excel 巨集 安全風險 已經封鎖宏執行

最近發生了Excel 巨集無法執行,主要是檔案放在share drive,例如NAS,Z: , Excel 開啟已經提示:

安全風險 microsoft已封鎖巨集執行,因為此檔案的來源不受信任

找了不少說明都無法解決,最後還是找到了

解決方法

意思就是要在本地信任 NAS的來源,在EXCEL 是無法新增來源的。

若要查看信任的網站清單或 本機內部網路 區域中的內容,請移 至主控台 > Internet 選項 > 變更 Windows 裝置上 的安全性設定。 在網站進階添加\\NAS

當然官方建議還是拷貝本地執行,就可以容易解決,現實就是另一回事。

直播的一些技術

疫情開始,直播一直圍繞的工作與生活,開始慢慢地了解與深入。

一說起直播,不少人都會與ZOOM 聯繫起來,ZOOM的確是十分成功的直播產品,以及他的技術可以說是直播上比較低延遲的,無論影像和聲效都十分低,但是有時直播起來,zoom的畫面總不是很清晰,鋸齒很嚴重,也許就是低延遲直播的犧牲。

不是所有直播都需要『實時』,例如一些發佈,可以事先錄製,定時『直播』播放,這樣可以確保萬無一失!試了幾個平台,YouTube Live算是十分成熟的,還有清晰的數據分析。延遲就大約10秒左右,但是畫面清晰,配合OBS簡直完美。

除了這些大路的直播軟件和平台,直播還有哪些?還記得RTMP?小時候在課室直播時,需要開個VLC來做直播,目前還是在使用,不過現在多了幾個protocol,比較流行的有ffmpeg,SRT,NDK,SLDP,WebRTC。

看到這些技術,最近比較火的算是WebRTC,因為他支持跨平台,一般應用在手機通話技術上,一個瀏覽器就可以播放,而且是一種低延遲和低流量性的直播技術。

這裡找了一些自己做直播服務器的技術文:

SRS, 開源直播

https://ossrs.net/releases/

 

srt

https://blog.wmspanel.com/2020/07/srt-obs-nimble-larix-broadcaster.html

Nimble Streamer

SRT VS WebRTC