【问题标题】:Suppress command line but show credentials禁止命令行但显示凭据
【发布时间】:2017-05-26 07:58:31
【问题描述】:

我想禁止登录命令行。并且只想查看凭证窗口。 到目前为止,脚本正在使用此命令

   Add-Type -Name win -MemberDefinition '[DllImport("user32.dll")] public 
   static extern bool ShowWindow(int handle, int state);' -Namespace native
   [native.win]::ShowWindow(([System.Diagnostics.Process]:: 
   GetCurrentProcess() | Get-Process).MainWindowHandle,0)

我已将脚本编译为 exe,到目前为止它可以工作,除了凭据窗口被抑制而不是命令行登录。

我尝试了各种解决方案来解决这个问题,但都没有奏效。

【问题讨论】:

  • 代码示例对这个问题没有任何意义。它应该做什么以及它应该如何与密码提示相关?
  • 代码的作用与-Windowstyle hidden 相同。我的脚本是 Get-MessageTrackingLog 的 gui,当您启动脚本时,您必须以管理员身份进行身份验证,因为我连接到交换服务器。
  • 你想隐藏一些窗口吗?那会是什么?为什么不使用提供密码屏蔽作为内置功能的现有凭据提示?
  • 我会尽量隐藏命令行窗口。

标签: powershell command-line exe credentials


【解决方案1】:
Start-Process "powershell.exe" -ArgumentList '-Command "
$Cred = Get-Credential
Add-Type -AssemblyName "System.Windows.Forms"
[System.Windows.Forms.MessageBox]::Show($Cred.Username)
"' -WindowStyle Hidden

您将进程窗口句柄隐藏在低级别 - 因为凭据窗口是它的子窗口,也会导致它消失,但是启动带有隐藏窗口的 powershell 不会抑制其他/子窗口。

以上代码将在消息框弹出窗口中输出用户名,而不显示 PS 窗口。

【讨论】:

    【解决方案2】:

    没关系,谢谢你的帮助!我找到了解决问题的另一种方法。当我将 .ps1 编译为 .exe 时,我可以设置参数 -console 并且这是有效的。

    【讨论】:

      猜你喜欢
      • 2022-08-03
      • 1970-01-01
      • 1970-01-01
      • 2010-11-18
      • 2015-03-26
      • 2021-06-01
      • 1970-01-01
      • 2018-11-07
      • 2021-07-27
      相关资源
      最近更新 更多