Если я попытаюсь запустить сценарий ниже, я получаю отказ от доступа к WMI. Однако, если я запустил команду в командной строке с использованием тех же учетных данных, она проходит без ошибок. Пожалуйста, объясните, что не так с этим скриптом.
Это прекрасно работает в командной строке:
Rename-Компьютер -ComputerName U1004062-TLL-A -NewName U1004062-TLL-B -LocalCredential десять \ LocalAdmin -DomainCredential десять \ DomainAdmin -force -PassThru - перезагрузка
Это не работает, используя те же учетные данные.
Import-Module activedirectory
$list = Import-csv C:\temp\machine.csv -Header oldcomputer, newcomputer
$local = "domain"
$userlocal = "LocalAdmin"
#Don't edit below this point
$passwordlocal = Read-Host -Prompt "Enter password for $userlocal" -AsSecureString
$usernamelocal = "$local\$userlocal"
$credentiallocal = New-Object System.Management.Automation.PSCredential($usernamelocal, $passwordlocal)
$domain = "ten"
$user = "domainadmin"
#Don't edit below this point
$password = Read-Host -Prompt "Enter password for $user" -AsSecureString
$username = "$domain\$user"
$credential = New-Object System.Management.Automation.PSCredential($username, $password)
foreach ($machine in $list)
{Rename-Computer -ComputerName $machine.oldcomputer -NewName $machine.newcomputer -LocalCredential $credentiallocal -DomainCredential $credential -Force -passthru -Restart}
Я что-то упустил? Почему вы получаете ошибки WMI, когда вы не используете WMI? В другой заметке попробуйте получить свои учетные данные с помощью '$ credentialLocal = Get-Credential' и' $ credential = Get-Credential'. Сохраняет некоторые строки кода :) Альтернативно, если вы хотите, чтобы имя пользователя было заполнено, используйте '$ credentialLocal = Get-Credential -Message 'Пожалуйста, введите локальные учетные данные' -Username $ username' – ojk
Спасибо за Tidbits of info OJK! По-видимому, cmendlet Rename-Computer использует WMI для внесения изменений на локальную машину. Однако я выяснил проблему. Компания использует ARS, и вы должны запускать все через прокси-сервис, чтобы что-либо сделать. – NobleMan