Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
При запуске скрипта в локальной системе, получающей данные из удаленной системы, WMI предоставляет учетные данные поставщику данных удаленной системы. Для этого требуется только уровень Олицетворение, так как требуется только один сетевой прыжок. Однако если скрипт подключается к WMI в удаленной системе и пытается открыть файл журнала в дополнительной удаленной системе, скрипт завершается ошибкой, если уровень олицетворения не является делегатом. Уровень олицетворения делегата требуется для любой операции, которая включает несколько сетевых прыжков. Дополнительные сведения о безопасности DCOM в WMI см. в разделе "Настройка безопасности процесса клиентского приложения". Дополнительные сведения о сетевом переходе между двумя компьютерами см. в разделе Подключение к WMI на удаленном компьютере.
Использование делегирования для подключения к компьютеру через другой компьютер
Включите делегирование в Active Directory (Пользователи и компьютеры Active Directory в Панели управленияАдминистративные задачи) на контроллере домена. Учетная запись удаленной системы должна быть помечена как доверенной для делегирования , а учетная запись в локальной системе не должна быть помечена как конфиденциальная и не может быть делегирована. локальная система, удаленная система и контроллер домена должны быть членами одного домена или доверенных доменов.
Примечание. Использование делегирования представляет собой риск безопасности, так как оно предоставляет процессам вне вашего прямого контроля возможность использовать ваши учетные данные.
Измените код следующим образом, чтобы указать, что вы хотите использовать делегирование.
-
PowerShell
-
Задайте для параметра -Impersonation в командлете WMI значение Delegate.
-
VBScript
-
Задайте параметр impersonationLevel на Delegate в вызове SWbemLocator.ConnectServer или Delegate в строке моникер. Вы также можете задать олицетворение в объекте SWbemSecurity.
-
C++
-
Задайте для параметра уровня олицетворения значение RPC_C_IMP_LEVEL_DELEGATE в вызове CoInitializeSecurity или CoSetProxyBlanket. Дополнительные сведения о выполнении этих вызовов см. в разделе Инициализация COM для приложения WMI.
Чтобы передать удостоверение клиента на удаленные COM-серверы в C++, установите маскировку в вызове CoSetProxyBlanket. Дополнительные сведения см. в разделе о маскировке.
-
Примеры
В следующем примере кода показана моникерная строка, которая устанавливает режим олицетворения в Delegate. Учтите, что параметр должен быть установлен на Kerberos.
set objWMIServices = Getobject("winmgmts:{impersonationLevel=Delegate,authority=kerberos:MyDomain\Computer_B}!\\ComputerB\Root\CIMv2")
В следующем примере кода показано, как задать олицетворение делегату (значение 4) с помощью SWbemLocator.ConnectServer.
Set objLocator = CreateObject("WbemScripting.SWbemLocator")
Set objWMIService = objLocator.ConnectServer(Computer_B, _
"Root\CIMv2", _
AdminAccount, _
MyPassword, _
"kerberos:Domain\Computer_B")
objWMIService.Security_.ImpersonationLevel = 4
Связанные темы