Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Übergabe von Parametern mit VBScript

Frage Entwicklung VB for Applications

Mitglied: Pixelschubser

Pixelschubser (Level 1) - Jetzt verbinden

14.04.2010, aktualisiert 10:51 Uhr, 5286 Aufrufe, 2 Kommentare

Übergabe eines Parameters im minimierten Fenstern

Gestern wollte ich mit Hilfe eines Scripts Schriften installieren. Das Hauptproblem bestand darin, dass unter Windows 7 dazu Administrationsrechte benötigt werden.

Um dieses Problem zu umgehen erstellte ich eine GPO in der das VBScript ausgeführt und ein Parameter mitgegeben wurde, in dem das Adminkenntwort stand. Nun erstellte ich ein VBScript das erstmal überprüft, ob alle Schriften bereits installiert sind. Wenn nein, wurde eine zweites Script aufgerufen, dem das Passwort mitgeben wird.

Script 1:

01.
Option explicit 
02.
 
03.
' Variablendelekration 
04.
dim oFSO, oShell, oApp, oFolderCopy, oArgs, sParameter, oFont, Bool, strFontsPath, strScriptPath 
05.
 
06.
' Neue Objekte erstellen 
07.
set oFSO = CreateObject("Scripting.FileSystemObject")  
08.
set oShell = CreateObject("WScript.Shell")  
09.
set oApp = CreateObject("Shell.Application")  
10.
set oArgs = WScript.Arguments 
11.
 
12.
' Variablendefinition 
13.
Bool = false 
14.
 
15.
' Pfad zu den Font-Ordner 
16.
strFontsPath = oShell.ExpandEnvironmentStrings("%WINDIR%") & "\Fonts"  
17.
set oFolderCopy = oApp.Namespace("\\WINSRV1\Freigabe\Fonts")  
18.
 
19.
' Überprüft ob die Schriftart bereits installiert ist 
20.
For Each oFont In oFolderCopy.Items  
21.
 
22.
  If NOT oFSO.FileExists(strFontsPath & "\" & oFont.Name & ".TTF") Then 
23.
    If NOT oFSO.FileExists(strFontsPath & "\" & oFont.Name & ".OTF") Then   
24.
      Bool = true     
25.
    End If 
26.
  End If  
27.
 
28.
Next  
29.
 
30.
If Bool = true then   
31.
  for each sParameter in oArgs 
32.
    set oShell = Wscript.CreateObject("WScript.Shell"
33.
    oShell.Run "runas /user:Benutzername@domain.de ""cscript.exe \\WINSRV1\Freigabe\font.vbs" 
34.
   
35.
    WScript.Sleep 1000 
36.
    oShell.Sendkeys sParameter + "~" 
37.
  next 
38.
End if 
39.
 
40.
' Leert die Objekte 
41.
Set oFolderCopy = Nothing  
42.
Set oApp = Nothing  
43.
Set oShell = Nothing 
44.
set oFSO = Nothing 
45.
 
46.
Wscript.Quit
Script 2:

01.
on error resume next  
02.
  Dim oFSO, oApp, oFolderCopy, oShell  
03.
  Dim strFontsPath, strScriptPath  
04.
 
05.
  ' Neue Objekte erstellen 
06.
  Set oFSO = CreateObject("Scripting.FileSystemObject")  
07.
  Set oShell = CreateObject("WScript.Shell")  
08.
  Set oApp = CreateObject("Shell.Application")  
09.
 
10.
  ' Pfad zu diesem Script  
11.
  strScriptPath = WScript.ScriptFullName  
12.
  strScriptPath = left(strScriptPath,instrrev(strScriptPath,"\\WINSRV1\Freigabe"))  
13.
 
14.
  ' Pfad zum Font-Ordner 
15.
  strFontsPath = oShell.ExpandEnvironmentStrings("%WINDIR%") & "\Fonts"  
16.
   
17.
  Set oFolderCopy = oApp.Namespace("\\WINSRV1\Freigabe\Fonts")  
18.
 
19.
  ' Überprüft ob die Schriftart bereits installiert ist 
20.
  For Each oFont In oFolderCopy.Items  
21.
    If NOT oFSO.FileExists(strFontsPath & "\" & oFont.Name & ".TTF") Then 
22.
      If NOT oFSO.FileExists(strFontsPath & "\" & oFont.Name & ".OTF") Then   
23.
        WScript.Echo oFont 
24.
        oApp.Namespace(strFontsPath).CopyHere oFont  
25.
      End If 
26.
    End If  
27.
  Next  
28.
 
29.
' Leert die Variablen 
30.
Set oFolderCopy = Nothing  
31.
Set oApp = Nothing  
32.
Set oShell = Nothing
Das Ganze funktioniert auch soweit. Eine Sache ist jedoch sehr unschön. Wenn sich nun ein Benutzer anmeldet, sieht er auf jeden Fall das erste Fenster, und wenn das zweite Script auch ausgeführt wird logischerweiße auch das zweite Fenster. Nun hab ich gelesen, dass man die Fenster auch minimiert ausführen lassen kann. Das würde dann so ausschauen:

01.
oShell.Run "runas /user:Benutzername@domain.de ""cscript.exe \\WINSRV1\Freigabe\font.vbs", 7
Nun habe ich nur das Problem, dass das Passwort nicht mehr zu Script zwei übergeben wird. Kann mir jemand weiterhelfen?
Mitglied: Logan000
14.04.2010 um 11:45 Uhr
Moin Moin

Wenn Du das 1. Skript schon via GPO ausführst, dann mach das doch unter Computerkonfiguration beim Starten.
Dann solten eigentlich alle Rechte vorhanden sein und eine Kennwort übergabe nicht mehr notwendig.

Gruß L.
Bitte warten ..
Mitglied: Pixelschubser
14.04.2010 um 12:13 Uhr
Ohja.. gute Idee versuch ich gleich mal aus.. Vielen Dank
Bitte warten ..
Neuester Wissensbeitrag
Internet

Unbemerkt - Telekom Netzumschaltung! - BNG - Broadband Network Gateway

(3)

Erfahrungsbericht von ashnod zum Thema Internet ...

Ähnliche Inhalte
Entwicklung
gelöst Get ip from external txt file and use in vbscript (5)

Frage von thankusomuch zum Thema Entwicklung ...

VB for Applications
gelöst Vbscript bestimmte Zeile ungeachtet der Nummerierung löschen (4)

Frage von aletri zum Thema VB for Applications ...

JavaScript
Übergabe einer php-Variable an JS

Frage von Rabauke84 zum Thema JavaScript ...

Heiß diskutierte Inhalte
Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...

Grafikkarten & Monitore
Tonprobleme bei Fernseher mit angeschlossenem Laptop über HDMI (11)

Frage von Y3shix zum Thema Grafikkarten & Monitore ...

Microsoft Office
Keine Updates für Office 2016 (11)

Frage von Motte990 zum Thema Microsoft Office ...