powershell - 设置 HomeDirectory 值时强制 Powershell 创建 AD 用户文件夹

标签 powershell

New-ADUser 命令期间:-HomeDirectory = '\sharedrive\folder$%username%'

在 Powershell 中设置此值时,该值在主目录下显示为 \\sharedrive\usersfolder$\%username%

结果:
It appears like this.

但是,如果我在 Active Directory 用户和计算机菜单中手动输入相同的字符串,然后点击应用,它会自动填充到存在 %username% 的人的用户名,并在该共享驱动器上创建一个具有适当权限的文件夹,如下所示:

This is how it should appear after being applied.

如何让 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/

相关文章:

powershell - 是否可以使用可变嵌套命令拼写

powershell - 使用 Powershell 更改 SERVER 的 Home FTP SSL 证书

powershell - 在 PowerShell 中创建一个临时目录?

PowerShell:括号表达式的区别

c# - 我可以指定一个 dll 以在 Powershell 中使用 New-Object 吗?

powershell - VSCode Powershell 问题匹配器

c# - 为什么通过我的 C# 应用程序在 PowerShell 中执行 "cmd"命令会卡住它?

powershell - WS-Management服务无法处理请求:Powershell

c# - 如何将特定输出值从 exe (c#) 发送到 powershell 脚本

powershell - Powershell选择唯一字段