PsExec Access ถูกปฏิเสธ


11

ฉันใช้psexec.exeเพื่อเรียกใช้โปรแกรมในบริบทความปลอดภัยที่แตกต่างกัน อย่างไรก็ตามโปรแกรมเริ่มทำงาน แต่ดูเหมือนว่าจะไม่ทำงานในบริบทความปลอดภัยที่ระบุ

ในรูปแบบที่น้อยที่สุด:

psexec -u wsadmin -p password cmd

เริ่มหน้าต่าง cmd ใหม่หากฉันพิมพ์ในหน้าต่างนั้น whoami

C:\Windows\system32>whoami
win-k1r7g38nlkt\wsadmin

C:\Windows\system32>net localgroup administrators
Alias name     administrators
Comment        Administrators have complete and unrestricted access to the computer/domain

Members

-------------------------------------------------------------------------------
Administrator
wsadmin
The command completed successfully.

อย่างที่คุณเห็นฉันเป็นผู้ใช้อื่นอย่างแน่นอน และฉันสามารถยืนยันได้ว่าผู้ใช้รายนี้เป็นสมาชิกของ "กลุ่มผู้ดูแลระบบ"

C:\Windows\system32>mkdir test
Access is denied.

ถ้าฉันใช้ runas กับผู้ใช้ที่ระบุมันทำงานได้ตามที่ควร แต่ฉันต้องระบุรหัสผ่านใน commandline

คำตอบ:


10

ใน Windows Vista และใหม่กว่าหากเปิดใช้งาน UAC กระบวนการที่เปิดใช้โดยpsexec- แม้เมื่อเรียกใช้จากบัญชีผู้ดูแลระบบ - ต้องมีโทเค็นการยกระดับเพื่อให้ได้รับสิทธิ์อย่างเต็มที่ สิ่งนี้สามารถทำได้โดยการส่ง-hแอตทริบิวต์ในpsexecบรรทัดคำสั่ง ดังนั้นคุณจะเปลี่ยนคำสั่งของคุณเป็น:

psexec -h -u wsadmin -p password cmd

สำหรับข้อมูลเพิ่มเติมเรียกใช้psexec /?:

    -h    If the target system is Vista or higher, has the process
          run with the account's elevated token, if available.

9
น่าเสียดายสิ่งนี้ทำให้ฉัน "ไม่สามารถติดตั้งการเข้าถึงบริการ PSExec ถูกปฏิเสธ"
Tuim

คุณกำลังเรียกใช้คำสั่งเริ่มต้นจากพรอมต์คำสั่งที่ยกระดับหรือคุณใช้มันเป็นแบบโลคอลรันหรือไม่?
nhinkle

คำสั่งเดิมรันบริบทความปลอดภัย 'ผู้ใช้' ฉันไม่สามารถใช้การรันด้วยเหตุผลเฉพาะได้
Tuim

1
ใช้ "พรอมต์คำสั่งยกระดับ" หรือ "ยกระดับ PowerShell พรอมต์" ผ่าน "เริ่ม> พิมพ์" PowerShell "> คลิกขวาที่" Windows PowerShell "> เลือก" Run as Administrator "จากนั้นเรียกใช้คำสั่ง psexec รวมถึง-hตัวเลือก
Underverse

@Underverse เป็นไปได้ไหมที่จะใช้ psexec จากผู้ใช้ CMD ไม่ใช่จาก admin PS? ผมอยากจะใช้ psexec ว่าสำหรับการเปลี่ยนแปลงในบริบท CMD ผู้ดูแลระบบ :)
Suncatcher

5

มันเอาฉันชั่วโมงเพื่อหาวิธีการทำงานเพื่อให้PsExecระหว่างสอง Windows 7 คอมพิวเตอร์กับผู้ใช้ที่ไม่ใช่ผู้ดูแลระบบเริ่มต้นPsExec... ปิดการใช้งาน UAC ( EnableLUA=0, ConsentPromptBehaviorAdmin=0, LocalAccountTokenFilterPolicy=1) ไม่ได้ทำงานปิดไฟร์วอลล์ไม่ได้ทำงาน ...

ที่นี่ฉันพบวิธีการทำงาน - ขอบคุณ JelmerS: (ข้อมูลจากPSexec ไม่ได้เชื่อมต่อกับเครื่องโดยใช้ชื่อผู้ใช้และรหัสผ่านที่ให้มา )

ทั้งนี้เป็นเพราะpsexecยังคงพยายามเข้าถึงการใช้ADMIN$ร่วมกับข้อมูลประจำตัวท้องถิ่นของคุณก่อนที่จะดำเนินการคำสั่งของคุณในฐานะผู้ใช้รายอื่น ตามหัวข้อนี้คุณสามารถแคชข้อมูลประจำตัวก่อนดำเนินการ psexec:

cmdkey.exe /add:MACHINE_NAME_HERE /user:MACHINE_NAME_HERE\Administrator /pass:PASSWORD_HERE 
psexec.exe \\MACHINE_NAME_HERE -i notepad
cmdkey.exe /delete:MACHINE_NAME_HERE

หมายเหตุ - หากคุณไม่ต้องการรหัสผ่านในประวัติบรรทัดคำสั่งคุณสามารถใช้ / ส่งโดยไม่มีรหัสผ่านและคุณจะได้รับพรอมต์ให้ป้อนรหัสผ่าน
Joe the Coder

1

ฉันได้พบวิธีแก้ไข:

ปรากฎว่าเมื่อคุณมีการเปิดใช้งาน psexec UAC ไม่ทำงานตามที่ควร
เมื่อใดก็ตามที่HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\EnableLUAตั้งค่าเป็น0psexec ทำงานตามที่คาดไว้


4
วิธีอื่นที่ไม่จำเป็นต้องเปลี่ยนรีจีสทรีคือการเพิ่มการ-hตั้งค่าสถานะให้กับpsexecคำสั่ง สิ่งนี้บอกให้รันคำสั่งด้วยโทเค็นที่ยกระดับซึ่งเทียบเท่ากับการเรียกใช้กระบวนการ "ในฐานะผู้ดูแลระบบ" จากเมนูบริบท
nhinkle

5
การตั้งค่าEnableLUAเป็น0ปิดใช้งานAdmin Approval Modeซึ่งเป็นพื้นฐานของ UAC ดังนั้น UAC จะถูกปิดการใช้งาน แหล่ง
Vlastimil Ovčáčík

สำหรับฉันธง -h ไม่ทำงานและปิดการใช้งาน UAC เป็นปัญหา แต่ฉันพบทางเลือกที่ดีกว่า
mTorres

0

นี่คือสิ่งที่ใช้ได้ผลสำหรับฉันมันไม่ได้กำจัด UAC อย่างสมบูรณ์ แต่ปิดใช้งานสำหรับผู้ดูแลระบบ

การตั้งค่าคอมพิวเตอร์ \ Settings \ Security Settings \ Local นโยบาย \ Security Settings \ Local การควบคุมบัญชีผู้ใช้: เรียกใช้ผู้ดูแลระบบทั้งหมดในโหมดอนุมัติผู้ดูแลระบบ - ปิดการใช้งาน


ซึ่งไม่ใช่ความคิดที่ดีจริงๆ นอกจากนี้วิธีนี้เป็นการปรับปรุงเมื่อเปรียบเทียบกับโซลูชันอื่น ๆ ที่มีอยู่
เซท
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.