System Center Configuration Manager - PowerShell Remoting - PullRequest
0 голосов
/ 31 марта 2020

У меня есть основной сервер SCCM - «AB C»

Позже я установил консоль SCCM и модуль PowerShell на еще одну машину - «XYZ»

Я запускаю скрипт ниже сервер - "OPQ" и пытается удаленно "XYZ" (на котором я недавно установил консоль SCCM)

Script ::

$Session = New-PSSession -ComputerName "XYZ" -Authentication Kerberos -Credential $Cred -ConfigurationName Microsoft.PowerShell32

Invoke-Command -Session $Session -ScriptBlock {
Import-module "C:\Program Files (x86)\Microsoft Configuration Manager\AdminConsole\bin\ConfigurationManager.psd1"

    Set-Location PS1:\
}

ОШИБКА ::

Доступ есть отказано. (Исключение из HRESULT: 0x80070005 (E_ACCESSDENIED)) + CategoryInfo: OpenError: (PS1: PSDriveInfo) [Import-Module], UnauthorizedAccessException + FullyQualifiedErrorId: диск, Microsoft.PowerShell.Commands.Import * 1012CommonCommand_MoCommand найти диск. Диск с именем '' не существует. + CategoryInfo: ObjectNotFound: (PS1: String) [Set-Location], DriveNotFoundException + FullyQualifiedErrorId: DriveNotFound, Microsoft.PowerShell.Commands.SetLocationCommand + PSComputerName: XYZ

Ответы [ 2 ]

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

Мне удалось решить эту проблему, сохранив учетные данные на сервере XYZ, а затем вызвав их под моей командой INvoke.

Like This  : 

$Session = New-PSSession -ComputerName "XYZ" Invoke-Command -Session $Session -ScriptBlock { $password = Get-Content -Path D:\Creds\creds.txt | ConvertTo-SecureString $Cred = New-Object System.Management.Automation.PSCredential ("domain\UserId", $password) Then the rest of the code. ... .. . . . }

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

Ну, похоже, у вас есть проблема с разрешениями. Вот как я выполнил удаленную команду в своей среде SCCM через мой PSS:

 $device = Invoke-Command -Session $sess -ScriptBlock {
 Import-Module (Join-Path (Split-Path $env:SMS_ADMIN_UI_PATH) 
 ConfigurationManager.psd1)
 Push-Location -Path ((Get-WmiObject -Namespace "root\SMS" -Class 
 "SMS_ProviderLocation" | Select-Object -ExpandProperty SiteCode) + ":")
 Get-CMDevice -Name $env:COMPUTERNAME
 Pop-Location
 }
 $device
 RunspaceId                        : cbc7e008-d92c-4ba3-94a3-b75f8005be98
 SmsProviderObjectPath             : SMS_CM_RES_COLL_SMS00001.ResourceID=16777221
 AADDeviceID                       : 00000000-0000-0000-0000-000000000000
 AADTenantID                       : 00000000-0000-0000-0000-000000000000
 ActivationLockBypassState         :
 ActivationLockState               :
 ADLastLogonTime                   : 3/31/2020 11:23:38 PM
 ADSiteName                        : XXXX-XX
 ...

Обратите внимание, что если вы не используете удаленный доступ к своему PSS, вам нужно будет указать свой PSS в Get-WmiObject команда, например:

 (Get-WmiObject -ComputerName [YOUR PSS] -Namespace "root\SMS" -Class "SMS_ProviderLocation" | Select-Object -ExpandProperty SiteCode) + ":"
...