У меня есть VBscript, который отлично работает на моей рабочей станции.Он запрашивает SCCM, чтобы выяснить, в каком домене находится компьютер. Когда я запускаю его как часть последовательности задач, происходит сбой.Обратите внимание, что это почти последний шаг в последовательности задач, в Windows 7, а не в Windows PE.
Option Explicit
Const wbemFlagReturnImmediately = &H10
Const wbemFlagForwardOnly = &H20
Dim computerName, userName, userPassword, server
Dim swbemLocator, swbemServices, providerLoc
Dim location, connection
Dim query, found, resource, resources
'--- Settings ---
userName = "domain\username"
userPassword = "password"
server = "domain.com"
'--- Get computer name ---
computerName = CreateObject("WScript.Network").ComputerName
WScript.Echo"Computer name: " & computerName
'--- Connect ----
Set swbemLocator = CreateObject("WbemScripting.SWbemLocator")
swbemLocator.Security_.AuthenticationLevel = 6
Set swbemServices = swbemLocator.ConnectServer(server, "root\sms",userName,userPassword)
Set providerLoc = swbemServices.InstancesOf("SMS_ProviderLocation")
For Each location In providerLoc
If location.ProviderForLocalSite = True Then
WScript.Echo "SiteCode: " & location.SiteCode
Set connection = swbemLocator.ConnectServer(server, "root\sms\site_" + location.SiteCode)
Else
WScript.Echo "Not provider for local site."
End If
Next
'--- Query & output ---
query = "SELECT * FROM SMS_FullCollectionMembership WHERE name = '" & computerName & "'"
Set resources = connection.ExecQuery(query, , wbemFlagForwardOnly Or wbemFlagReturnImmediately)
found = False
For Each resource In resources
WScript.Echo "Domain: " & resource.Domain & " (" & resource.CollectionID & ")"
found = True
Exit For
Next
If Not found Then WScript.Echo "Computer not found!"
Если я открою командную строку, рутинную последовательность задач (используя F8 под Windows 7, а не Windows PE) и запускаю скрипт, я получаю:
SWbemLocator: Доступ запрещен
на линии:
Set connection = swbemLocator.ConnectServer(server, "root\sms\site_" + location.SiteCode)
Есть мысли?В качестве альтернативы, есть ли другие предложения о том, как узнать, каким доменом был компьютер в последний раз, когда он был собран?