웹 서버 (Windows 2008R2, IIS)에서 직접 실행하면 Powershell 스크립트가 성공적으로 완료됩니다. PHP 페이지에서 스크립트를 시작하려고합니다. 스크립트가 시작되고 작업 관리자의 프로세스가 잘 보입니다. 나는 PHP 페이지에서 shell_exec를 사용하여 스크립트를 호출 할 때shell_exec를 사용하여 관리자 사용자 이름 및 암호를 전달하십시오.
는, 내가 스크립트가 사용자 IUSR로 실행되는 작업 관리자에서 볼 수있는 오류
"Exception calling "FindOne" with "0" argument(s): "An operations error occurred."
실패합니다. 나는 이것이 스크립트가 실패하고있는 이유라고 확신한다. 성공적으로 완료하려면 도메인 관리자로 실행해야한다.
나는 현재 페이지에 로그인 한 사용자 $ 사용자 이름 = (AD에 대해 인증)
다음 명령
$ newPword1 = 새 사용자 암호
$query = shell_exec("powershell -command $psScriptPath '$username' '$newPword1' < NUL");
파워 쉘 스크립트와 스크립트를 호출하고 :
#*=============================================================================
#* PARAMETER DECLARATION
#*=============================================================================
param([string]$username,[string]$pword)
#*=============================================================================
#* INITIALISE VARIABLES
#*=============================================================================
# Increase buffer width/height to avoid Powershell from wrapping the text before
# sending it back to PHP (this results in weird spaces).
$pshost = Get-Host
$pswindow = $pshost.ui.rawui
$newsize = $pswindow.buffersize
$newsize.height = 3000
$newsize.width = 400
$pswindow.buffersize = $newsize
#*=============================================================================
#* SCRIPT BODY
#*=============================================================================
$root = [ADSI]'LDAP://<server>/<DNtoOU>'
$searcher = new-object System.DirectoryServices.DirectorySearcher($root)
$searcher.filter = "(&(objectCategory=person)(sAMAccountName=$username))"
$user = $searcher.findone()
$userDN = $user.path
$user=[ADSI]$($userDN)
$user.SetPassword($pword)
$user.setinfo()
write-host "success"
도메인 관리자 사용자 이름/암호를 전달하여 powershell을 실행할 수 있습니까? bove 명령을 사용하여 스크립트를 성공적으로 실행할 수 있습니까?
내 웹 사이트 (theboywonder.co.uk)에서이 스 니펫을 얻었습니까? 왜 기본 인증을 사용하여 웹 사이트에 로그인하지 않습니까? IIS에 도메인 관리자 자격 증명으로 로그인하면 로그온 한 사용자로 PowerShell이 시작됩니다. 이 방법으로 도메인 관리자 자격 증명을 사용하는 데 사용 권한 문제가 없었습니다. 어쨌든 내 전체 (긴) 가이드를 따르고 싶다면, 어떻게 보여줄 것인가. – Robin