使用 Powershell 取代 Kix 腳本

使用 Powershell 取代 Kix 腳本

我們希望用 Powershell 腳本取代目前的 Kix 腳本,我很好奇如何測試群組成員身份來映射網路磁碟機。我們目前的 kix 腳本基本上只是對每個使用者群組執行if 語句,並測試使用者是否屬於該群組,如果是,則對應一個網路磁碟機。這是一個例子:

If InGroup("ADGROUP")
  Use m: "\\server\share"
EndIf

我懷疑這是最有效的方法,但我想問如何在 PowerShell 中完成相同的事情,以及人們建議如何為 Active Directory 中的使用者對應磁碟機和印表機的正確方法。

如果需要此訊息,我們所有的客戶都使用 Windows Vista/7,而我們剛剛遷移到 AD 2008。

答案1

我會使用群組原則首選項來對應 AD 中的磁碟機。請參閱使用群組原則首選項根據群組成員身分對應磁碟機了解詳情。我還鼓勵用戶進行教育,向他們展示如何將網路位置添加到他們的庫中。

答案2

我花了整整三天的時間嘗試將現有的 Kix 檔案(我創建的)轉換為 Powershell。

我發現,Powershell 還沒有完全準備好用作登入腳本。也許在最新版本中,但現在使用Powershell 2.0,我發現所使用的命令主要是從VBS移植的。

我認為 Kixtart 中的“If”命令非常有效,因為我已經在許多客戶端網站上使用過它並且它很有效。指令簡單明了、速度快,對於以前從未使用過 Kix 的系統管理員來說很容易閱讀。我的意思是,如果您將 Kixtart 中的相同磁碟機映射命令與在 Powershell 中執行相同操作所需編寫的命令進行比較,則似乎過於複雜。

我在我的部落格寫過:http://thisishelpful.com/kix-login-script-remote-desktop-services-server-terminal-server.html。我將透過比較我的 kix 腳本和修改後的 Powershell 腳本來更新它,您就會明白我的意思。

希望有幫助。

答案3

對於 AD 方面,您可能需要查看 Quest 的 AD cmdlet。

答案4

要在 PowerShell 中檢查群組成員資格:

$wid=[System.Security.Principal.WindowsIdentity]::GetCurrent()
$prp=new-object System.Security.Principal.WindowsPrincipal($wid)
$adm=[System.Security.Principal.WindowsBuiltInRole]::Administrator
$IsAdmin=$prp.IsInRole($adm)

最後兩行是內建群組遵循的模式(有一個這些的數量)。還有超載的情況IsInRole需要一個字串,例如。 」網域\群組」。

映射執行的驅動器net use ...可能是最簡單的(PowerShell 可以輕鬆調用控制台可執行檔)。

相關內容