更改windows 10、11開機後顯示登入的帳號

一般來說個人用的Windows,本機帳號可以直接登入;若為公司網域帳號或個人m$的帳號,就必須經過認證(密碼,認證器)才能登入。而且windows會記住上次登入的帳號,重開機後,會直接顯示該帳號,我們只要輸入密碼,就能登入了。

但是麻瓜們總是會忘記自己登入的帳號,一旦有人用其他帳號登入,那麼下次開機,windows顯示的就不是原本麻瓜的帳號,這樣麻瓜會爆走,IT就挨踢了。

為了解決這個問題,我挖阿挖阿挖,在這裡找到解法,只要修改註冊值,重新開機就好了。

註冊表

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Authentication\LogonUI

註冊值

LastLoggedOnDisplayName  這我沒看到,沒設定好像也沒差
LastLoggedOnSAMUser  設定「網域\帳號」,如:SHORTDOMAIN\kafeiou
LastLoggedOnUser  設定「網域\帳號」,如:SHORTDOMAIN\kafeiou
LastLoggedOnUserSID 輸入該帳號的SID,如:S-1-5-21-112


其中SID取得方式:

wmic useraccount where name='登入帳號'

**臨時用其他帳號登入,又不想被人家發現,可以以照上述方法(需管理者權限),改回原本登入帳號。

Git出現很多修改過的檔案,實際上卻沒有異動

公司有個RedHat 5.x伺服器系統,安裝git 2.9 ,多年以來使用上一直相安無事;沒想到因為全面停用tls 1.0,導致git無法使用。

RedHat Linux系統在無法升級的情況下,git就再起不能;最後我指定其中一台windows主機,安裝RaiDrive透過sftp掛載Linux伺服器的git目錄,使其變成windows其中的一個磁碟,再透過windows的git用戶端,達到讓Linux伺服器裡面的資料能上git版控的目標。

就在我在windows主機上,順利掛載Linux目錄後,接著準備將資料push到git server,豈料出現一大堆檔案呈現已修改狀態,提示我這些檔案要commit,但是實際上這些檔案沒有任何異動修改;我追查了一下,發現是換行字元搞的鬼,Linux換行只有\n ,windows則為\r\n;

windows掛載Linux檔案,因為換行字元不同,當然會被誤認檔案被修改過。

解決方式,在windows掛載linux情況下,執行以下git指令,就可以解決了。

git config --global core.autocrlf true
git config core.filemode false
git status

 

讓老電腦順順跑win10_win11

我有一台13年前的pentium老電腦4GB ram,安裝windows 10、windows 11都覺得好慢好慢,偶然間看到「雲爸的私處」寫的一篇文章「低端電腦救星 ReviOS Windows 11精簡版系統」,文章推薦的「Revision」是開源軟體。該軟體以前會提供整個windows iso檔,讓人下載後直接安裝;後來改成「腳本」方式,我們只要正常安裝windows,再執行AME Wizard優化程式,載入Revision的腳本,就可以讓舊電腦優化了。

  1. 安裝windows相關元件
    VisualCppRedist_AIO_x86_x64
  2. 執行windows優化軟體
    AME Wizard
  3. 透過AME Wizard執行Revi優化腳本
    AME Wizard執行後,需要載入Revi提供的優化腳本,副檔名為apbx
    Revi優化腳本
  4. 首先腳本會要求關閉windows預設的防禦防毒機制,接下來一直下一步,都用預設值,最後重新開機,就大功告成了

    系統預設會停用更新,可透過桌面上的RevisionTool工具改成可更新


outlook另存msg格式檔案,對方看不懂

outlook作為麻瓜收發郵件軟體最高殿堂,另存檔案當然只能讓outlook打開,其餘閒雜軟體皆不可冒犯。

某日一麻瓜以附件方式,寄給朋友,豈料朋友並沒有outlook,無法開啟msg格式附件,真是大膽!麻瓜求助郎中,郎中開出一帖msgviewer軟體,該軟體佐以java服用,即可將outlook之msg檔案,轉成eml格式(國際標準rfc822格式),經熬煮60個時辰煉化成eml,檔案寄給朋友,朋友以異端thunderbird軟體開啟,正確無誤。

原來檔案總管理面的檔案,可以自己排列

一直以來我都以為檔案總管的檔案,只能依照上面的欄位進行排序,但是今天被中國同事教育了一番,我錯了!

這位同事工作需要拍照,再將照片存到電腦,檔案總管選擇「圖示(大中小)」進行手動排序,就可以很容易觀看到差異;原本他使用的電腦可以這樣隨意移動,但是換個電腦就不行。

最後問到我這裡來,我就說不可能,只能針對上面的欄位進行自動排序(信心滿滿);但是該同事啪啪打臉我,拿能自己排序的電腦給我看,最後我汗顏了,真是不能太鐵齒。

後來才發現,這功能是windows xp專有的,也就是xp能夠停用「自動排序」,win7以後基本上不能停用自動排序,於是有神人就弄出可以停用自動排序的設定檔案,請按此下載,解開點兩下就可以了。

nextcloud(容器)連到windows檔案伺服器

nextcloud若能跟公司內部的檔案伺服器連線,在外面就能方便存取公司檔案,也不失為一個好方法;只要安裝「External Storage Support」這個app就能存取外部檔案。

External Storage support 預設無法連線windows檔案伺服器,我們需要額外安裝一些套件,安裝完畢就能支援了。

docker(podman) exec -it <nextcloud container> bash

apt update 
apt -y install libsmbclient-dev libmagickwand-dev 
pecl install smbclient 
pecl install inotify
echo "extension=smbclient.so" > /usr/local/etc/php/conf.d/docker-php-ext-smbclient.ini
echo "extension=inotify.so" > /usr/local/etc/php/conf.d/docker-php-ext-inotify.ini

安裝相關套件後,就能選取到「SMB/CIFS」

原本連線到\\10.1xxx.x.x\taipei 拆開成兩部分,帳號若屬於網域,也要填進去,最後還限制群組使用

由網域主控站匯出VCARD 電子名片標準VERSION:3.0

一直以來公司的通訊錄使用ldap方式獲取。但是ldap缺點有二:

1、若連不上網域伺服器(越南夏天會停電還一次停兩天),就算我們使用outlook時,並不需要用到通訊錄,但outlook還是會一直出現錯誤,解決方式如下:outlook 關於ldap通訊錄的處理經驗

2、只能在內網使用,筆電拿到公司外就連不上網域主控站,outlook就會開始罵罵號。

這問題我滿頭痛的,好險最近我開始把重心放在nextcloud上,發現可以透過webdav連線方式,從網際網路直接獲取通訊錄以及行事曆,這樣可以解決上面兩個問題;雖然以後多了一個維護的地方,但這可以解決很多麻煩事,而且好處多多,例如可以透過手機、網頁等等多元方式,直接取得聯絡人以及行事曆。

說做就做,我連上公司nextcloud雲端系統後,原本打算一筆一筆「手動」輸入數百筆通訊錄,但是想想還是從三個廠的網域主控站匯出聯絡人比較實在,再由nextcloud提供的匯入功能匯入即可。

nextcloud提供匯入的檔案格式為vcf format,意即VCARD,而且規定要3.0或以上版本才能匯入,格式長這樣:

BEGIN:VCARD
VERSION:3.0
FN:william

ORG:HT
TITLE:
TEL;TYPE=WORK:
TEL;TYPE=HOME:
TEL;TYPE=CELL:
EMAIL;TYPE=WORK:william@test.com
CATEGORIES:test

NOTE:
UID:79996fd9-b2d6-1111-111e-85f7cd5896e5
END:VCARD

這種需求當然往github找尋解方,找了很久都是2.0的powershell腳本,後來終於在這裡找到,試跑了一次還ok,就差在沒有使用utf8輸出,匯入nextcloud會有亂碼,因此我改了一下寫法如下:

紅色部分請自行斟酌修改,存成xxx.ps1 並且在powershell裡執行;要注意屬性CATEGORIES,對應到nextcloud的聯絡人群組(Contact Group),這很重要。

<#
.SYNOPSIS

Export AD Users as single vcf file

#>

cls

$filename = "C:\temp\vCards.vcf"

remove-item $filename

Get-ADUser -filter {Enabled -eq $True} -Properties * | where {$_.enabled -eq $true} | Foreach-Object {

$user = $_.sAMAccountName
$email = $_.EmailAddress
$phone = $_.OfficePhone
$name = $_.Name
$short = $_.HomePhone
$mobile = $_.MobilePhone
$sede = $_.physicalDeliveryOfficeName
$ufficio = $_.Department
$qualifica = $_.title
$responsabile = ($_.manager -split ',*..=')[1]

if ($phone -or $email -or $mobile){
    write-host $user

    # Generate vCard
    Add-Content -Encoding UTF8 -Path $filename "BEGIN:VCARD"
    Add-Content -Encoding UTF8 -Path $filename "VERSION:3.0"
    Add-Content -Encoding UTF8 -Path $filename ("FN:" + $_.cn)
    Add-Content -Encoding UTF8 -Path $filename ("ORG:test")
    Add-Content -Encoding UTF8 -Path $filename ("TITLE:" + $qualifica)
    Add-Content -Encoding UTF8 -Path $filename ("TEL;TYPE=WORK:" + $phone)
    Add-Content -Encoding UTF8 -Path $filename ("TEL;TYPE=HOME:" + $short)
    Add-Content -Encoding UTF8 -Path $filename ("TEL;TYPE=CELL:" + $mobile)
    Add-Content -Encoding UTF8 -Path $filename ("EMAIL;TYPE=WORK:" + $email)
    Add-Content -Encoding UTF8 -Path $filename ("CATEGORIES:test")
    $notedate = (get-date).ToString('d/MM/yyyy')
    Add-Content -Encoding UTF8 -Path $filename ("NOTE:")
    Add-Content -Encoding UTF8 -Path $filename ("UID:" + $_.objectGUID )
    Add-Content -Encoding UTF8 -Path $filename "END:VCARD" #`r`n"
    }

}

讓moodle透過nextcloud提供的oauth2 服務進行登入認證

1. moodle與nextcloud需要有一樣名稱的管理者帳號
有點類似微軟網域伺服器之間的互信,我這邊兩方都建立admin這個有管理權限的帳號。

2. 管理者帳號登入nextcloud網站進行設定
新增客戶端
名稱: moodle
網址: https://xxxxx/admin/oauth2callback.php (xxxxx 為您moodle伺服器網址)

3.管理者帳號登入moodle網站,讓oauth2納入認證範圍
網站管理->外掛->身分認證->管理身分認帳

4.管理者帳號登入moodle網站,將nextcloud產生的帳密輸入進去

   

    

    

儲存變更後,點選以下小圖示,進行moodle與nextcloud的第一次交流驗證,成功後會出現一個綠色勾勾

   

4. 大功告成

最後建議安裝keepalive,延長已登入狀態,否則常常要登入,麻瓜會生氣氣(安裝時,要注意/bitnami/moodle/local目錄是否可讀寫)

安裝完畢,可以設定session存活時間,最多300分鐘

此時我們就可以設定外觀,隱藏需要登入帳號與密碼的畫面

在「原始初始化SCSS」輸入以下語法隱藏登入畫面,只剩下oauth2登入。

.login-form {display:none}

設定完登出,重新登入就只能透過oauth2登入了

moodle無法使用多個網域主控認證(Ldap server)

moodle 是目前最強開源線上學習系統,台灣學校在疫情期間紛紛安裝線上開課,當然也很適合公司當作知識管理系統、線上無紙化測驗使用;可惜只能認證一個ldap server,有多網域伺服器就很麻煩,除非上雲端或許還可以解決此問題。

好險我想到moodle支援oauth2,可以透過公司目前最常用的nextcloud 雲端檔案伺服器進行驗證,而nextcloud可以連結多個ldap server進行驗證,那這樣可以解決問題了。

1 2 3 ... 9