在 New-ADUser
命令期间:-HomeDirectory = '\sharedrive\folder$%username%'
在 Powershell 中设置此值时,该值在主目录下显示为 \\sharedrive\usersfolder$\%username%
。
但是,如果我在 Active Directory 用户和计算机菜单中手动输入相同的字符串,然后点击应用,它会自动填充到存在 %username% 的人的用户名,并在该共享驱动器上创建一个具有适当权限的文件夹,如下所示:
如何让 Powershell 自动填充此用户名并创建文件夹?仅用用户名写出字符串是行不通的。
最佳答案
我认为这里有几个问题。 PowerShell 不知道如何解释您的输入字符串 '\sharedrive\folder$%username%'
首先,它是一个文字字符串 - 所以即使 PowerShell 知道 $%username%
的意思是“将此值转换为用户名环境变量”,它仍会将其解释为输入的文字字符在字符串中。您似乎要尝试做的是字符串插值,这需要您使用双引号 "
。
其次,%username%
部分不是您在 PowerShell 中使用环境变量的方式。有几种方法可以获得这个值。 $env:USERNAME
应该可以在 Windows 上运行,[Environment]::username
也可以。
所以你会想做这样的事情 "\sharedrive\folder$([Environment]::username)"
对于用户“someuser”,这将返回 "\sharedrive\foldersomeuser"
关于powershell - 设置 HomeDirectory 值时强制 Powershell 创建 AD 用户文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66691304/