Я могу использовать удаленный рабочий стол в данной машине и запускать svn без предоставления информации об аутентификации, и это работает; моя аутентификация AD позволяет мне получить доступ к репозиторию, который я хочу.Powershell, svn и аутентификация
Я могу использовать Powershell для подключения к машине и выполнения команд svn. Однако, когда я это делаю, я получаю «доступ запрещен». [Environment]::UserName
появляется с именем пользователя, которое я ожидал (мое имя пользователя AD), когда запускался из сценария, который выполняется удаленно.
Что мне недостает, чтобы сделать эту работу?
Некоторый код:
$Session = New-PSSession -ComputerName $computerName;
if (-Not ($Session)) {
Write-Host "Did not create session!";
Return;
}
Invoke-Command -Session $Session -FilePath 'switchAllRepositories.ps1' -ArgumentList $branchName;
Remove-PSSession $Session;
и в switchAllRepositories, у меня есть параметр:
Param(
[string]$branchURL
)
ряд вызовов, таких как:
If(Test-Path "C:\webfiles\repositoryname") {
Write-Host "Switching repositoryname"
SwitchRepo "repositoryname" ($branchURL) "C:\webfiles\repositoryname";
}
, которые называют:
Function SwitchRepo ($repoName, $branchPath, $workingCopy)
{
$to = ("https://[url]/svn/" + $repoName + $branchPath);
Write-Host "to $to";
#debug
$user = [Environment]::UserName
Write-Host "as $user";
$exe = "C:\Program Files\TortoiseSVN\bin\svn.exe";
&$exe switch "$to" "$WorkingCopy" --username [redacted] --password [redacted] --no-auth-cache --non-interactive --trust-server-cert
if ($process.ExitCode -ne 0) {
#$wshell = New-Object -ComObject Wscript.Shell
#$wshell.Popup("Error switching " + $repoName,0,"Done",0x1)
Write-Host "Error detected!"
}
}
Точная ошибка:
SVN: E175013: Не удается подключиться к хранилищу в URL '[пропущено]' + CategoryInfo: NotSpecified: (SVN: E175013: U ... послабления/20150620' : String) [], RemoteException + FullyQualifiedErrorId: NativeCommandError СВН: E175013: Доступ к '[пропущено] запрещено
В зависимости от способа подключения. –
@ MathiasR.Jessen Что вам нужно знать? Я создаю удаленный сеанс и вызывая скрипт, используя сеанс. – Yamikuronue
Показать часть 'switchAllRepositories.ps1', где он принимает параметры (когда вы вызываете его с помощью 'Invoke-Command', вы отправляете имя ветки в качестве аргумента), это должен быть блок-параграф справа вверху ps1, я думаю. – briantist