在我的组织中,我们基于用户更改角色等来花费大量时间来更改用户主文件夹路径。我编写了一个非常简单的powershell脚本,该脚本从csv设置homedir路径:
Import-Csv C:\Dir\homedir.csv | ForEach-Object {
Set-ADUser $_.SamAccountName –HomeDirectory $_.HomeDirectory
}
我也想这样做,就是检查用户是否存在-profilepath(漫游配置文件)并将其(如果存在)更改为
"$_.HomeDirectory"\Profile
(所有漫游配置文件都遵循此构造)。如果不存在,它将直接跳到下一个用户并按要求执行工作。我玩过
if
语句,确实弊大于利。任何人都有生命线可以扔我吗? 最佳答案
很难说出您在哪里卡住了,但我认为它在“属性”位中。发出命令Get-ADUser
时,默认情况下不会拉出ProfilePath。这样的事情应该可以解决问题:
Import-Csv C:\Dir\homedir.csv | ForEach-Object {
$user = Get-ADUser $_.SamAccountName -Properties 'ProfilePath'
if($user.ProfilePath -ne $null)
{
$profilepath = $_.HomeDirectory + "\Profile"
Set-ADUser $user –ProfilePath $profilepath
}
Set-ADUser $_.SamAccountName –HomeDirectory $_.HomeDirectory
}
关于powershell - PowerShell Active Directory IF语句,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21915368/