Назад | Перейти на главную страницу

Переименование компьютера через WMI в Windows 7

У меня проблемы с переименованием локального компьютера через WMI.

Я слежу за документацией MSDN (и не слежу за ней - в попытке получить НЕКОТОРЫЙ результат), но мне кажется, что мне не удается заставить работать метод Win32_ComputerSystem.Rename ().

Set colComputers = objWMIService.ExecQuery("SELECT * FROM Win32_ComputerSystem")
For Each objComputer in colComputers
  If StrComp(objComputer.Name, Left(objNewComputerName, 15), vbTextCompare) <> 0 Then
    errCode = objComputer.UnjoinDomainOrWorkgroup()
    If errCode <> 0 Then
      MsgBox "Error leaving domain/workgroup. Error: " & errCode
    End If

    errCode = objComputer.Rename(objNewComputerName)
    If errCode <> 0 Then
      MsgBox "Error changing computer name from '" & objComputer.Name & "' to '" & Left(objNewComputerName, 15) & "'. Error: " & errCode
    Else
      objComputer.JoinDomainOrWorkgroup domain, password, username

      ' Blindly reboot after attempting to join workgroup/domain
      Set colOs = GetObject("winmgmts:{(Shutdown)}root\cimv2")
      For Each objOs in colOs
        objOs.Reboot()
      Next
    End If
  End If
Next

Всякий раз, когда я вызываю Rename (), я получаю код ошибки 5 (доступ запрещен). Может, мне сначала нужно покинуть домен? Когда я вызываю UnjoinDomainOrWorkgroup (), я также получаю код ошибки 5.

Это обычная установка Windows 7, только с одной учетной записью, которая, конечно же, назначена администратором. Я не могу понять, почему это не работает.

Холп?

Вы пробовали отключить UAC во время тестирования? Я почти уверен, что именно поэтому вы получаете сообщения об отказе в доступе