我將在遠程服務器上執行一些工作的用戶框上運行腳本。但是,用戶將無法訪問服務器,因此我將以具有權限的其他用戶身份運行該腳本。如何使用'查詢用戶'獲取活動用戶用戶名
我遇到困難的一點是,我需要獲取登錄用戶(用戶名)的用戶名和域名以傳遞給服務器。有各種命令可以獲取我需要的數據,但是當以不同的用戶身份運行PowerShell ISE時,它們都會返回該用戶的數據而不是登錄的用戶數據。
某些命令我所說的:
[System.Security.Principal.WindowsIdentity]::GetCurrent().Name
$env:USERNAME
$env:USERDOMAIN
$(whoami)
,似乎工作就是我想要的唯一一個它是:
query user
這將返回格式爲:
USERNAME SESSIONNAME ID STATE IDLE TIME LOGON TIME >user1 sessionName 4 Active . 6/22/2017 2:56 PM個
我的兩個問題是:
- 有沒有辦法讓也以此方式域?我運行此命令時看不到它。
- 有沒有辦法只是從查詢用戶中獲取用戶名?那麼「活躍」用戶名的特異性呢?
使用'$ env:USERNAME'和'$ env:USERDOMAIN'有什麼問題? – gms0ulman
我的猜測是他試圖在另一個會話中確定用戶的用戶/域。 – thepip3r
@ thepip3r嗯......從這個問題我明白,有2個用戶。但對我來說,讓遠程(服務器)會話查詢本地(盒子)用戶的信息似乎有點後退;使用內置的環境變量並將它們傳遞給遠程執行的代碼會更有意義 - 作爲腳本或函數參數......(免責聲明:我沒有對遠程進行太多的調整,所以可能會丟失一些東西) – gms0ulman