PowerShell, передавая аргументы к ошибке new-aduser - PullRequest
0 голосов
/ 07 апреля 2020

Это моя первая попытка передать параметры в new-aduser. Сообщение об ошибке не очень полезно.

Они должны быть в особом порядке? Я проверял список снова и снова

    PS C:\Windows\system32> $params
    new-aduser $Params -WhatIf
    new-aduser $Params


    Name                  : DidItwork
    City                  : SomeCity
    Department            : My Department
    Description           : This is my description
    EmailAddress          : copy.me@mycompany.com
    Fax                   : 480-555-1216
    GivenName             : Copy
    HomePhone             : 480-555-1213
    Initials              : CM
    MobilePhone           : 480-555-1215
    Office                : This my office
    OfficePhone           : 480-555-1212
    POBox                 : PO BOX
    PostalCode            : 90210
    State                 : SomeState
    streetAddress         : 1234 Elm St
    Surname               : Me
    Title                 : My Job Title
    ChangePasswordAtLogon : True
    path                  : OU=Whatever,DC=,DC=mycompany,DC=com
    server                : MYSERVER

    What if: Performing the operation "New" on target "CN=@{Name\=DidItwork\; City\=SomeCity\; Department\=My Department\; Description\=This is my description\; Emai
    lAddress\=copy.me@mycompany.com\; Fax\=480-555-1216\; GivenName\=Copy\; HomePhone\=480-555-1213\; Initials\=CM\; MobilePhone\=480-555-1215\; Office\=This my offic
    e\; OfficePhone\=480-555-1212\; POBox\=PO BOX\; PostalCode\=90210\; State\=SomeState\; streetAddress\=1234 Elm St\; Surname\=Me\; Title\=My Job Title\; ChangePas
    swordAtLogon\=True\; path\=OU\=Whatever\,DC\=mycompany\,DC\=com\; server\=MYSERVER},CN=Users,DC=,DC=mycompany,DC=com".
    new-aduser : The parameter is incorrect
    At line:3 char:1
    + new-aduser $Params
    + ~~~~~~~~~~~~~~~~~~
        + CategoryInfo          : InvalidOperation: (CN=@{Name\=DidI...mycompany,DC=com:String) [New-ADUser], ADInvalidOperationException
        + FullyQualifiedErrorId : ActiveDirectoryServer:87,Microsoft.ActiveDirectory.Management.Commands.NewADUser




PS C:\Windows\system32>  

Вот весь сценарий. Я в основном копирую существующую учетную запись в ту же OU с некоторыми измененными атрибутами стандарты именования В настоящее время это OU только с одной тестовой учетной записью. Прогон Prod будет работать с около 900 учетными записями в 50 различных подразделениях

    CLS
    # ===============================================================================
    $ADServer = myserver"
    $SearchOU = "OU=Whatever,DC=mycompany,DC=com"
    #================================================================================
    $toProcess = get-aduser -filter {enabled -eq $true} -searchbase $SearchOU  -Property * -server $ADServer | Sort Samaccountname | Select -First 10
    $toProcess | ForEach-Object {
        $DN = ($_.DistinguishedName -split "OU=",2)[1]
        #$_ = "CN=" + $last +"."+ $first + ",OU=" + $DN
        $_OU = "OU=" + $DN
        $Params = [PSCustomObject]@{
            Name = diditwork
            City = $_.city 
            Department  = $_.Department
            Description  = $_.Description
            EmailAddress  = $_.EmailAddress
            facsimileTelephoneNumber  = $_.facsimileTelephoneNumber
            Fax  = $_.Fax
            GivenName  = $_.GivenName
            HomeDirectory  = $_.HomeDirectory
            HomePhone  = $_.HomePhone
            Initials  = $_.Initials
            Manager  = $_.Manager
            MobilePhone  = $_.MobilePhone
            Office  = $_.Office
            OfficePhone  = $_.OfficePhone
            POBox  = $_.POBox
            PostalCode  = $_.PostalCode
            SamAccountName  = $_.SamAccountName
            State  = $_.State
        streetAddress  = $_.streetAddress
        Surname  = $_.Surname
        Title  = $_.Title
        Path = $_ou
        }
    $Params.PSObject.Properties | ForEach-Object {if ($_.value -eq $null) { $Params.PSObject.properties.remove($_.name) }}
    Write-host "==================================OLD ACCOUNT========================================================="
    $_
    Write-host "==================================NEW ACCOUNT========================================================="
    $Params
    Write-host "======================================================================================================"
    new-aduser @Params -WhatIf
    Write-host "======================================================================================================"
    new-aduser @Params
    Write-host "======================================================================================================"
    #$CopyFromUser = Get-ADUser $OldAcc.SamAccountName -prop MemberOf -server $ADServer
    #$CopyToUser = Get-ADUser $Params.SamAccountName -prop MemberOf -server $ADServer
    #$CopyFromUser.MemberOf | Where{$CopyToUser.MemberOf -notcontains $_} |  Add-ADGroupMember -Member $CopyToUser -server $ADServer
}

1 Ответ

0 голосов
/ 08 апреля 2020

Это заставило меня двигаться в правильном направлении. Я думаю, что New-Aduser не нравится PSCustomObject

    $Params = @{
    Name = "diditwork"
    }
    New-aduser @params

    $Params = [PSCustomObject]@{
    Name = "diditwork2"
    }
    New-aduser @params
...