---
title: "Kan man ändra läs- och skrivrättigheter med javascript?"
type: "forum-thread"
url: "https://www.webforum.nu/amne/javascript/158621-kan-man-ändra-läs-och-skrivrättigheter-med-javascript"
topic: "JavaScript"
topic_url: "https://www.webforum.nu/amne/javascript"
author: "Pedda"
published: "2007-03-27T08:21:33.000Z"
updated: "2007-04-02T13:04:02.000Z"
replies: 32
views: 1103
page: 1
pages: 2
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/javascript/158621-kan-man-ändra-läs-och-skrivrättigheter-med-javascript"
---

# Kan man ändra läs- och skrivrättigheter med javascript?

_Sida 1 av 2._

## #1 — Pedda, 2007-03-27T08:21Z

Rubriken sa väl det mesta så jag upprepar frågan igen.

Kan man ändra läs- och skrivrättigheter på en mapp med javascript?

Permalänk: https://www.webforum.nu/p/158621

## #2 — emission, 2007-03-27T10:10Z

Nej. Man kan göra det med lokalt exekverad JScript och WMI, men inte via webbläsaren.

Hur så?

Permalänk: https://www.webforum.nu/p/1951442

## #3 — Pedda, 2007-03-27T10:31Z

Jag håller på att göra skivor som ska distribueras med en massa filer på (pdf och zipfiler mest).
På skivan finns en del htmlfiler, bl.a en som innehåller ett javascript som sparar innehållet på skivan till hårddisken.
Problemet blir när det är flera skivor eftersom när den första skivan kopieras så blir ju mapparna skrivskyddade, och då går det inte att kopiera dom övriga skivorna.

Permalänk: https://www.webforum.nu/p/1951447

## #4 — Pedda, 2007-03-27T15:53Z

> **emission skrev:**
>
> ... med lokalt exekverad JScript och WMI ...

Berätta gärna mer eller om du har några bra länkar.

Permalänk: https://www.webforum.nu/p/1951555

## #5 — colione, 2007-03-27T23:12Z

emission vilken wmi-class tänker du på då? Win32_Directory har ju bara Writable som ett readonly värde. Det enda jag hittat som kan sätta read/write/modify egenskaper är via ACL, men det används ju för att ge användare rättigheter till mappen och inte lyfta ur checkboxen för read only.

Du borde kunna använda gamla hederliga FileSystemObject som ActiveX-objekt däremot och XORa bort flaggan för readonly i bitmasken. :)

prova något sånhära. Koden är otestad då jag för tillfället sitter på min macbook :p

```
var ReadOnly = 1;
var fso = new ActiveXObject("Scripting.FileSystemObject");
var objFolder = fso.GetFolder("C:\\apa\\foo"); //man måste escapea slasharna i sökvägen :)
objFolder.Attributes=(objFolder.Attributes ^ ReadOnly); //XOR:ar folderns attribut med bit-värdet för readonly
```

Du skulle kunna få den som vbscript också... :)

```
const ReadOnly=1
set fso = createobject("Scripting.FileSystemObject")
set objFolder = fso.GetFolder("C:\apa\foo")
objFolder.Attributes = objFolder.Attributes XOR ReadOnly
```

I värsta fall kan vi ju prova en ann lite enklare variant...

Skapa en activex-kontroll som kan anropa cmd-kommandon, och den utomordentliga attrib.exe.....få se nu.

```
var wshShell = new ActiveXObject("WScript.Shell");
wshShell.Run("attrib -r c:\\apa\\foo\\") //För att fånga upp fel skulle vi kunna använda wshShell.exec() istället, men den stödjs endast av xp och uppåt
```

och i vbscript:

```
set wshShell = createobject("WScript.Shell")
wshShell.Run("attrib -r c:\apa\foo\") ' Exec funkar även här, men med samma klausul som ovan.
```

angående attrib:
<http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/attrib.mspx?mfr=true>

iofs så tror jag vid närmare eftertanke att attrib endast finns i xp också...men, men...jag får väl återkomma imorgon med en sådan funktion.
Nu ska jag sova.

Permalänk: https://www.webforum.nu/p/1951700

## #6 — spango, 2007-03-28T06:47Z

Det är inte XOR:a man ska göra om man vill ha bort en flagga, det är AND:a med flaggans bitkomplement man vill göra :) 
Istället för

```
objFolder.Attributes=(objFolder.Attributes ^ ReadOnly); //XOR:ar folderns attribut med bit-värdet för readonly
```

använd

```
objFolder.Attributes=(objFolder.Attributes & ~ReadOnly);
// alt. 
objFolder.Attributes &= ~ReadOnly;
```

Permalänk: https://www.webforum.nu/p/1951717

## #7 — Pedda, 2007-03-28T07:20Z

Mappen får inte skrivrättigheter med varken:

```
objFolder.Attributes=(objFolder.Attributes ^ ReadOnly);
```

eller

```
objFolder.Attributes &= ~ReadOnly;
```

Är ni säkra på att ReadOnly ska vara 1? Eller vad kan det bero på annars?

Permalänk: https://www.webforum.nu/p/1951727

## #8 — colione, 2007-03-28T07:56Z

På filer är det det som är det korrekta, jag förutsatte att det samma skulle funka på mappar.. :/

/Red du får inget felmeddelande antar jag?

/Red.2 Har du provat attrib-grejen? I värsta fall kan du ju bundla med den på skivan...

Permalänk: https://www.webforum.nu/p/1951734

## #9 — Pedda, 2007-03-28T08:48Z

Testade attrib nu och den körs (prompten flashar till) men skrivskyddet är kvar.

Felmeddelandet jag får när jag kopierar skiva 2 är Permission denied och det är ju inte så konstigt när målmappen är skrivskyddad.

Permalänk: https://www.webforum.nu/p/1951748

## #10 — colione, 2007-03-28T09:05Z

my bad...jag som var lite snurrig... :)
Prova det här istället:

```
var wshShell = new ActiveXObject("WScript.Shell");
wshShell.run("%COMSPEC% /c attrib -r c:\\apa\\foo")
```

%COMSPEC% innehåller sökvägen till cmd.exe, som vi då anropar med /c (för att avsluta när exekveringen är klar) och med efterföljande parametrar...dessutom så ska man inte ha några slashar efter sista mappen för då hittar inte attrib mappen.

Permalänk: https://www.webforum.nu/p/1951752

## #11 — Pedda, 2007-03-28T09:09Z

Jag hade inga slashar efter mappen så jag tror inte att det kommer att göra nån skillnad.

Permalänk: https://www.webforum.nu/p/1951756

## #12 — colione, 2007-03-28T09:12Z

Jag har ju moddat lite andra grejer också...får du nåt fel-meddelande på koden?

/Red.
Du kan ju posta in exakt kod här som du använder så kan jag kolla på hur det ser ut. :)

Du kan även prova att byta /c till /k för att att ha kvar kommandoprompten efter exekvering av kommandona.

Permalänk: https://www.webforum.nu/p/1951759

## #13 — Pedda, 2007-03-28T09:27Z

Nope, hjälpte inte.
(och prompten flashade fortfarande)

/red
Såg din redigering nu så här har du koden där jag kopierar mappen

```
var wshShell = new ActiveXObject("WScript.Shell");     
fso.CopyFolder(pathName, destination + dir + "\\Data", true);
wshShell.Run("%COMSPEC% /c attrib -r " + destination + dir + "\\Data");
```

Permalänk: https://www.webforum.nu/p/1951761

## #14 — colione, 2007-03-28T09:33Z

Byt ur /c mot /k så får du se felmeddelandet som kommer upp i prompten.. :)

Permalänk: https://www.webforum.nu/p/1951765

## #15 — Pedda, 2007-03-28T09:37Z

Japp, fick ett felmeddelande:
Parameter format not correct

Permalänk: https://www.webforum.nu/p/1951768

## #16 — colione, 2007-03-28T09:41Z

Spännande...vad händer om du kastar upp en: alert("attrib -r " + destination + dir + "\\\\Data")

Permalänk: https://www.webforum.nu/p/1951771

## #17 — Pedda, 2007-03-28T09:46Z

attrib -r C:\\test\\DVDLib\\Data

Sökvägen är rätt

Permalänk: https://www.webforum.nu/p/1951773

## #18 — colione, 2007-03-28T09:49Z

och om du kör den i kommandotolken själv, får du samma fel då?

Permalänk: https://www.webforum.nu/p/1951776

## #19 — Pedda, 2007-03-28T09:51Z

Hela felmeddelandet är så här förresten:

> Parameter format not correct -
> C:\\Documents and Settings\\pesc\\Desktop\>

Varför står det en sökväg till Desktop??

/red
Parameter format not correct står det när jag kör direkt i cmd också.

Permalänk: https://www.webforum.nu/p/1951777

## #20 — colione, 2007-03-28T09:52Z

Det är ju default vyn efter att du har exekverat ett kommando...för att du ska kunna skriva ett nytt....

Permalänk: https://www.webforum.nu/p/1951778

---

Tråden på webben: https://www.webforum.nu/amne/javascript/158621-kan-man-ändra-läs-och-skrivrättigheter-med-javascript  
Nästa sida: https://www.webforum.nu/amne/javascript/158621-kan-man-ändra-läs-och-skrivrättigheter-med-javascript/page2.md
