【问题标题】:Drive Mapping Incorrect when AD User created with Powershell使用 Powershell 创建 AD 用户时驱动器映射不正确
【发布时间】:2016-07-06 17:23:21
【问题描述】:

我编写了一个运行良好的脚本。它创建用户帐户、设置密码、放置在正确的 OU 中、在其中创建主驱动器文件夹和子文件夹。用户可以登录并且没有任何问题,但是我注意到的一件事是用户正在映射到与 AD 中指定的驱动器不同的驱动器。脚本块是:

$homedrivepath = "Server_Path_for_users_data"
$homedrive = "Y"

New-ADUser -HomeDirectory "$homedrivepath" -HomeDrive "$homedrive"

正如我所提到的,其他一切都很好。这个问题是即使在 AD 中,它也显示为 Y 是驱动器号,但是当用户登录时,它会将它们映射到 Z:。任何想法为什么会发生这种情况?它也不由 GPO 或类似机构管理。

谢谢!

【问题讨论】:

    标签: powershell active-directory powershell-3.0 network-share


    【解决方案1】:

    我在将驱动器映射为 Z 时遇到了这个问题: 我使用 vb.net windows 应用程序创建新用户,并且我将 homedrive 作为 M 而不是 M:

    这解决了我的问题!! 所以同样适用于 vb.net 和 powershell。

    【讨论】:

      【解决方案2】:

      您还有其他脚本吗?检查它是否搞砸了。

      测试此脚本可让广告制作变得轻松。 https://gallery.technet.microsoft.com/scriptcenter/Create-AD-user-on-the-go-3b754198

      Import-Module activeDirectory 
      [System.Reflection.Assembly]::LoadWithPartialName('Microsoft.VisualBasic') | Out-Null  
      $Firstname = [Microsoft.VisualBasic.Interaction]::InputBox("Enter firstname ") 
      [System.Reflection.Assembly]::LoadWithPartialName('Microsoft.VisualBasic') | Out-Null  
      $Lastname = [Microsoft.VisualBasic.Interaction]::InputBox("Enter Lastname ") 
      $PWD=[System.Reflection.Assembly]::LoadWithPartialName('Microsoft.VisualBasic') | Out-Null  
      $PWD= [Microsoft.VisualBasic.Interaction]::InputBox("Enter Password ") 
      $dnsroot = '@' + (Get-ADDomain).dnsroot 
      $OU="CN=users, DC=Domain,DC=COM" 
      $SAM = $user.FirstName.Substring(0,1) + $user.LastName #example John snow will be Jsnow 
          #$Sam=$User.FirstName+$User.LastName example john snow will be Johnsnow 
          #$Sam=$User.FirstName example john snow will be John 
          #$Sam= $User.firstName + "." + $User.lastName example john snow will be John.snow 
      $Dname="$firstName " + "$lastName" 
      $UPN = $Sam + “$dnsroot” 
      New-ADUser -Name "$firstName $lastName" -DisplayName $Dname -AccountPassword (ConvertTo-SecureString “$pwd” -AsPlainText -force) -GivenName $FirstName  -Path $OU -SamAccountName $SAM -Surname $LastName  -UserPrincipalName $UPN -Enabled $TRUE 
      Write-Output "User $Firstname has been created" -foregroundcolor Green 
      ## setting up stuff## 
      $user=$sam 
      Write-Host "Would you like to set up Home Drive?"        -ForegroundColor Green 
      $Response = Read-Host "[Y] Yes, [N] No" 
          If($Response -eq "y") 
      {Get-ADUser $user | % { Set-ADUser $_ -HomeDrive "H:" -HomeDirectory ('\\SERVER\home$\' + $_.SamAccountName) }} 
      
      
      #now create Home folder# 
      
      
          if( -not ( Test-Path \\server\home$\$User ) ){ 
              New-Item -Path \\server\home$\$User -ItemType directory 
              } 
      
      
      #**** setting up Login script* 
      Write-Host "Would you like to add Login Script?"        -ForegroundColor Green 
      $Response = Read-Host "[Y] Yes, [N] No" 
          If($Response -eq "y") 
      {Get-ADUser $user | Set-ADUser -ScriptPath 'yyy.bat'} 
      
      
      ## add to group## 
      Write-Host "allow to add to group Group?"        -ForegroundColor Green 
      $Response = Read-Host "[Y] Yes, [N] No" 
          If($Response -eq "y") 
       {Add-ADGroupMember -Identity Group -Member $user} 
       write-host "Sit back and relax all task has been completed"        -ForegroundColor Green
      

      【讨论】:

      • 感谢您的回复。没有任何其他脚本可以解决这个问题。它刚刚开始发生。还有其他想法吗?
      • 你能从上面的脚本创建一个用户看看吗?如果更改,您可以使用 repadmin 修改。 repadmin /showjobmeta dc01 "cn=user",ou="someou",dc="dc01" dc="com" 您还可以启用审核并查看导致更改的日志
      【解决方案3】:

      你应该写:

      $homedrive = "Y:"
      

      代替:

      $homedrive = "Y"
      

      【讨论】:

        猜你喜欢
        • 2017-01-16
        • 2020-06-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-03-05
        • 1970-01-01
        • 2010-12-04
        • 1970-01-01
        相关资源
        最近更新 更多