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


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.