Hindra Windows från att vänta i onödan på inaktiva diskar?

Permalänk

Hindra Windows från att vänta i onödan på inaktiva diskar?

Se #16131012 för tydligare frågeställning. //Mod


Så lång historia kort, jag behöver kunna sätta en disk till online/offline på ett enkelt sätt. Vet inte riktigt hur jag ska skriva batch filen, tanken var något liknande.

@echo off cls IF (disk1==offline) diskpart disk1 online else diskpart disk1 offline exit

Någon som vet hur detta skulle kunna göras?

Permalänk
Medlem

Vad vill du uppnå? Vill du toggla offline/online eller?

Ovan ser det ut som att om den är offline låt den vara offline annars sätt den online? Vilket känns lite bakvänt?

Visa signatur

I7 12700K | Noctua Chromax NH-D15 | 48GB Corsair 3200MHZ | MSI PRO Z690-A | XFX MERC 310 Radeon 7900 XTX |1 TB WD Black NVME | 34" Samsung C34H890 100HZ Freesync | Fractal Design R6 | Corsair RMX 850W 80+ Gold | Win11 Pro | 500/100 Fiber

Permalänk
Skrivet av Maxizor:

Vad vill du uppnå? Vill du toggla offline/online eller?

Ovan ser det ut som att om den är offline låt den vara offline annars sätt den online? Vilket känns lite bakvänt?

oops, fixade det.

Jag vill göra så om den är online och filen körs så ska den sätta disken till offline, och tvärt om.

Permalänk
Medlem
Skrivet av Frejoh466:

oops, fixade det.

Jag vill göra så om den är online och filen körs så ska den sätta disken till offline, och tvärt om.

Du får väl köra något diskpartkommando och kolla status, det är väl bara att fippla lite och ta en disk du inte är rädd om, om du tar disken offline när den använda eller liknande kan den i värsta fall bli helt korrupt.

Visa signatur

I7 12700K | Noctua Chromax NH-D15 | 48GB Corsair 3200MHZ | MSI PRO Z690-A | XFX MERC 310 Radeon 7900 XTX |1 TB WD Black NVME | 34" Samsung C34H890 100HZ Freesync | Fractal Design R6 | Corsair RMX 850W 80+ Gold | Win11 Pro | 500/100 Fiber

Permalänk
Skrivet av Maxizor:

Du får väl köra något diskpartkommando och kolla status, det är väl bara att fippla lite och ta en disk du inte är rädd om, om du tar disken offline när den använda eller liknande kan den i värsta fall bli helt korrupt.

Tror att Windows stoppar skrivning till disken innan den sätter den offline. Men problemet är att jag inte vet hur jag ska få den att svara om den är offline eller online.

Skickades från m.sweclockers.com

Permalänk
Legendarisk

@Frejoh466: Om du inte har någon särskild anledning till att behöva använda Batch så bör du titta på att lösa det med Powershell istället. Get-Disk kan ge dig en lista över diskar och deras tillstånd, och Set-Disk kan användas för att ta en disk online/offline.

Exempel:

$disk = Get-Disk -FriendlyName "Msft Virtual Disk" if($disk.OperationalStatus -eq "Online") { $disk | Set-Disk -IsOffline $true } else { $disk | Set-Disk -IsOffline $false }

Visa signatur

Abstractions all the way down.

Permalänk
Skrivet av Tunnelsork:

@Frejoh466: Om du inte har någon särskild anledning till att behöva använda Batch så bör du titta på att lösa det med Powershell istället. Get-Disk kan ge dig en lista över diskar och deras tillstånd, och Set-Disk kan användas för att ta en disk online/offline.

Exempel:

$disk = Get-Disk -FriendlyName "Msft Virtual Disk" if($disk.OperationalStatus -eq "Online") { $disk | Set-Disk -IsOffline $true } else { $disk | Set-Disk -IsOffline $false }

Jag har aldrig använt powershell, så var därför jag tog batch. Men jag ska pröva din kod och hur det går.

Edit:
Är inte vid en dator, men ska jag bara döpa filen till .ps1 och köra den som vanligt för att det ska fungera?

Skickades från m.sweclockers.com

Permalänk

@Tunnelsork
Hur ska jag fixa detta felmeddelandet när jag kör filen?

Set-Disk : Access Denied Activity ID: {d9774caa-7b79-4ae0-b749-481727fb755c} At C:\Users\test\Desktop\HDD.ps1:4 char:13 + $disk | Set-Disk -IsOffline $true + ~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : PermissionDenied: (StorageWMI:ROOT/Microsoft/..._StorageCmdlets) [Set-Disk], CimExceptio n + FullyQualifiedErrorId : StorageWMI 40001,Set-Disk

Permalänk
Legendarisk
Skrivet av Frejoh466:

Hur ska jag fixa detta felmeddelandet när jag kör filen?

Kör scriptet med administratörsrättigheter. Får du upp ytterligare en varning som säger något om execution policies så kan du lösa det via `Set-ExecutionPolicy RemoteSigned`.

Visa signatur

Abstractions all the way down.

Permalänk
Skrivet av Tunnelsork:

Kör scriptet med administratörsrättigheter. Får du upp ytterligare en varning som säger något om execution policies så kan du lösa det via `Set-ExecutionPolicy RemoteSigned`.

Hur kör jag som admin?

Höger klick ger bara, öppna, kör med powershell, edit osv. inget "kör som admin"

Permalänk
Legendarisk
Skrivet av Frejoh466:

Hur kör jag som admin?

Höger klick ger bara, öppna, kör med powershell, edit osv. inget "kör som admin"

Leta upp Powershell i startmenyn, högerklicka och välj att köra som administratör. Anropa sedan scriptfilen, antingen med dess fulla sökväg, eller om du befinner dig i samma mapp med .\dittscript.ps1.

Visa signatur

Abstractions all the way down.

Permalänk
Skrivet av Tunnelsork:

Leta upp Powershell i startmenyn, högerklicka och välj att köra som administratör. Anropa sedan scriptfilen, antingen med dess fulla sökväg, eller om du befinner dig i samma mapp med .\dittscript.ps1.

stackoverflow till räddningen.

if (!([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] "Administrator")) { Start-Process powershell.exe "-NoProfile -ExecutionPolicy Bypass -File `"$PSCommandPath`"" -Verb RunAs; exit }

gjorde tricket

Problemet jag har nu är att när hårddisken går online så öppnas alla partitioner, vilket jag inte vill.

sedan så ska jag bara försöka att binda den till en hotkey (troligen winkey+1). Så att jag slipper högerklicka och sedan kör, för att köra scriptet.

Permalänk
Legendarisk
Skrivet av Frejoh466:

Problemet jag har nu är att när hårddisken går online så öppnas alla partitioner, vilket jag inte vill.

Då skulle du istället kunna toggla enhetsbokstaven för dessa. Här är ett exempel på hur du kan göra det:

// Lista alla partitioner och identifiera den du är intresserad av: Get-Partition

// Fyll i värden för disk/partition: $diskNumber = <nnn> $partitionNumber = <nnn> $driveLetter = "X:" Get-Partition -DiskNumber $diskNumber -PartitionNumber $partitionNumber | %{ if($_.DriveLetter -eq "`0") { $_ | Add-PartitionAccessPath -AccessPath $driveLetter } else { $_ | Remove-PartitionAccessPath -AccessPath $driveLetter } }

Visa signatur

Abstractions all the way down.

Permalänk

Ok, jag ger upp. Windows suger.

Så jag har 3st SSD, och 5st HDD. Problemet är att helt jävla random tycker Windows att det är en bra att starta alla mina HDD bara för att. Startar jag MS Word som ligger i C:? bäst att jag startar D:, H:, G:, F:, K:, bara för att. Windows har inget att göra i hårddiskarna, då det bara ligger filer som ska spara.

Så jag tänkte att jag kan sätta dem till offline så Windows inte börjar låta som ett jetplan för ingen orsak. (Jag har redan stängt av indexering och annat, då jag har försökt att fixa detta i något år nu.)

Men jag ger upp, dem får vara på 24/7 då windows verkligen vill starta dem. Datorn frys medans hårddiskarna startas.

Permalänk
Legendarisk

@Frejoh466: Det låter som en fråga bättre lämpad för windows-forumet. Den här tråden är ett klassiskt XY-problem nu: Du vill lösa X och tror att du kan göra det via Y, men tyvärr kan du inte lösa Y heller och istället för att fråga om X så frågar du om Y och trots att du nu har löst både Y och Z så är inte din ursprungliga fråga besvarad... Det är lätt att undvika (och därmed få bättre hjälp) genom att inkludera mer information om sammanhanget när man frågar.

Visa signatur

Abstractions all the way down.

Permalänk
Medlem

"Datorn frys medans hårddiskarna startas." Är det här grundproblemet?
Hur mår dina diskar egentligen?

Permalänk
Skrivet av Tunnelsork:

@Frejoh466: Det låter som en fråga bättre lämpad för windows-forumet. Den här tråden är ett klassiskt XY-problem nu: Du vill lösa X och tror att du kan göra det via Y, men tyvärr kan du inte lösa Y heller och istället för att fråga om X så frågar du om Y och trots att du nu har löst både Y och Z så är inte din ursprungliga fråga besvarad... Det är lätt att undvika (och därmed få bättre hjälp) genom att inkludera mer information om sammanhanget när man frågar.

Skrivet av henkiii:

"Datorn frys medans hårddiskarna startas." Är det här grundproblemet?
Hur mår dina diskar egentligen?

Det är inget "fel" på windows, windows är windows.

Det ända sättet jag vet att fixa windows var att sätta hårddisken som offline, och därav fråga om en batch fil kunde hämta information om vald hårddisk är offline eller online. Det ända är om man skriver ett program som blockerar windows från att läsa från hårddiskarna. Så att skriva på windows forumet hjälper inte (har redan prövat, men ingen vet hur man blockerar windows).

Permalänk
Legendarisk

*** Tråd flyttad, rubrik förtydligad ***

Visa signatur

Abstractions all the way down.

Permalänk

@Frejoh466: Använd mountvol :

https://technet.microsoft.com/sv-se/library/cc772586(v=ws.10)...

för att gömma "partitionen". Då ser inte OSet den.

Lycka till

Visa signatur

"Victorious warriors win first and then go to war, while defeated warriors go to war first and then seek to win."

Permalänk
Medlem
Skrivet av Frejoh466:

Det är inget "fel" på windows, windows är windows.

Det ända sättet jag vet att fixa windows var att sätta hårddisken som offline, och därav fråga om en batch fil kunde hämta information om vald hårddisk är offline eller online. Det ända är om man skriver ett program som blockerar windows från att läsa från hårddiskarna. Så att skriva på windows forumet hjälper inte (har redan prövat, men ingen vet hur man blockerar windows).

Och du har fått svar på hur du gör det. Har du problem med enhetsbeteckningarna så kan du använda powershell/diskpart för att stripa dom vid offline och sätta dom vid online sen kan man ju fråga sig varför man skall använda enhetsbokstäver istället för monteringspunkter.

Men det är ganska klart att du har svårt att få hjälp då du har udda ideer och förutfattade meningar om hur du vill göra saker. Om du vill ta diskar offline för att dom låter så är ju diskarna/datorn problemet inte windows och samma gäller om diskaktiviteten när du tar dom online låser ditt system.

§1 /screamin-daemon, moderator
Permalänk
Skrivet av aluser:

Och du har fått svar på hur du gör det. Har du problem med enhetsbeteckningarna så kan du använda powershell/diskpart för att stripa dom vid offline och sätta dom vid online sen kan man ju fråga sig varför man skall använda enhetsbokstäver istället för monteringspunkter.

Men det är ganska klart att du har svårt att få hjälp då du har udda ideer och förutfattade meningar om hur du vill göra saker. Om du vill ta diskar offline för att dom låter så är ju diskarna/datorn problemet inte windows och samma gäller om diskaktiviteten när du tar dom online låser ditt system.

Har du en bättre ide att blockera windows från att läsa en hårddisk som inte finns något på? för när den gör det så frys allt i någon sekund. Min fråga från början var hur jag kunde göra en batch fil som sätter hårddisken som offline.

Permalänk
Hedersmedlem

*Tråd rensad i enlighet med §1*

Vänligen håll diskussionen på en trevlig och saklig nivå.
/moderator

Visa signatur

Danskjävel så krattar som en skrivare...