AD Domain Trust 的時候
兩個 Domain 的 DC Computer Name 電腦名稱不能相同
否則無法 Trust
如果不巧遇上了, 其中一方一定要改名
如果 Multi-Domain Trust 也必須避開 Computer Name 重複的問題
最好所有電腦名稱都是唯一
2016-11-14
2016-11-09
Excel 參照路徑批次修改
多年前為了一些人用了 Excel 的參照功能
但因為需要更換 File Server 路徑導致參照會失效
因此撰寫了 VBScript 來進行置換
多年後翻出此程式碼
不確定是否有 Bug, 也許還能用也說不定
但因為需要更換 File Server 路徑導致參照會失效
因此撰寫了 VBScript 來進行置換
多年後翻出此程式碼
不確定是否有 Bug, 也許還能用也說不定
Microsoft VDI User Profile Broken Fix / Recovery / Back & Restore
User Profile Disk 在網路異常或斷線等意外情況下
將導致 Collection Member 與 User Profile Server 失去聯繫
結果便是 User 的註冊機碼等無法在 Sign-Out 時回存
下次登入時就會變成 Temp Profile
且因為是 Pooled VM, 根本無法經由 Local Machine Registry 修復
解決辦法之邏輯如下:
A. User Sign-Out 時 (VBS, 在 Pooled VM 上進行)
User Sign-Out 時檢查 User Profile Disk Link 是否仍然有效
在 User Profile Server 的某一共用資料夾建立 Backup Queue File, 並載明 UserName / Domain / Collection Name 等資訊
B. User Sign-Out 後 (PowerShell, 在 User Profile Server 上進行)
根據上述 Queue File 找出 User Profile Disk 並進行掛載
將 User Profile 的 ntuser* 檔案備份到 AppData\Roaming\BackupNTUserData 路徑
解除掛載
C. User Sign-In 時 (VBS, 在 Pooled VM 上進行)
檢查 User Profile 是否正常, 正常就結束, 如果變為 Temp Profile 就要進行 Restore 作業
先利用 DiskPart 將 User Profile Disk 的 Partition 指派一磁碟機代號
再將 AppData\Roaming\BackupNTUserData 複製到根
移除磁碟機代號並要求 Sign-Out 重新登入
以下為程式碼, 包含 VBS 與 PowerShell
VBS 可用 GPO 派送, PowerShell 以工作排程每五分鐘檢查一次
將導致 Collection Member 與 User Profile Server 失去聯繫
結果便是 User 的註冊機碼等無法在 Sign-Out 時回存
下次登入時就會變成 Temp Profile
且因為是 Pooled VM, 根本無法經由 Local Machine Registry 修復
解決辦法之邏輯如下:
A. User Sign-Out 時 (VBS, 在 Pooled VM 上進行)
User Sign-Out 時檢查 User Profile Disk Link 是否仍然有效
在 User Profile Server 的某一共用資料夾建立 Backup Queue File, 並載明 UserName / Domain / Collection Name 等資訊
B. User Sign-Out 後 (PowerShell, 在 User Profile Server 上進行)
根據上述 Queue File 找出 User Profile Disk 並進行掛載
將 User Profile 的 ntuser* 檔案備份到 AppData\Roaming\BackupNTUserData 路徑
解除掛載
C. User Sign-In 時 (VBS, 在 Pooled VM 上進行)
檢查 User Profile 是否正常, 正常就結束, 如果變為 Temp Profile 就要進行 Restore 作業
先利用 DiskPart 將 User Profile Disk 的 Partition 指派一磁碟機代號
再將 AppData\Roaming\BackupNTUserData 複製到根
移除磁碟機代號並要求 Sign-Out 重新登入
以下為程式碼, 包含 VBS 與 PowerShell
VBS 可用 GPO 派送, PowerShell 以工作排程每五分鐘檢查一次
2016-10-24
Software List (Enhanced Version) Create DB View
/******************************************************************************/
USE [Info]
GO
/****** Object: View [dbo].[ASMA] Script Date: 10/24/2016 10:29:40 ******/
IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[ASMA]'))
DROP VIEW [dbo].[ASMA]
GO
/****** Object: View [dbo].[ASMA] Script Date: 10/24/2016 10:29:40 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
Software List (Enhanced Version) Create DB Table
USE [Info]
GO
/****** Object: Table [dbo].[ARPTable] Script Date: 10/24/2016 10:28:29 ******/
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ARPTable]') AND type in (N'U'))
DROP TABLE [dbo].[ARPTable]
GO
/****** Object: Table [dbo].[ARPTable] Script Date: 10/24/2016 10:28:29 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[ARPTable](
[Serial] [int] IDENTITY(1,1) NOT NULL,
[DateTime] [datetime] NOT NULL,
[HostName] [nvarchar](max) NOT NULL,
[IPAddress] [nvarchar](15) NOT NULL,
[MACAddress] [nvarchar](17) NOT NULL,
[Checked] [int] NOT NULL CONSTRAINT [DF_ARPTable_Checked] DEFAULT ((0)),
CONSTRAINT [PK_ARPTable] PRIMARY KEY CLUSTERED
(
[Serial] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
GO
/****** Object: Table [dbo].[ARPTable] Script Date: 10/24/2016 10:28:29 ******/
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ARPTable]') AND type in (N'U'))
DROP TABLE [dbo].[ARPTable]
GO
/****** Object: Table [dbo].[ARPTable] Script Date: 10/24/2016 10:28:29 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[ARPTable](
[Serial] [int] IDENTITY(1,1) NOT NULL,
[DateTime] [datetime] NOT NULL,
[HostName] [nvarchar](max) NOT NULL,
[IPAddress] [nvarchar](15) NOT NULL,
[MACAddress] [nvarchar](17) NOT NULL,
[Checked] [int] NOT NULL CONSTRAINT [DF_ARPTable_Checked] DEFAULT ((0)),
CONSTRAINT [PK_ARPTable] PRIMARY KEY CLUSTERED
(
[Serial] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
Software List (Enhanced Version) Load into DB
'On Error Resume Next
SourcePath = "D:\Info\Data"
GapString = "=====Gap====="
InfoString = "=====Info====="
DebugMode = 0
SQLServer="127.0.0.1"
SQLUser="Info"
SQLPassword="password"
SQLDB="Info"
SQLConnectionTimeout = 600
DonnotKeepOSLastBootUpTime = 1
SourcePath = "D:\Info\Data"
GapString = "=====Gap====="
InfoString = "=====Info====="
DebugMode = 0
SQLServer="127.0.0.1"
SQLUser="Info"
SQLPassword="password"
SQLDB="Info"
SQLConnectionTimeout = 600
DonnotKeepOSLastBootUpTime = 1
Software List (Enhanced Version)
' ----- 參數設定開始 -----
ADDomain = "Contoso"
TargetFilePath = "\\FileServer\Info$\Data\*.dbd"
GapString = "=====Gap====="
InfoString = "=====Info====="
' 除厝模式: (派送用戶端執行應設為 0)
' 0: 不顯示訊息
' 1: 顯示錯誤訊息
DebugMode = 0
' 資料取得方式 (此參數會在 DB Record 中註記):
' 1: Local - Client Push 檔案給 Server 讀取
' 2: Remote - Server 主動連線取得資料產生檔案
InfoDataType = 1
' 如果資料取得方式是 2: Server 主動連線取得資料產生檔案
' 此處給予客戶端有可能使用的管理員帳號密碼
AuthUserNameString = ""
AuthPasswordString = ""
' ----- 參數設定結束 -----
2016-10-20
2016-09-30
Bash Script for Linux to Connect to Microsoft VDI
Script by Dino9021
因為 Remmina 一定要記住 User Name & Password 才能連線
有安全上的疑慮, 因此利用 Bash Script 搭配 xfreerdp 來進行連線作業
需要將連線資源寫成文字檔放在 Web Server 上讓 Bash Script 去下載解讀
如此如果資源有異動, 就不需要去 Client 更換 Script, 只要修改 Web Server 上的資源檔案就行了
而且如此一來不需要安裝 Remmina, 只要有 xfreerdp 就可以用了
經過測試, 如果不裝 Remmina 的話 xfreerdp 無法裝到 2.0 以上版本 (才支援 RDG)
安裝時參考 Microsoft 2012 R2 VDI 攻略 中 ubuntu 的安裝方法
因為 Remmina 一定要記住 User Name & Password 才能連線
有安全上的疑慮, 因此利用 Bash Script 搭配 xfreerdp 來進行連線作業
需要將連線資源寫成文字檔放在 Web Server 上讓 Bash Script 去下載解讀
如此如果資源有異動, 就不需要去 Client 更換 Script, 只要修改 Web Server 上的資源檔案就行了
經過測試, 如果不裝 Remmina 的話 xfreerdp 無法裝到 2.0 以上版本 (才支援 RDG)
安裝時參考 Microsoft 2012 R2 VDI 攻略 中 ubuntu 的安裝方法
- Install Remmina and FreeRDP to Connect to VDI Through RD Gateway
- sudo apt-get update
- sudo apt-get dist-upgrade
- sudo apt-add-repository ppa:remmina-ppa-team/remmina-next
- sudo apt-get update
- sudo apt-get install freerdp-x11 remmina remmina-plugin-rdp
- sudo apt-get upgrade
- xfreerdp --version
2016-09-21
Ubuntu Upgrade Remmin
sudo apt-get purge --auto-remove freerdp-x11 remmina remmina-common remmina-plugin-rdp remmina-plugin-vnc remmina-plugin-gnome remmina-plugin-nx remmina-plugin-telepathy remmina-plugin-xdmcp
sudo apt-get update
sudo apt-get install software-properties-common
sudo apt-add-repository ppa:remmina-ppa-team/remmina-next
sudo apt-get update
sudo apt-get install freerdp-x11 remmina remmina-plugin-rdp
sudo apt-get install freerdp-x11 remmina remmina-plugin-rdp remmina-common remmina-plugin-vnc remmina-plugin-gnome remmina-plugin-nx remmina-plugin-telepathy remmina-plugin-xdmcp
sudo apt-get upgrade
xfreerdp --version
sudo apt-get dist-upgrade
sudo apt-get update
sudo apt-get install software-properties-common
sudo apt-add-repository ppa:remmina-ppa-team/remmina-next
sudo apt-get update
sudo apt-get install freerdp-x11 remmina remmina-plugin-rdp
sudo apt-get install freerdp-x11 remmina remmina-plugin-rdp remmina-common remmina-plugin-vnc remmina-plugin-gnome remmina-plugin-nx remmina-plugin-telepathy remmina-plugin-xdmcp
sudo apt-get upgrade
xfreerdp --version
sudo apt-get dist-upgrade
訂閱:
文章 (Atom)