
저는 Windows Server 2008(팀 시티)에서 빌드 서버를 실행하고 있습니다. 빌드는 LocalService 계정에서 Windows 서비스로 실행되는 Team city 에이전트에 의해 실행됩니다.
빌드 중 하나는 생성된 zip 파일을 원격 공유에 복사해야 합니다. 이를 위해 공유에 쓸 수 있는 적절한 권한이 있는 사용자의 자격 증명을 사용하여 새 프로세스를 쉘로 시도하는 powershell 스크립트가 있습니다. 문제는 스크립트가 프로세스를 생성하지 못한다는 것입니다. 내 관리자로부터 스크립트를 제대로 실행할 수 있으므로(그래서 스크립트 자체는 괜찮은 것 같습니다), 이로 인해 LocalSystem 계정에 다른 자격 증명 등을 사용하여 새 프로세스를 쉘링할 권한이 없다고 생각하게 됩니까?
이 오류가 실제로 무엇을 의미하는지 아시나요? 참고: 보안 이벤트 로그에서 이상한(?) 오류를 볼 수 없습니다.
$userName = "domain\user"
$password = "password"
$secstr = New-Object -TypeName System.Security.SecureString
$password.ToCharArray() | ForEach-Object {$secstr.AppendChar($_)}
$credentials = new-object -typename System.Management.Automation.PSCredential -argumentlist $userName, $secstr
$command = "Copy-Item d:\file.zip \\remote\share\file.zip"
$bytes = [System.Text.Encoding]::Unicode.GetBytes($command)
$encodedCommand = [Convert]::ToBase64String($bytes)
Start-Process powershell -NoNewWindow -ArgumentList "-encodedCommand", $encodedCommand -credential $credentials -wait
Start-Process 라인에서 오류가 발생했습니다.
System.InvalidOperationException: This command cannot be executed due to the error: Access is denied.
at System.Management.Automation.MshCommandRuntime.ThrowTerminatingError(ErrorRecord errorRecord)
답변1
보다내 대답에게로컬 시스템 계정을 통해 powershell로 크레딧 상승StackOverflow에서:
스크립트를 실행할 때 특정 명령에 제한이 있는 것 같습니다.로컬시스템. 이는 보안 측면에서 의미가 있습니다.로컬시스템:
로컬 리소스에 대한 완전한 무제한 액세스 권한이 있습니다. LocalSystem 서비스는 전체 시스템을 중단시키는 작업을 수행할 수 있기 때문에 이는 LocalSystem의 단점이기도 합니다.