Как передать имя хоста локального компьютера в блок удаленного скрипта в качестве входной переменной с помощью powershell - PullRequest
0 голосов
/ 17 июня 2020

У меня есть код PowerShell для создания компьютерных объектов на сервере AD. Но я пытаюсь выполнить сценарий с сервера WORKGROUP с помощью PSSession. Во время загрузки он выполнится, получит имя хоста локального компьютера [рабочей группы] и создаст объект на сервере Active Directory. Вот код.

$host = (Get-WmiObject win32_computersystem).DNSHostName

$cred = Get-Credential

$session = New-PSSession -ComputerName na.example.com  -Credential $cred

Invoke-Command -Session $session -ScriptBlock { 

    Get-ADComputer -Identity $using:host

    $ObjOUPath = 'OU=na_server_ou,DC=example,DC=com'

    New-ADComputer -Name $using:host -Path $ObjOUPath -Enabled $True
} 

При выполнении появляется ошибка, например

 Cannot bind parameter 'Identity'. Cannot create object of type "Microsoft.ActiveDirectory.Management.ADComputer". The 
adapter cannot set the value of property "Name".
    + CategoryInfo          : InvalidArgument: (:) [Get-ADComputer], ParameterBindingException
    + FullyQualifiedErrorId : CannotConvertArgumentNoMessage,Microsoft.ActiveDirectory.Management.Commands.GetADComputer
    + PSComputerName        : na.example.com

The name provided is not a properly formed account name
    + CategoryInfo          : NotSpecified: (CN=System.Manag...example,DC=com:String) [New-ADComputer], ADException
    + FullyQualifiedErrorId : ActiveDirectoryServer:1315,Microsoft.ActiveDirectory.Management.Commands.NewADComputer
    + PSComputerName        : na.example.com 
...