在我的组织中,我们基于用户更改角色等来花费大量时间来更改用户主文件夹路径。我编写了一个非常简单的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/

10-08 21:21