У меня есть виртуальная машина под управлением Windows Server 2012. И некоторые предполагаемые службы на ней.Я хочу удаленно изменить файл конфигурации на этой машине с моего настольного компьютера.В настоящее время я изменяю этот файл конфигурации, сопоставляя диск C:
удаленного сервера, а затем изменяя файл.Теперь это блокирует меня от смены нескольких серверов, поскольку я не могу подключить несколько серверов c:
одновременно к одному диску.Кроме того, отображение сотен дисков не было бы идеальным.Я изменяю файл с помощью сопоставления диска следующим образом:
$password = <password text> | ConvertTo-SecureString -asPlainText -Force
$username = "admin"
$credential = New-Object System.Management.Automation.PSCredential($username,$password)
net use Z: \\$ipAddress\C$ <password> /user:admin type 'z:\Program Files\lalaland\Data\Settings.xml'
(Get-Content 'z:\Program Files\lalaland\Data\Settings.xml') | ForEach-Object { $_ -replace $oldString, $newString } | Set-Content 'z:\Program Files\lalaland\Data\Settings.xml'
type 'z:\Program Files\lalaland\Data\Settings.xml'
net use z: /delete
Поэтому я искал лучший вариант и нашел этот скрипт на https://gallery.technet.microsoft.com/scriptcenter/PowerShell-Replace-String-58fbfa85, но он не работает для меня.
Я использую этот сценарий как:
.\Replace-StringInFile.ps1 -ComputerName <RemoteComputerHostName> -TargetPath 'C:\Program Files\lalaland\Data' -Fil
eName Settings.xml -Replace $ oldString -ReplaceWith $ newString -Credential (Get-Credential)
, когда я запускаю командуПоявится окно с учетными данными и запросом имени пользователя и пароля.Я ввожу имя пользователя и пароль, которые я использовал для сопоставления диска, но он выдает следующую ошибку:
New-PSSession : [<RemoteHostName>] Connecting to remote server <RemoteHostName> failed with the following error message : The user name or password is incorrect. For more information, see the
about_Remote_Troubleshooting Help topic.
At D:\workspace\Replace-StringInFile.ps1:84 char:14
+ ... $Session = New-PSSession -ComputerName $Computer -Credential $Creden ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : OpenError: (System.Manageme....RemoteRunspace:RemoteRunspace) [New-PSSession], PSRemotingTransportException
+ FullyQualifiedErrorId : LogonFailure,PSSessionOpenFailed
я не понимаю, когда я сопоставляю диск с теми же учетными данными, он работает нормально, ноиспользование другого скрипта, который внутренне использует New-PSSession
, не работает.
Есть идеи?