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

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

HCI 超融合基礎架構的優勢

超融合架構於2016年開始發展,現在估計快超出SAN了,首先先對比一下超融合架構和傳統架構。

傳統架構和HCI 對比
傳統架構和HCI 對比

上圖來自SANFOR ,對比傳統SAN 架構,首先說一下傳統的SAN架構,需要專業的交換機(SWITCH),獨立的服務器還有軟件管理,控制器,集中性的儲存設備。而超融合架構只需要X86型的服務器和交換機。做一個表格進行對比會比較清晰

項目 傳統 超融合架構
網絡設備 劃分Zone等操作,一般用光纖等專業設備 簡易網絡,可以用以太網10G
RAID RAID 5、6 節點,無需RAID
RAID 初始化 需要,大容量初始化也許需要幾天,修復也需要時間 無需初始化
硬盤故障 更換硬盤,初始化,更換RAID控制器,需要全盤修復 自動修復節點,只修復已經寫入的數據
擴展容量 複雜,手動,需要加RAID 簡易操作添加節點,容量池
儲存架構 集中儲存 分散性儲存
恢復速度 取決於硬盤讀取速度,一般就是100M左右 取決於節點數量,一個節點100M
硬件要求 鎖定某些廠商 X86服務器,彈性大,可以選擇的服務器多
空間要求 大約20U 約10U 左右
成本 幾乎配套勢購買,成本較高 根據需求購買,可以後續添加,成本可以控制
耗能 機器多,耗能也大 機器少,耗能是SAN 60%左右
部署時間 估計一星期 一兩天完成
硬件維護平台 多個平台 一個平台

待續。。。