powershell - 如何从命令提示符或批处理文件将具有长名称的组添加到本地组?

标签 powershell batch-file active-directory

尝试使用 net.exe 添加名称超过 20 个字符的全局组时我收到一个错误说语法不正确,如下所示:

C:\>NET.EXE localgroup MyRemoteUsers "really-long-group-name-here" /ADD

The syntax of this command is:

NET LOCALGROUP [groupname [/COMMENT:"text"]] [/DOMAIN]
groupname {/ADD [/COMMENT:"text"] | /DELETE}  [/DOMAIN]
groupname name [...] {/ADD | /DELETE} [/DOMAIN]

这个问题是documented by Microsoft here .我需要它在标准的 .cmd 批处理文件中工作。有简单的解决方法吗?

最佳答案

您可以在批处理文件中使用 powershell,如下所示:

powershell -command "& { ([adsi]'WinNT://./your-local-group,group').Add('WinNT://YOURDOMAIN/your-really-long-global-group-name,group'); }"

上面的技巧之一是对整个命令使用双引号,同时在命令中使用单引号。这允许您运行来自 cmd.exe 的语句。或在 .bat/.cmd 文件中。

关于powershell - 如何从命令提示符或批处理文件将具有长名称的组添加到本地组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12112182/

相关文章:

powershell - 在 Powershell 中验证本地管理员密码更改

windows - 如何使用批处理文件从系统配置中删除环境变量

linux - 在 Linux 中使用 AD 组进行颠覆?

angularjs - 从 WAAD 获取用户组的最简单方法是什么?

active-directory - ADFS + OpenID Connect 电子邮件声明和外部 ADFS

powershell - 如何确定我是在Powershell还是cmd中?

powershell - 添加和删​​除扩展属性到 AD 对象

powershell - 用于配置 IIS 应用程序池的 DSC

java - 使用 getRuntime().exec(cmd) 更改注册表项的值不会更改注册表值,即使操作成功结束

c# - 如何获取 BAT 文件的输出并将其保存为字符串