使用 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 可以轻松调用控制台可执行文件)。

相关内容