我们正在寻找用 Powershell 脚本替换我们当前的 Kix 脚本,我很好奇如何测试组成员身份以映射网络驱动器。我们当前的 kix 脚本基本上只是对每个用户组执行一个 if 语句,并测试用户是否属于该组,如果是,它会映射一个网络驱动器。这是一个例子:
If InGroup("ADGROUP")
Use m: "\\server\share"
EndIf
我怀疑这是最有效的方法,但我想问我如何在 PowerShell 中完成同样的事情,以及人们推荐什么正确方法来为 Active Directory 中的用户映射驱动器和打印机。
如果需要此信息,我们所有的客户都在 Windows Vista/7 上,而我们现在正在迁移到 AD 2008。
我会使用组策略首选项来映射 AD 中的驱动器。有关详细信息,请参阅使用组策略首选项根据组成员身份映射驱动器。我还鼓励用户进行教育,向他们展示如何将网络位置添加到他们的库中。
我花了整整三天时间尝试将我们现有的 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 脚本来更新它,你会明白我的意思。
希望有帮助。
对于 AD 方面,您可能需要查看 Quest 的 AD cmdlet。
在 PowerShell 中检查组成员身份:
最后两行是内置组要遵循的模式(其中有很多)。还有一个重载
IsInRole
需要一个字符串,例如。“域\组”。映射驱动器执行
net use ...
可能是最简单的(PowerShell 可以轻松调用控制台可执行文件)。