2011-03-31 48 views
2

正如我在my other question中所解釋的,我正忙於在企業中設置PowerShell模塊存儲庫。如何推送企業範圍的PowerShell配置文件自定義?

我的計劃是擁有一個主存儲庫(r/w訪問有限的一組人)和從屬存儲庫(只讀訪問所有人)。我需要多個存儲庫,因爲客戶端位於不同的安全區域,並且我無法獲得所有客戶端可以訪問的中央位置。

因此,我需要配置客戶端的PowerShell配置文件,以便它們可以指向正確的存儲庫以查找模塊。我想爲此定義一個$ PowerShellRepositoryPath環境變量。

此外,配置文件需要進行自定義,以便在PowerShell啓動時執行位於存儲庫中的腳本(因此$ PowerShellRepositoryPath指向的位置)(我的目標是自動將最新的模塊版本添加到PSModulePath的客戶啓動)。

我們與不同網絡區域中的域成員和獨立服務器存在混合環境。

你將如何進行?是否有可能通過GPO爲域成員推送該變量和配置文件?通過GPO定製$ Profile變量是一個選項嗎?

獨立服務器呢?

編輯: 我認爲,創建環境變量,我就使用GPO來創建它,並通過$env:variableName在PowerShell中使用它。對於非域名的情況,我可能不得不使用腳本..

回答

1

我不知道通過GPO推送$配置文件。但是,我只是簡單地設置一個登錄腳本,該腳本根據用戶的組/安全性成員從網絡位置複製配置文件腳本。

+0

好主意,我會爲工作站做到這一點,謝謝! – dSebastien 2011-04-01 08:42:13

1

那麼,如果你要改變模塊的路徑,我會在存儲庫中有一個文件(比如current.txt),它具有當前模塊的名稱(或當前文件路徑,無論你是哪一個改變)。然後讓$ profile腳本讀取該文件的內容,並根據內容設置變量。通過這種方式,您無需更新配置文件腳本,只需使用路徑(或部分路徑,更改的部分或文件名或其他)更新中央存儲庫current.txt文件,以及何時將其複製到客戶端存儲庫,當執行配置文件腳本時,所有PowerShell配置文件都會使用最新的模塊進行更新。

出於好奇,爲什麼不使用最新版本覆蓋客戶端存儲庫中的模塊文件?如果你這樣做了,所有的客戶端都會有最新的版本,你不必更新$ profile腳本。

或者,您總是可以編寫另一個腳本來替換所有機器上的$ profile腳本。我認爲我建議的第一條路線將是完成您以後的最乾淨的方式。

就GPO而言,我不相信你能做到這一點。沒有定義GPO來控制配置文件腳本中的內容。我會說你可以用自定義的ADM文件來做,但配置文件腳本路徑不受註冊表的控制,所以不要去那裏。

+0

你好,謝謝你的建議。不幸的是,在存儲庫中有一個文件將無濟於事,因爲客戶端需要知道的恰恰是存儲庫的位置(因爲它根據它們所屬的網絡/安全區域而變化)。 – dSebastien 2011-04-01 06:52:26

+0

主存儲庫將被推向從屬存儲庫,所有客戶端將被配置爲指向相關的從屬存儲庫。從屬存儲庫因此將總是包含最新的模塊版本,但我的問題僅僅是關於如何最好地配置客戶端,以便他們知道他們必須使用的從屬存儲庫的路徑 – dSebastien 2011-04-01 06:54:35

+0

ok夠簡單,把文件放在某個地方已知常數。我確定已經有網絡共享,只需將current.txt文件放在那裏,或者創建一個所有用戶都可以訪問的網絡共享,並將其設置爲只讀。 – JoeG 2011-04-01 16:13:18