簡體   English   中英

從 Windows 托盤生成 PowerShell 管理控制台

[英]Spawn PowerShell Admin consoles from Windows tray

我需要每天多次打開各種本地管理員 PowerShell 控制台。 如果我讓一個控制台整天打開,那很好,但如果關閉,我的策略控制的管理員密碼通常已經過期,所以如果我以后必須打開另一個控制台,我必須 go 進入請求過程以獲取管理員密碼,並為我的工作環境每隔一小時重新請求一次,這會浪費很多時間。

我真的很喜歡放在托盤中並且永遠不會關閉的東西,但它可以產生多個進程,所有這些都具有我啟動它的本地管理員權限。 這樣,我可以在早上請求本地管理員密碼,然后使用該密碼打開此系統托盤進程或工具,然后我可以從無需每小時重新請求管理員密碼,從而浪費大量時間和生產力。

也許這可能是 PowerShell 腳本,或者有人知道可以從系統托盤/通知區域充當應用程序啟動器的一些工具,我可以將其用於 PowerShell 控制台或其他應用程序等。甚至可以通過創建 Z3D265B4E003EEEF0DCCZ8B1818 來完成永遠不會關閉的控制台(不知何故(,)雖然我不知道該怎么做。也許右上角的“x”或在控制台中鍵入“退出”不會關閉它,而是只會將該控制台最小化回系統托盤准備好在我需要時彈出管理員權限)。

我還沒有發現任何東西可以實現這一點,但它在我的工作環境中將非常有用(可能對於其他需要浪費時間在他們讓我們跳過的官僚障礙上的 DevOps / Sys Admin 類型)和在這方面將不勝感激。

您可以使用 Forms 相當輕松地創建系統托盤圖標,您可以以管理員身份運行它以獲得正確的權限:

# Load Assemblies
Add-Type -AssemblyName System.Windows.Forms
Add-Type -AssemblyName System.Drawing

$MyIcon = [Drawing.Icon]::ExtractAssociatedIcon((Get-Command powershell).Path)

# Create Primary form
$objForm = New-Object System.Windows.Forms.Form
$objForm.Visible = $false
$objForm.WindowState = "minimized"
$objForm.ShowInTaskbar = $false
$objForm.add_Closing({ $objForm.ShowInTaskBar = $False })
#
$objNotifyIcon = New-Object System.Windows.Forms.NotifyIcon
$objNotifyIcon.Icon = $MyIcon
$objNotifyIcon.Text = "TrayUtility"
$objNotifyIcon.Visible = $true
#
$objContextMenu = New-Object System.Windows.Forms.ContextMenu
#
# Build the context menu
# Create Menu Item
$ToggleMenuItem1 = New-Object System.Windows.Forms.MenuItem
$ToggleMenuItem1.Index = 1
$ToggleMenuItem1.Text = "Menu Item 1"
$ToggleMenuItem1.add_Click({
    # Action when selected
})

# Create an Exit Menu Item
$ExitMenuItem = New-Object System.Windows.Forms.MenuItem
$ExitMenuItem.Index = 5
$ExitMenuItem.Text = "E&xit"
$ExitMenuItem.add_Click({
    $objForm.Close()
    $objNotifyIcon.visible = $false
})
# Add the Menu Items to the Context Menu
$objContextMenu.MenuItems.Add($ToggleMenuItem1) | Out-Null
$objContextMenu.MenuItems.Add($ExitMenuItem) | Out-Null
#
# Assign the Context Menu
$objNotifyIcon.ContextMenu = $objContextMenu
$objForm.ContextMenu = $objContextMenu

# Show the Form - Keep it open
$objForm.ShowDialog() | Out-Null
$objForm.Dispose()

很確定我在某處看到過啟動 PS 管理員 window 的代碼,然后使用顯示/隱藏而不是每次都嘗試啟動一個新的 - 您可以將控制合並到圖標右鍵菜單中試一試並在此處發布代碼所以,如果你被卡住了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM