簡體   English   中英

如何從Windows命令提示符處將PowerShell腳本作為特定用戶調用?

[英]How can I call a PowerShell script as a particular user from the Windows command prompt?

當我作為名為'abc'的用戶登錄到機器時運行PowerShell腳本時,腳本以用戶'abc'運行。

我在cmd中運行的命令是:

powershell pshell.ps1

如何使用除當前登錄用戶之外的特定域用戶運行PowerShell腳本?

我的目的是通過Windows命令行運行PowerShell腳本。

有幾種方法可以在腳本中以另一個用戶身份運行程序或腳本:

內置命令行應用程序RUNAS

如果您能夠指定憑據,Windows命令行RUNAS命令看起來是一個很好的解決方案。

RUNAS  /user:user@domain.microsoft.com "powershell pshell.ps1"

但是,正如您所說,您需要從CONTROL-M運行此任務,因此這是不可能的。 然后也不可能像我在評論中建議的那樣從任務計划程序運行任務,而另一個答案已經建議。

因此,我的下一個建議是使用PowerShell腳本執行此操作:

PowerShell scriptlet Invoke-Command

首先,您需要啟用Win-RM才能使其正常工作。 為此,請在提升(即以管理員身份運行)命令提示符下鍵入以下內容:

winrm /quickconfig

接下來,使用所需的存儲憑據編寫腳本。 請注意,這將以純文本形式存儲,因此如果您不願意這樣做,則需要查看使用安全憑據文件。

$username = "DOMAIN\User"
$password = "Password"
$secstr = New-Object -TypeName System.Security.SecureString
$password.ToCharArray() | ForEach-Object {$secstr.AppendChar($_)}
$cred = new-object -typename System.Management.Automation.PSCredential -argumentlist $username, $secstr
Invoke-Command -FilePath "C:\Script\To\Execute.ps1" -Credential $cred -Computer localhost

當然,您需要將C:\\Script\\To\\Execute.ps1替換為要運行的PowerShell腳本的文件路徑,並將DOMAIN\\UserPassword替換為您要運行的用戶及其密碼。

此腳本現在將以上面指定的用戶身份運行。

但是,您可能不願意或無法使用PowerShell腳本,因此您的上一個解決方案位於第三方應用程序中,例如:

SysInternals PsExec

PsExec是一個完全免費的工具,可以在TechNet上下載,專門用於在遠程計算機上運行命令,應用程序等。 它在本地計算機上運行良好 ,不管您信不信,它允許您指定您希望應用程序運行的特定用戶(和密碼!)。

  1. 下載並解壓縮應用程序
  2. 將應用程序放在PATH屬性中的某個位置( SET PATH=C:\\PsExec;%PATH% ,如果將其安裝到C:\\ PsExec)
  3. 使用適當的更改運行命令psexec -u DOMAIN\\user -p password script.ps1

如果計划運行在計划任務中調用PowerShell腳本的批處理文件,則可以使用任務計划程序的安全選項。 這就是我作為不同用戶運行的方式。 計划任務安全選項

至於從批處理文件中調用PowerShell腳本,我通常會這樣做:

@ECHO OFF
powershell.exe -executionpolicy unrestricted -File "C:\Scripts\Do-Something.ps1"

您可以從powershell /?獲取所有命令行參數powershell /?

您可以將其放在.bat文件中並將其作為計划任務的操作運行; 或者您可以將powershell.exe作為操作,並在計划任務中-executionpolicy unrestricted -File "C:\\Scripts\\Do-Something.ps1"的參數。 我更喜歡后者,因為我有一個較少的腳本文件可供使用。

你問你是否可以繞過UAC提示?

如果啟用了UAC,並且您啟動了一個需要從未升級的進程(例如,您以標准用戶身份登錄)進行提升的進程,則無法繞過UAC提示。 這是設計的。

暫無
暫無

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

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