如何使用Powershell Remote从PRTG运行脚本以扩展磁盘卷

时间:2019-03-28 03:37:17

标签: powershell-remoting

我已使用PRTG作为监视解决方案,需要注入PowerShell脚本来扩展远程计算机(具有从主机中预先分配的磁盘空间的关键Windows VM,在磁盘管理中未分配的磁盘)。如何在远程PowerShell会话中运行Get-PartitionSupportedSize?

我在PRTG服务器上的powershell脚本:

$s = New-PSSession -ComputerName xxx
Invoke-Command -Session $s $MaxSize = (Get-PartitionSupportedSize -DriveLetter D).SizeMax
Invoke-Command -Session $s Resize-Partition -DriveLetter D -Size $Maxsize

收到错误: Get-PartitionSupportedSize:未找到属性“ DriveLetter”等于“ D”的MSFT_Partition对象。验证poperty的值,然后重试。

1 个答案:

答案 0 :(得分:0)

可以从PRTG探针执行以下示例

Invoke-Command -ComputerName $hostName -ScriptBlock {
  param ([String]$someParameter)

   Some-Command -Parameter $someParameter

} -ArgumentList $someParameter

在您的情况下,它将如下所示:

$hostName="xxx"
$driveLetter="D"

Invoke-Command -ComputerName $hostName -ScriptBlock {
  param ([String]$driveLetter)

    $MaxSize = (Get-PartitionSupportedSize -DriveLetter $driveLetter).SizeMax
    Resize-Partition -DriveLetter $driveLetter -Size $Maxsize

} -ArgumentList $driveLetter

在无法调整大小的情况下在目标计算机上为此脚本添加一些日志记录是有意义的-为此,我将在参数部分之后的ScriptBlock中使用类似这样的内容:

$who = $(whoami)
Add-Content c:\temp\prtg-sensor-output.log "Starting script to resize $driveLetter as $who"

只是提醒-由于此部分是在目标计算机上执行的,因此您需要在该xxx主机上搜索该c:\ temp \ prtg-sensor-output.log