Powershell Skript Resize Disk
Ich habe folgenden Zweizeiler und versuche über einen Task Scheduler meine Disk nach dem ersten Neustart zu "resizen". Leider klappt das nicht da bei mir die Set Execution Policy auf restricted gesetzt ist.
Im Task Scheduler lasse iich das u.g. Skript mit höchsten Provilegien ausführen nur leider klappt das nicht. Wenn ich aber die powershell explizit mit runas Administrator öffne klappt es.
Nun wollte ich im Task Scheduler anstatt eines Skripts einen "Einzeiler" ausfüühren - sprich im Punkt "Add Arguments" kein Skript sondern das Skript als einzeiler.
Ich habe die zwei Zeilen versucht mit einem Semikolon zu trennen, aber das geht nicht?
Im Task Scheduler lasse iich das u.g. Skript mit höchsten Provilegien ausführen nur leider klappt das nicht. Wenn ich aber die powershell explizit mit runas Administrator öffne klappt es.
Nun wollte ich im Task Scheduler anstatt eines Skripts einen "Einzeiler" ausfüühren - sprich im Punkt "Add Arguments" kein Skript sondern das Skript als einzeiler.
$size = Get-PartitionSupportedSize -DriveLetter C
Resize-Partition -DriveLetter C -Size $size.SizeMax
Ich habe die zwei Zeilen versucht mit einem Semikolon zu trennen, aber das geht nicht?
$size = Get-PartitionSupportedSize -DriveLetter C; Resize-Partition -DriveLetter C -Size $size.SizeMax
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 353922
Url: https://administrator.de/forum/powershell-skript-resize-disk-353922.html
Ausgedruckt am: 09.04.2025 um 02:04 Uhr
20 Kommentare
Neuester Kommentar

Powershell -ExecutionPolicy ByPass -NoProfile -NonInteractive -Command "Resize-Partition -DriveLetter C -Size (Get-PartitionSupportedSize -DriveLetter C).MaxSize

Nichts Neues, seeeeeehr alter Kaffee ...
Also Program/script:
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
Richtig. Powershell.exe reicht aber auch.C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
Add Arguments (optional):
Powershell -ExecutionPolicy ByPass -NoProfile -NonInteractive -Command "Resize-Partition -DriveLetter C -Size (Get-PartitionSupportedSize -DriveLetter C).MaxSize
Falsch, hier kommen nur die Argumente rein also nurPowershell -ExecutionPolicy ByPass -NoProfile -NonInteractive -Command "Resize-Partition -DriveLetter C -Size (Get-PartitionSupportedSize -DriveLetter C).MaxSize
-ExecutionPolicy ByPass -NoProfile -NonInteractive -Command "Resize-Partition -DriveLetter C -Size (Get-PartitionSupportedSize -DriveLetter C).MaxSize

Beschäftigte dich doch einfach mit den storage cmdlets dafür
https://technet.microsoft.com/de-de/library/hh848705(v=wps.630).aspx
So lernst du nichts wenn wir das die hier vorkauen.
https://technet.microsoft.com/de-de/library/hh848705(v=wps.630).aspx
So lernst du nichts wenn wir das die hier vorkauen.

Tipp initialize-disk ...Parameter findest du dort alle. So schwer ist das nicht
das schaffst du.

Nur würde ich das formatieren der Disk forcen und ohne abfrage durchführen lassen... Einfach mit -force????
https://technet.microsoft.com/de-de/library/hh848665(v=wps.630).aspx-Force -Confirm:$false
Zudem habe ich folgendes Problem. Habe eine Disk2 die ich aber über Get-Disk nicht angezeigt bekomme weil da steht (disk is offline because of policy....) wo deaktiviere ich diese policy damit ich diese zweite disk auch online nehmen kann?
http://www.happysysadm.com/2010/11/disk-is-offline-because-of-policy-se ...
Servus winlin,
Grüße Uwe
Get-Disk 1 | %{
Set-Disk -Number $_.Number -IsOffline $false
Clear-Disk -Number $_.Number -Confirm:$false -RemoveData -EA 0
Initialize-Disk -Number $_.Number -PartitionStyle MBR
New-Partition -DiskNumber $_.Number -UseMaximumSize -IsActive -DriveLetter D | Format-Volume -FileSystem NTFS -NewFileSystemLabel DATA -Force -Confirm:$false
}

Möchte also die Disk1 und die Disk2 welche beide als offline stehen am Ende als Festplatte D haben.
Zwei Disks zu einer machen???????? Jeht ned, außer du machst ein Array (0/1) draus.
Du meinst also nicht zwei physical Disks?
Bitte unterscheide hier richtig zwischen PhysicalDisk /Volume / Partition, denn das ist alles was ganz anderes!!
Umm das zu machen was du machen willst musst du die Disk zu einem dynamischen Datenträger konvertieren. Ich würde dir aber empfehlen das mit StorageSpaces zu machen. Dynamische Datenträger sind veraltet
Bitte unterscheide hier richtig zwischen PhysicalDisk /Volume / Partition, denn das ist alles was ganz anderes!!
Umm das zu machen was du machen willst musst du die Disk zu einem dynamischen Datenträger konvertieren. Ich würde dir aber empfehlen das mit StorageSpaces zu machen. Dynamische Datenträger sind veraltet

Siehe link oben.
(mit extend volume geht das ja im DiskManagement GUI)
Um das zu machen was du machen willst musst du die Disk zu einem dynamischen Datenträger konvertieren. Ich würde dir aber empfehlen das mit StorageSpaces und VirtualDisks zu machen. Dynamische Datenträger sind veraltet und sollte man eigentlich nicht mehr nutzen!Ziel ist es einfach über einen "EinZeiler" Kein ps1 Skript mit Umbrüchen
Kannst du dir doch umschreiben, einfach Semikolons anstatt Zeilenumbrüchen setzen.
Dynamische Datenträger die du meinst sind out of date und nicht in Powershell managebar.
https://blogs.technet.microsoft.com/tip_of_the_day/2014/04/25/tip-of-the ...
Mach es mit StorageSpaces Pools und Virtual Disks! Alles andere ist heutzutage Bullshit. Dynamische Datenträger sind prädestiniert für Datenverlust.
https://blogs.technet.microsoft.com/tip_of_the_day/2014/04/25/tip-of-the ...
Mach es mit StorageSpaces Pools und Virtual Disks! Alles andere ist heutzutage Bullshit. Dynamische Datenträger sind prädestiniert für Datenverlust.

Zitat von @winlin:
Der Set-Storage Befehl klappt super - somit entferne ich die policy welche auf Disk2 liegt. Danach kann ich das o.g. Skript ausführen - jedoch wird das gerade nur für disk1 gemacht.
Naja, wenn du dir einmal den Befehl Get-Disk angesehen hättest dann hättets du gesehen das du anstatt einer Nummer auch mehrere Nummern angeben kannst!Der Set-Storage Befehl klappt super - somit entferne ich die policy welche auf Disk2 liegt. Danach kann ich das o.g. Skript ausführen - jedoch wird das gerade nur für disk1 gemacht.
Also
Get-Disk -Number 1,2 | %{
....
}
- Eine Partition anlegen (bestehend aus disk1 und 2) als Festplatte D
Zu dem habe ich oben bereits mehrfach geschrieben das das nur mit dynamischenm Datenträgern geht und die sind so nicht in Powershell managbar! Denn wenn du die mal in der Diskmanagement als dynamisch konvertierst verschwinden die in der Powershell bei Get-Disk!
@specht hat absolut recht.
Das was du vorhast sind dynamische Datenträger, die nutzt heute kaum noch einer (gibt keine nativen CMDLets dafür (nur über Steuerung von Diskpart nutzbar)) und kann ich ebenfalls nur von abraten.
Mach es mit StorageSpaces, das hier legt dir einen StorageSpace-Pool mit beiden Disks und einem Simple-Resillency Volume im Pool an, erstellt ein Volume und formatiert das anschließend.
Als Batch-Command sieht das so aus (für eine Batchdatei, nicht! Kommandozeile):
Soll es testweise in einer Konsole ausgeführt werden, das gedoppelte %% Zeichen durch ein einfaches ersetzen!
Die Disks verschwinden dann aus der Datenträgerverwaltung und sind ab dann über die StorageSpaces Konsole zu verwalten.
Viel Erfolg!
Grüße Uwe
Das was du vorhast sind dynamische Datenträger, die nutzt heute kaum noch einer (gibt keine nativen CMDLets dafür (nur über Steuerung von Diskpart nutzbar)) und kann ich ebenfalls nur von abraten.
Mach es mit StorageSpaces, das hier legt dir einen StorageSpace-Pool mit beiden Disks und einem Simple-Resillency Volume im Pool an, erstellt ein Volume und formatiert das anschließend.
$disks = Get-PhysicalDisk | ?{$_.DeviceId -in 1,2}
New-StoragePool -StorageSubSystemFriendlyName "Storage Spaces*" -FriendlyName DATAPOOL -PhysicalDisks $disks | New-VirtualDisk -FriendlyName DATADISK -UseMaximumSize -ResiliencySettingName Simple | Initialize-Disk -PassThru | %{New-Partition -DiskId $_.UniqueId -UseMaximumSize -DriveLetter D | Format-Volume -FileSystem NTFS -NewFileSystemLabel DATA -Force -Confirm:$false}
powershell -ExecutionPolicy ByPass -NoProfile -Command "New-StoragePool -StorageSubSystemFriendlyName 'Storage Spaces*' -FriendlyName DATAPOOL -PhysicalDisks (Get-PhysicalDisk | ?{$_.DeviceId -in 1,2}) | New-VirtualDisk -FriendlyName DATADISK -UseMaximumSize -ResiliencySettingName Simple | Initialize-Disk -PassThru | %%{New-Partition -DiskId $_.UniqueId -UseMaximumSize -DriveLetter D | Format-Volume -FileSystem NTFS -NewFileSystemLabel DATA -Force -Confirm:$false}"
Die Disks verschwinden dann aus der Datenträgerverwaltung und sind ab dann über die StorageSpaces Konsole zu verwalten.
Viel Erfolg!
Grüße Uwe