Gå til innhold

Hvordan kjøres bat eller vbs som admin?


Anbefalte innlegg

jeg skal prøve å få rullet ut et script som endrer stasjonsbokstaven lokalt på maskinen. dette skal kjøres som en del av logon på et nettverk.

 

problemet er at brukerkontoene dette blir kjørt på ikke har tilstrekkelig med rettigheter på maskinene til at stasjonsbokstaven blir endret.

 

Såvidt jeg har skjønt kan en bruke følgende kommando i et vbscript til å kjøre som lokal admin:

 

oShell.Run "runas /user:administrator "fil""

 

såvidt jeg har skjønt brukes denne kommandoen til å starte eksterne filer (andre filer enn scriptet det ligger i). noen som vet om det finnes en tilsvarende kommando som kan kjøres og la scriptet kjøre seg selv som lokal admin?

 

her er resten av koden i scriptet:

Option Explicit

dim objShell, objFs, objDriveCollection, wshSysEnv, strTemp, strSystemRoot, intDriveLetter
Dim objDrive, objFile, strDriveType, strCMD, strVolume, strDrivesDone

Set objShell = WScript.CreateObject("WScript.Shell")
Set objfs = CreateObject("Scripting.FileSystemObject")
Set objDriveCollection = objfs.Drives

Set WshSysEnv = objShell.Environment("PROCESS")
strTemp = WshSysEnv("Temp")
strSystemRoot = WshSysEnv("SystemRoot")

intDriveLetter=88 ' ascii for x
strDrivesDone="" ' Drives that have been remapped. Prevents CDs being changed again after being moved higher up the alphabet

For Each objDrive in objDriveCollection

Select Case objDrive.DriveType
Case 0: strDriveType = "Unknown"
Case 1: strDriveType = "Removable"
Case 2: strDriveType = "Fixed"
Case 3: strDriveType = "Network"
Case 4: strDriveType = "CD-ROM"
Case 5: strDriveType = "RAM Disk"
End Select

if strDriveType = "CD-ROM" AND instr(strDrivesDone,objDrive.DriveLetter)=0 then

' discover volume ID
strCMD = strSystemroot & "\system32\cmd /c mountvol.exe " & objDrive.DriveLetter & ": /L > " & strTemp & "\volume.txt"
objshell.run strCMD,0,true
Set objFile = objfs.OpenTextFile(strTemp & "\volume.txt", 1)
strVolume = ltrim(objFile.ReadLine)
objFile.close

' unmount CD-ROM
strCMD = "mountvol.exe " & objDrive.DriveLetter & ": /d"
objShell.Run strCMD,0,true

' Remount CD-ROM
strCMD = "mountvol.exe " & chr(intDriveLetter) & ": " & strVolume
objShell.Run strCMD,0,true
strDrivesDone=strDrivesDone & chr(intDriveLetter)
intDriveLetter=intDriveLetter+1

end if


Next

Endret av ilpostino
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...