Як підказати користувачеві для запуску облікових даних, коли двічі клацніть піктограму?


6

Я запускаю систему типу кіоску, де користувач має майже нульові дозволи.

Я хочу розмістити піктограму на робочому столі, яка б запускала конкретну програму як їхні дані Active Directory. Я знайомий з SysInternals ShellRunAs, але для цього знадобиться клацання правою кнопкою миші, що означає перекваліфікацію користувачів.

Чи можу я досягти цього, натиснувши на них двічі клавішу по значку, який вони зазвичай мають, і вони отримають запит на ім’я користувача / пароль, а потім виконають програму так?

Відповіді:


7

Якщо PowerShell - це варіант для вас, сценарій PowerShell може запропонувати ввести облікові дані, а потім використовувати ці облікові дані для запуску процесу.

Start-Process -FilePath "C:\Windows\notepad.exe" -Credential (Get-Credential)

Користувач бачить це запит, і тоді процес запускається.

введіть тут опис зображення


Ідеально! Думаю, я дам цьому постріл.
— Реймонд

Мені довелося використовувати повні шляхи: Start-Process -FilePath "C: \ Windows \ System32 \ WindowsPowerShell \ v1.0 \ powershell_ISE.exe" -Credential (Get-Credential) -WorkingDirectory "C: \ Windows \ System32 \ WindowsPowerShell \ v1 .0 ", і він також відкрив його в новому вікні, що трохи додатково.
— Мішель

Ви починаєте новий екземпляр ISE. Звичайно, це відкриє нове вікно.
— Патрік Сеймур

5

Ви можете змінити ярлик для використання RunAsутиліти командного рядка . Наприклад, ось ціль ярлика, який спробує відкрити конкретну папку в Explorer, як користувач BillyBob :

C:\Windows\System32\runas.exe /user:BillyBob "Explorer.exe F:\Projects"

Аргумент / користувач також може приймати облікові дані домену (або жорстко закодовані, або використовуючи змінну середовища% USERDOMAIN%:

C:\Windows\System32\runas.exe /user:%USERDOMAIN%\BillyBob "Explorer.exe F:\Projects"\BillyBob "Explorer.exe F:\Projects"

Ім'я користувача може бути призначено %username%змінної середовища:

C:\Windows\System32\runas.exe /user:%username% "Explorer.exe F:\Projects"

Або з доменом та іменем користувача, що надходять із середовища:

C:\Windows\System32\runas.exe /user:%USERDOMAIN%\%username% "Explorer.exe F:\Projects"

Після відкриття ярлика з'явиться cmd.exeвікно із запитом пароля вказаного облікового запису:Підказка пароля

Якщо вам потрібен користувач, щоб ввести ім'я користувача, то все вийде трохи хакітним, і вам доведеться помістити це у .bat файл:

@Echo Off

set INPUT=
set /P INPUT=Username: %=%
C:\Windows\System32\runas.exe /user:%INPUT% "Explorer.exe F:\Projects"

Проблема полягає в тому, що багатьом різним користувачам потрібно запустити іконку, тому я не можу жорстко кодувати "/ user: BillyBob"
— Raymond

Ви також можете використовувати %username%змінну середовища в цілі. тобто/user:%username%
— Ендрю Ламберт

@Ray B Я відредагував свою відповідь, щоб продемонструвати вхід домену та змінні імена користувачів.
— Ендрю Ламберт

Все одно не буде працювати, він також повинен запросити ім'я користувача. Користувач, який увійшов до системи, завжди буде користувачем кіоску, а не оператором.
— Реймонд

@Ray BI додано, отримуючи дані користувача внизу. На сьогоднішній день використовувати PowerShell так чистіше, як запропонував Патрік С. Я пропоную це на випадок, якщо хтось захоче мати таку річ, не встановлюючи PowerShell.
— Ендрю Ламберт

4

ShellRunAs не вимагає строго клацання правою кнопкою миші; це може бути (і насправді це ) називається як звичайний інструмент з оригінальною програмою , наведеною в командному рядку - так само , як вбудовані , runasале графічного.

shellrunas notepad foo.txt

Це може бути використано в ярлику.


-1

Це мій спосіб зробити це:

@echo off
rem @--------Window config
COLOR F3
mode con cols=60 lines=10
echo.%date%
rem @--------Authentication
@echo.
@set /p user=Username:
@echo.
@runas /user:%user% "C:\Programas\Internet Explorer\IEXPLORE.EXE http://www.google.com"

rem @ if you are in a domain use:
rem @runas /user:DOMAIN\%user% "C:\Programas\Internet Explorer\IEXPLORE.EXE http://www.google.com"

rem @---------Window close time (after "-n" put window close time in seconds)
ping -n 3 127.0.0.1>NUL

@cls
@exit

Ви можете протестувати, і він буде добре працювати.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.