Невозможно запросить информацию [Get-QADComputer] в удаленных сеансах PS (Powershell) - PullRequest
0 голосов
/ 22 июля 2011

Когда я запускаю приведенный ниже скрипт для извлечения информации о подразделении с помощью командлетов Quest Ad, он выдает ошибку, как показано ниже

Object reference not set to an instance of an object.
+ CategoryInfo          : NotSpecified: (:) [Get-QADComputer], NullReferenceException
+ FullyQualifiedErrorId : System.NullReferenceException,Quest.ActiveRoles.ArsPowerShellSnapIn.Powershell.Cmdlets.GetComputerCmdlet

Ниже приведен скрипт, который используется

$password = convertTo-secureString -string "123" -asPlainText -force 
$credential = new-object System.Management.automation.Pscredential ("test.com\sh" , $password) 
$session = New-PSSession -computername CI -credential $credential -port 5985 -Authentication Default
Invoke-Command -Session $session -ScriptBlock {
Add-PSSnapin Quest.ActiveRoles.ADManagement
$ou = get-qadcomputer QUAG | select -ExpandProperty canonicalname
}
$adou= (Invoke-Command -Session $session  -ScriptBlock { $ou })
Get-PSSession | Remove-PSSession
$adou

Может кто-нибудь, пожалуйста, помогите мне с этим?

Спасибо!

Ответы [ 2 ]

2 голосов
/ 24 июля 2011

Вам не нужно запускать QAD из удаленного сеанса, вы можете попробовать его с вашей административной станции:

Add-PSSnapin Quest.ActiveRoles.ADManagement
$pw = read-host "Enter password" -AsSecureString
Connect-QADService -Service 'server.company.com' -ConnectionAccount 'company\administrator' -ConnectionPassword $pw
Get-QADComputer QUAG | Select-Object -ExpandProperty CanonicalName
0 голосов
/ 22 июля 2011

Я думаю, проблема в том, как вы объявляете и затем вызываете этот блок скрипта.Не проверено, но я думаю, что это может работать лучше:

 Invoke-Command -Session $session -ScriptBlock {
 Add-PSSnapin Quest.ActiveRoles.ADManagement
       }
 $ou = {get-qadcomputer QUAG | select -ExpandProperty canonicalname}

 $adou= (Invoke-Command -Session $session  -ScriptBlock $ou)
...