2023年1月15日 星期日

Edge Preview window opens and hangs up

近日有許多人反映 透過Edge 點選列印之後,預覽列印視窗會不停的轉圈圈,導致無法列印,非常困擾。




透過Google大神爬了一下,發現有許多鄉民都有此問題,試過之後都無法解決(有停用DLP、關閉UAC、重設瀏覽器、重設使用者(X)),大概就只差沒重新安裝作業系統了。


還有鄉民說 是有重複的印表機名稱造成 !!!


期間也曾嘗試把防毒軟體停用,但都沒有效。


也有鄉民提到Ctrl + P 無法列印,Ctrl+Shift +P 就正常。


WTF,真的~XD


困擾多日之後,突然靈光一動,想說先把Print Spooler 服務先停用看看。(之前有測試過重新啟動這個服務還是無效)


此時測試列印=>正常。(但會沒有印表機可以選,服務都停用了所以沒印表機是正常的)


再把服務啟動後,測試列印也是正常。


重新啟動系統看是否恢復,測試也正常。


看到師兄們都回來了,真是備感欣慰(X




2021年4月19日 星期一

Adobe Acrobat Reader DC 的msi檔案

 是這樣的,Adobe Acrobat Reader官方下載的MSI檔案通常都不是最新的(或是久久才會更新一次),中間有著大大小小的MSP更新包,這對於軟體派送管理上多多少少就面臨了一些些的挑戰。

期間也拜讀網路上大神的文章,大部分都隨著Adobe更新之後而失效(明明就是自己失敗)

直到拜讀到一位大神的"製作 Adobe Acrobat Reader DC 的msi檔案並利用GPO派發(2020後版本)"

才又燃起一線希望,果然照著抄可以順利的打包XD,真是非常感謝呢。

事前準備:下載Adobe Reader DC離線版本以及MSP更新檔案(DC Release Notes — Release Notes for Acrobat DC Products)

Adobe官方提供的FTP MSP檔似乎沒有在更新?建議可以透過上方連結下載MSP檔案,

大致的步驟如下(有興趣的鄉民可以參考該位大神的連結)

1. 把下載的MSI檔案用7-zip解壓縮到特定資料夾內(1)。

2. 執行特定資料夾內(1) msiexec /a AcroRead.msi 將檔案安裝到特定資料夾內(2)。

3.  執行特定資料夾內(2)  msiexec /a AcroRead.msi  /p AcroRdrDCUpd2100120149.msp  安裝到特定資料夾(3)

4.將特定資料夾內(2)的AcroRead.msi 複製到特定資料夾(3)。


Reference

製作 Adobe Acrobat Reader DC 的msi檔案並利用GPO派發(2020後版本)

2021年4月15日 星期四

一波多折的WSUS (Win 2012R2)

 事情是這樣的:

環境中的WSUS,隨著時間的增長,不知不覺長成一個回不去的月半子。

只能不停地擴充空間搭配伺服器清理精靈,一直撐著。

終於該來的還是來了,伺服器清理精靈也罷工了(每次在不需要更新的檔案清理都會造成服務連線逾時),接著展開一段漫長的WSUS減月巴之旅,

舉凡網路上的各種偏方(調整DB、IIS、PS....)能嘗試的都試過了,大概就只剩下WSUSUtil RESET還沒做了!

就在已經做好打掉重練,原地重建的時候。

皇天不負苦心人,讓我爬到這篇Deleting Updates from WSUS

裡面提到了,還很貼心的附上參考連結

To prevent the next WSUS sites from inheriting unnecessary updates, there's a script to delete the updates that the Server Wizard is not removing after declining

結果該參考連結網誌已經移除了(天啊~~真是晴天霹靂)

不過還好谷歌大神有網頁快取的功能,趕快去爬那篇連結,順利抄作業,就當我信心滿滿以為可以順利解決的時候,還是出現連線逾時.............(當下內心真的是又一次的晴天霹靂)

所幸皇天不負苦心人,在該篇網誌下方有位熱心的鄉民Alexey Petrenko留下了一段珍貴的解決方法


You can stop time out by narrow down list of updates or drivers. I resolved it like this:
[reflection.assembly]::LoadWithPartialName("Microsoft.UpdateServices.Administration") | out-null
$wsus = [Microsoft.UpdateServices.Administration.AdminProxy]::GetUpdateServer($UpdateServer, $UseSSL, $Port);
$updatescope = New-Object Microsoft.UpdateServices.Administration.UpdateScope
# you can choose one of these attributes:
#$updatescope.ApprovedStates = [Microsoft.UpdateServices.Administration.ApprovedStates]::NotApproved
#$updatescope.IncludedInstallationStates = [Microsoft.UpdateServices.Administration.UpdateInstallationStates]::NotInstalled
#$updatescope.FromArrivalDate = [datetime]”03/11/2020"
#$updatescope.ToArrivalDate = [datetime]”04/02/2020"

$updatescope.UpdateTypes = [Microsoft.UpdateServices.Administration.UpdateTypes]::Driver
#$updatescope.UpdateTypes = [Microsoft.UpdateServices.Administration.UpdateTypes]::SoftwareUpdate

Then you can remove your updates
$wsus.getupdates($updatescope) | Where {$_.UpdateClassificationTitle -eq 'Drivers'} | ForEach-Object { $wsus.DeleteUpdate($_.Id.UpdateID); Write-Host $_.Title removed }
Check for classification 'Drivers' second time is abundant in that case but you can leave it. It will work anyway.

加入了限縮條件之後就可以順利的減月巴了,看著慢慢瘦下來的WSUS,真的很欣慰。

希望能幫到一起在WSUS減肥之路上的小夥伴們。


以下為參考範例,自己修改後存成PowerShell後執行(有哪些條件可以參考下方微軟提供的連結)

[reflection.assembly]::LoadWithPartialName("Microsoft.UpdateServices.Administration") | out-null

$wsus = [Microsoft.UpdateServices.Administration.AdminProxy]::GetUpdateServer($UpdateServer, $UseSSL, $Port);

$updatescope = New-Object Microsoft.UpdateServices.Administration.UpdateScope

# you can choose one of these attributes:

$updatescope.ApprovedStates = [Microsoft.UpdateServices.Administration.ApprovedStates]::Declined

#$updatescope.IncludedInstallationStates = [Microsoft.UpdateServices.Administration.UpdateInstallationStates]::NotInstalled

$updatescope.FromArrivalDate = [datetime]”04/01/2021"

$updatescope.ToArrivalDate = [datetime]”04/16/2020"


$updatescope.UpdateTypes = [Microsoft.UpdateServices.Administration.UpdateTypes]::Driver

#$updatescope.UpdateTypes = [Microsoft.UpdateServices.Administration.UpdateTypes]::SoftwareUpdate


#Then you can remove your updates

$wsus.getupdates($updatescope) | Where {$_.UpdateClassificationTitle -eq 'Drivers'} | ForEach-Object { $wsus.DeleteUpdate($_.Id.UpdateID); Write-Host $_.Title removed }


Deploy中的無法直接刪除,此時可以先Decline 在做刪除的動作,作法也很簡單,僅列出差異,詳情可以參考下方第二個連結。

$updatescope.ApprovedStates = [Microsoft.UpdateServices.Administration.ApprovedStates]::Any
$updates=$wsus.getupdates($updatescope) | Where {$_.UpdateClassificationTitle -eq 'Drivers'}
$updates.decline()
$updates| ForEach-Object { $wsus.DeleteUpdate($_.Id.UpdateID); Write-Host $_.Title removed }
)

Reference

Deleting Updates from WSUS

WSUS and PowerShell: Declining and Deleting updates based on keywords

Microsoft.UpdateServices.Administration Namespace

2020年8月13日 星期四

7-zip的SFX

 自從7-zip 9.20版本之後,似乎把SFX的功能另外獨立出來,而網路上爬到的大部分教學都還是7-zip 9.20版,這時讓我突然懷疑是否已經將此功能移除了。ORZ

這個疑問就一直放著放著放著,然後就忘記了,直到某天突然真的有需要使用到此功能時,才想說不可能就這樣消失吧,趕快召喚GOOGLE大神,終於拜讀到一篇7zS.sfx does not exist in the 7-Zip folder - Stack Overflow。原來只是把檔案放到LZMA 軟體開發套件,下載解壓縮之後可以在bin資料夾中找到,使用方式與之前相同。

建立config.txt(範例如下方)

;!@Install@!UTF-8!

 Title="Title"

 RunProgram="Install.exe"

 ;!@InstallEnd@!

把要執行的檔案先進行打包成7Z,例如Install.7z

最後執行命令

copy /b 7zSD.sfx + config.txt + "Install.7z" Install.exe


參考來源:

7zS.sfx does not exist in the 7-Zip folder - Stack Overflow

How to Create a Silent, Self-Extracting Installer for use with Windows Configuration Designer

2019年4月19日 星期五

建立大量的mklink ?

事情是這樣的

由於某些緣故,某個系統資料夾內的空間快面臨不足的情況,爬了一下文似乎可以利用mklink的方式把檔案先暫時搬移到其他地方再建立連結回來。

但是由於要搬移的資料夾數量實在太多,一筆筆去建立連結似乎太傻了點,爬了一下文章,有鄉民提供一個不錯的方式。

情境如下:
把C:\temp下的資料夾移動到d:\temp
自動去掃描d:\temp底下有多少資料夾,自動建立連結回c:\temp
語法範例如下:
for /f "delims==" %%k in ('dir "d:\temp\"  /b') do (
mklink /d "c:\temp\" "%%~k"
)
Reference
How do I create a symbolic link using a batch script in windows?

2019年2月1日 星期五

AD 群組原則不會複寫?

事情是這樣的,我有3台DC
我在DC1 設定好群組原則之後,發現DC2&DC3 上並不會同步寫入群組原則

檢查事件檢視器中的應用程式及服務紀錄檔,File Replication Service中可以發現錯誤訊息:
檔案複寫服務無法使用DNS名稱 dc2.xx.xx.xx 啟動...
此時跑到DC2檢查發現ntfrs 服務啟動失敗
大概的錯誤訊息是
警告: 在修復過程中,複本樹狀目錄中的資料可能無法使用。如果這 個錯誤繼續發生,您應該將上述的登錄參數重設為 0,以避免自動修復 意外地將資料變成無法使用。 
 
如果要變更這個登錄參數,請執行 regedit。 
 
請按 [開始] 功能表、[執行],然後輸入 regedit。 
 
展開 HKEY_LOCAL_MACHINE。 
請按機碼路徑: 
   "System\CurrentControlSet\Services\NtFrs\Parameters" 
請在下列值名稱上按兩下: 
   "Enable Journal Wrap Automatic Restore" 
並更新值。 
後來發現沒用,不過看到有個鄉民分享的方式,照著操作之後竟然成功

下方引用這位鄉民的分享步驟

raytracy iT邦大神 1 級 ‧ 2010-11-23 12:59:05檢舉
我上個月才剛解決一台相同的問題, 雖然您不一定可以適用, 不過還是可以嘗試看看:
  1. 先在有問題的那台 DC 上面, 找找看您的 SYSVOL 放在哪裡? 通常應該是 C:\WINNT\SYSVOL, 不過我查修的那台偏偏就跑到 D:\ 去.
  2. 請到 SYSVOL\domain 這個目錄底下, 新增一個資料夾, 名稱是: NTFRS_CMD_FILE_MOVE_ROOT
  3. 打開 Regedit 找到: \HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NtFrs\Parameters\Backup/Restore\Process at Startup 裡面有個機碼叫: BurFlags, 請將這個機碼值改成 D4
  4. 重新啟動 FRS 服務
  5. 等待一段時間, 或是檢查事件檢視器裡面的「複寫服務」紀錄 (您可能要不斷按 更新內容), 看看是否會出現新的 FRS 的訊息? 第一條 FRS Log 會告訴您目前正在進行處理, 第二條或第三條應該告訴你 FRS 已經準備妥當, 可以開始複寫.
如果您可以在事件檢視器中, 看到 FRS 恢復正常的訊息, 系統應該就可以正常複寫的.
(但此法僅能適應特定環境, 不見得可以用在您的環境中.)
參考來源
事件識別碼: 13508




2019年1月16日 星期三

MKLINK - 因為符號連結的類型已停用,所以無法遵循符號連結。

事情是這樣的

環境:
FILE SERVER1
FILE SERVER2
CLINET SERVER

由於FILE SERVER空間快滿了,而且機器已經無法再擴充空間,於是想到可以透過mklink方式把一些不常用的檔案搬移到FILE SERVER2上。

於是在FILE SERVER1 建立好mklink
# mklink /d D:\XXXX  \\FILE SERVER2\XXXX

正當我興高采烈的時候,透過CLIENT去存取卻發生下列錯誤:

因為符號連結的類型已停用,所以無法遵循符號連結。
後來查了一下,必須要在CLIENT端去開啟遠端至遠端存取的權限。
一開始爬文章沒有注意的我,一直在FILE SERVER那邊測試了老半天。XD

查詢的指令
fsutil behavior query SymlinkEvaluation
開啟遠端至遠端的指令
fsutil behavior set SymlinkEvaluation R2R:1

參考來源:
 windows mklink指示用法
The symbolic link cannot be followed because its type is disabled


2018年7月23日 星期一

在WINDOWS上使用SSH掛載成網路磁碟-神奇好用的WIN-SSHFS

勒索軟體造成的轟動還歷歷在目,網芳一時間變成過街老鼠XD。

這時就把腦筋動到使用SSH來掛載網路硬碟。

上網爬了一下WIN-SSHFS 似乎是最佳解決方案。(省錢的話)

首先要準備以下:
1.Dokan
2.WIN-SSHFS
安裝時要注意Dokan跟WIN-SSHFS之間版本的搭配
例如:WIN-SSHFS 1.5.12.8 有備註說Dokan 0.7.4 is recommended. Dokan 0.8+ will not work!

設定的步驟也非常簡單,但是按下MOUNT時卻出現以下錯誤訊息XD


後來GOOGLE了一下,發現解決方法也太有趣了,只要先按下SAVE(儲存)就不會出現錯誤了。

Reference:
Dokan
WIN-SSHFS
String reference not set to a String. Parameter name s #148

2018年1月31日 星期三

WORD 傳送郵件出現 MAPI錯誤,不支援此模式。

最近碰到使用者反映,利用WORD傳送郵件時出現MAPI錯誤。

GOOGLE一番之後,發現許多鄉民都有此症狀,李組長眉頭一皺,發現應該是WINDOWS更新造成的XD,以此方向尋找,順利找到解決方式。


找到Msmapi32.dll 並把它重新命名成Msmapi32.dll.old

通常你可以在
C:\Program Files (x86)\Common Files\System\MSMAPI\1033  或是  C:\Program Files\Common Files\System\MSMAPI\1033。

重新啟動WORD試試
參考來源
Windows 10 upgrade caused mapi error in Office 2010

2017年10月11日 星期三

WINDOWS 10 2017年10月份更新-造成系統無法開機(KB4041676、KB4041691、KB4000824)

今天一大早陸續收到許多使用者反映電腦無法正常開機。
(李組長眉頭一皺,發現案情並不單純。)
於是看了一下鄉民的討論,才發覺大事不妙

 似乎是透過WSUS伺服器更新"delte",就會造成系統無法開機

 詳情可以參考
KB4041676 -  https://support.microsoft.com/en-us/help/4041676

KB4041691 – https://support.microsoft.com/en-us/help/4041691

KB4000824 https://support.microsoft.com/en-us/help/4000824

目前解決的方法就是
1.先快速到WSUS伺服器去搜尋delt, 然後先把這幾個更新拒絕核准。
2.逐一到受害的電腦,把安裝的更新移除

移除步驟就是
1.先進入WINRE
2.命令提示字元,透過Dism移除 (詳細參照下方的參考來源)

Dism /Image:C:\ /Get-Packages (could be any drive, had it on D, F, and E.)
Dism /Image:C:\ /Remove-Package /PackageName:package_ for_###

註:主要是移除下列三個,重新開機就可以了
Rollupfix_wrapper~31bf3856ad364e35~amd64~14393.1770.1.6
Rollupfix~31bf3856ad364e35~amd64~14393.1770.1.6
Rollupfix~31bf3856ad364e35~amd64~14393.1715. 1.10
參考來源:
 Windows security updates broke 30 of our machines
The October 2017 Update – “Inaccessible Boot Device”

2017年8月28日 星期一

網路芳鄰無法存取 (可怕的群組原則派送後)

如果你跟我一樣,是在派送過後群組管理原則之後才發生的。
那麼本篇有可能有很高的機率可以給予一些小小的幫助。

==看結果的可以直接跳過==
事情是這樣的........
由於某些原因,必須從AD中派送群組原則
但沒想到派送之後,才是一連串的 惡夢開始 XD

大部分都一一解決,但有一個問題卻是弄了非常久
就是 網芳存取
而且奇妙的是,我把派送的原則停用之後,一樣發生無法存取(即使我重開機)

這就妙了,因為大部分的問題,只要停止原則後都可以恢復正常,再來一一找問題。
但是網芳存取的錯誤卻不是,這讓我產生疑惑,真的跟群組原則有關嗎
畢竟停用之後問題仍然發生,可是這問題是派送之後才發生的
我就一個人像鬼打牆般的在那試了又試
眼看著使用者一直打電話來催促
 心想這樣下去不是辦法 ,於是開始了以下測試

找一台尚未套用原則的電腦
測試透過網芳存取伺服器 => 正常
套用原則
測試 => 失敗

證實果然跟原則有關係

此時把一半的原則手動一個個設定回去
測試網芳存取 => 正常

看起來越來越接近答案
就這樣利用二分法(是這樣說嗎)
終於找到是某項設定照成的
跟我在GOOGLE上看到的解答 不大一樣 XD
==看結果的可以直接跳過==

電腦設定=>Windows設定=>安全性設定=>安全性選項
Microsoft網路用戶端:數位簽章用戶端的通訊(自動)
設定為已停用,然後重新開機

以上提供給有相同困擾的朋友參考看看

Edge Preview window opens and hangs up

近日有許多人反映 透過Edge 點選列印之後,預覽列印視窗會不停的轉圈圈,導致無法列印,非常困擾。 透過Google大神爬了一下,發現有許多鄉民都有此問題,試過之後都無法解決(有停用DLP、關閉UAC、重設瀏覽器、重設使用者(X)),大概就只差沒重新安裝作業系統了。 還有鄉民說 ...