如何使Windows的runas.exe在没有提示的情况下从凭据管理器获取密码?

时间:2019-05-13 09:25:56

标签: windows powershell passwords admin runas

我正在尝试创建一种快捷方式,该方式将从凭据管理器获取凭据,就像这样

cd C:\code\Kodex-1.4.3\EPD_Prerequisite\Anaconda2\
$line1 = "cd C:\Code\EPMD\Kodex-1.4.4\Applications\Bin\EpmdTaskManager"
$line2 = "start EpmdTaskManagerGui.exe hide"
$line1 | out-file auto1.bat -Encoding Ascii
$line2 | Out-File -append auto1.bat -Encoding Ascii
$WshShell = New-Object -comObject WScript.Shell
$Shortcut = $WshShell.CreateShortcut("C:\Users\matanv.HOBART\Desktop\Kodex 1.4.4.lnk")

$Shortcut.TargetPath = """C:\WINDOWS\system32\runas.exe"""
$argA = "/user:%computername%\Admin /savecred"

$argB = """C:\code\Kodex-1.4.3\EPD_Prerequisite\Anaconda2\auto.bat"""
$Shortcut.Arguments = $argA + " " + $argB
$Shortcut.Save() 

这很好用,但有一个问题:第一次运行脚本时,系统提示输入密码。

我希望永远不会提示输入密码,并使用某些(也许其他)脚本将其存储在凭证管理器中。

怎么办?

谢谢

1 个答案:

答案 0 :(得分:0)

将评论从此处移至OP

这是这个savecred事情要记住的事情。这真的很危险,具体取决于您在哪里使用它。如您所述,一旦完成操作,您必须做的就是传递帐户名并且永远不会提示您,这意味着,即使是最简单的技能,任何人都可以上手并接管这台机器,即使您删除启动它的快捷方式,这些信誉始终存在,并且一旦可以创建任何快捷方式,设置属性,便可以开始比赛了。

因此,尽管savecred确实很方便,但应仅限于绝对控制使用它的人的机器。 For Example.

无论如何,您无需使用RunAs / SaveCred就可以使用CredMan,是的,即使使用PowerShell也可以。在线上有很多脚本向您展示如何运行,甚至直接来自TechNet Powershell画廊和MS powershellgallery.com。

How to add credentials to the Windows Vault (PowerShell)

  

此PowerShell脚本显示了如何为特定用户添加凭据。

下载:addwindowsCredential.zip

CredentialManager 2.0

从powershellgallery.com,通过PowerShell会话。

Find-Module -Name '*credentialmanager*' | Format-Table -AutoSize

Version Name                          Repository Description                                                                        
------- ----                          ---------- -----------                                                                        
2.0     CredentialManager             PSGallery  Provides access to credentials in the Windows Credential Manager                   
1.1.1.0 IntelliTect.CredentialManager PSGallery  Provides an easy-to-use interface to the Windows Credential Manager via PowerShell.
1.0.9   pscredentialmanager           PSGallery  This module allows management and automation of Windows cached credentials.        
1.0.0.0 BAMCIS.CredentialManager      PSGallery  Provides a PowerShell wrapper around the Windows Credential Manager Win32 APIs. 

另请参阅:

Manipulate credentials in the Windows 8/2012 PasswordVault using Powershell

  

此模块演示如何使用新的Windows 8/2012   Powershell提供的PasswordVault API。

下载:PasswordVault.psm1

您也可以使用内置的cmdkey.exe

  

创建,列出和删除存储的用户名和密码,或   凭据。

但是您需要在用户上下文中运行才能做到这一点,而这正是MS SysInternals PSExec可以提供的。只需在启动时为RunOnce /创建一个ScheduledTask即可触发执行此操作的命令。

好的,我离题了。因此,总的来说,有几种方法可以在Windows上设置Kiosk模式,而MS已经记录了Kiosk模式一段时间了

(您不会说出您所针对的操作系统-因为类似的文章已经针对他们而存在)。

对于Win 10,位于此处:

Set up a single-app kiosk

上面提供了直接说明如何在PowerShell中设置此模式,下面是这些步骤的摘要,但是请务必阅读整个文档。

  

使用Windows PowerShell设置信息亭

     

应用类型:UWP操作系统版本:Windows 10 Pro,Ent,Edu帐户类型:本地   标准用户

     

您可以使用以下任何PowerShell cmdlet来设置已分配   在多个设备上访问。在运行cmdlet之前:

     
      
  1. 以管理员身份登录。
  2.   
  3. 创建分配访问权限的用户帐户。
  4.   
  5. 以“分配的访问”用户帐户登录。
  6.   
  7. 安装分配的通用Windows应用程序   访问/高于锁定准则。
  8.   
  9. 以“分配的访问”用户帐户注销。
  10.   
  11. 以管理员身份登录。
  12.   
     

要在Windows 10上打开PowerShell,请搜索PowerShell并找到   结果中的Windows PowerShell桌面应用程序。以以下身份运行PowerShell   管理员。

# Configure assigned access by AppUserModelID and user name
Set-AssignedAccess -AppUserModelId <AUMID> -UserName <username>

# Configure assigned access by AppUserModelID and user SID
Set-AssignedAccess -AppUserModelId <AUMID> -UserSID <usersid>

# Configure assigned access by app name and user name
Set-AssignedAccess -AppName <CustomApp> -UserName <username>

# Configure assigned access by app name and user SID
Set-AssignedAccess -AppName <CustomApp> -UserSID <usersid>
  

注意要使用-AppName(该用户帐户   您指定的分配访问权限必须至少登录一次。   了解如何获取AUMID。了解如何获取AppName(请参阅   参数)。