我试图编写一个Powershell脚本来远程扩展虚拟机的分区。我已将1gb添加到现有的C驱动器上,这将使其在VDI上达到81GB但我故意没有扩展它,因为我想通过这个脚本来实现它。
我想做错的任何想法,因为我想在列表位于文本文件中的组计算机上运行它:
$servers = Get-Content 'C:\MININT\Computers.txt'
$GlobalResults = @()
$ConvertToGB = ( 1024 * 1024 * 1024 )
ForEach ($server in $servers)
{
$disk = get-wmiobject win32_LogicalDisk -ComputerName $server -Filter "DeviceID='C:'" | Select-object size,Freespace
$server + "," + ($disk.size / $ConvertToGB) + "," + ($disk.Freespace / $ConvertToGB)
$MaxSize = (Get-PartitionSupportedSize -DriveLetter c).sizeMax
Resize-Partition -DriveLetter c -Size $MaxSize
}
任何协助都会非常感激,因为我是初学者。
亲切的问候
答案 0 :(得分:0)
您可以使用invoke-command
(http://www.computerperformance.co.uk/powershell/powershell_invoke.htm)执行远程操作,当您要在该远程计算机上使用本地变量时,必须在其中添加“using:”(并通过简单地“分割”来计算GB到GB“)
因为我现在无法测试 - 以下是“它应该如何工作”(如:未经测试但我希望你能得到这个想法)
$servers = Get-Content 'C:\MININT\Computers.txt'
ForEach ($server in $servers)
{
$MaxSize = (invoke-command -ComputerName $server -ScriptBlock { Get-PartitionSupportedSize -DriveLetter c }).sizeMax
invoke-command -ComputerName $server -ScriptBlock {Resize-Partition -DriveLetter c -Size $using:MaxSize}
}
答案 1 :(得分:0)
一切都可以在远程机器上完成:
$Svr = Get-Content 'C:\MININT\Computers.txt'
$ScriptBlock = {
$MaxSize = (Get-PartitionSupportedSize -DriveLetter C).Sizemax
Resize-Partition -DriveLetter C -Size $MaxSize
}
Invoke-Command -ComputerName $Svr -ScriptBlock $ScriptBlock