gpt4 book ai didi

powershell - 如何使用 Powershell 远程截屏

转载 作者:行者123 更新时间:2023-12-04 15:29:29 29 4
gpt4 key购买 nike

我试图弄清楚如何通过 PowerShell 从 AD 服务器上的管理员帐户到网络上的任何计算机进行远程屏幕截图。

到目前为止,我有以下内容。

 $ComputerName = '<THECOMPUTER>'

copy-item "C:\Public\Software\Take-Screenshot.ps1" "\\$ComputerName\C$\"

Invoke-Command -ComputerName $ComputerName -ScriptBlock {
powershell -nop -c "C:\Take-Screenshot.ps1"
}
Take-Screenshot.ps1来自 here ,但我已将以下内容添加到脚本底部以实际运行该函数。
Take-ScreenShot -screen -file C:\s.png -imagetype png 

截屏后,我将其复制回主机,但问题是图片全黑。

我想这可能是因为 powershell 正在运行程序,但没有附加 session ,所以真的没有屏幕?

最佳答案

所以我让这个工作,但它有点参与。适用于多台显示器。

您将需要 Screenshot.ps1在远程 PC 上,本地 PC (Google) 上的触发器脚本和 PSExec。

# This is Screenshot.ps1
# Add types and variables
$File = "C:\Temp\Screenshot1.bmp"
Add-Type -AssemblyName System.Windows.Forms
Add-type -AssemblyName System.Drawing

# Gather Screen resolution information
$Screen = [System.Windows.Forms.SystemInformation]::VirtualScreen
$Width = $Screen.Width
$Height = $Screen.Height
$Left = $Screen.Left
$Top = $Screen.Top

# Set bounds
$bitmap = New-Object System.Drawing.Bitmap $Width, $Height

# Create Object
$graphic = [System.Drawing.Graphics]::FromImage($bitmap)

# Capture
$graphic.CopyFromScreen($Left, $Top, 0, 0, $bitmap.Size)

# Save
$bitmap.Save($File)

然后对于触发器脚本
#Setup Variables
$ComputerName = "ComputerName"
$PSExec = "C:\temp\tools\psexec.exe"

# Captures session details
$quser = (((query user /server:$ComputerName) -replace '^>', '') -replace '\s{2,}', ',' | ConvertFrom-Csv)

# Takes screenshot of remote PC
&$PSExec -s -i $quser.ID "\\$ComputerName\" PowerShell -WindowStyle Hidden -File "C:\Temp\screenshot.ps1"

关于powershell - 如何使用 Powershell 远程截屏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59996907/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com