2012-06-20 71 views
1

我創建了一個VBScript,它從計算機中提取服務標籤,用戶名和計算機名稱。我現在需要做的是在文本文件中編譯這些信息。VBScript寫入服務器文本文件

它是如何設置如下:

我們有一個Active Directory服務器,與登錄腳本的文件夾。我創建了一個批處理文件來運行這個.vbs腳本,該腳本到目前爲止效果很好。我現在需要的是AD服務器上的一個文件,名爲「logging.txt」,將填充使用.vbs腳本創建的信息。

這是劇本我到目前爲止有:

'Get Dell Service Tag Info 
set ProSet = GetObject("winmgmts:").InstancesOf("Win32_BIOS") 
Set ProSet1 = GetObject("winmgmts:").InstancesOf("Win32_SystemEnclosure") 
For each Pro in ProSet 
    For each Pro1 in ProSet1 
    ServiceTag=Pro.SerialNumber 
    wscript.echo ServiceTag 
    exit for 
    Next 
    exit for 
Next 

'get username and computername, could also be asked in a batch 
Set oShell  = WScript.CreateObject("WScript.Shell") 
Set oShellEnv = oShell.Environment("Process") 
sComputerName = oShellEnv("ComputerName") 
sUsername  = oShellEnv("username") 
wscript.echo sComputerName & " " & sUsername 

非常感謝你提前!

這是我到目前爲止已經試過:

sub log (user, computer) 
    dim fs,f 
    set fs=Server.CreateObject("Scripting.FileSystemObject") 
    set f=fs.OpenTextFile(Server.MapPath(".\logging.csv"),8,true) 
    f.WriteLine now & "," & user & "," & computer 
    f.Close:set f=Nothing 
    set fs=Nothing 
end sub 
+0

除了正在工作的代碼之外,您嘗試過並確定哪些方法無效,您必須至少向我們展示您嘗試的內容。 –

+0

@Ramhound我試着寫這個至今: '子記錄(用戶,計算機) 昏暗的FS,F 組FS =的Server.CreateObject( 「Scripting.FileSystemObject的」) 集合F = fs.OpenTextFile(服務器。 MapPath(「。\ logging.csv」),8,true) f.WriteLine now&「,」&user&「,」&computer f.Close:set f = Nothing set fs = Nothing end sub' –

+0

如果仍然出現拒絕訪問錯誤,則您正在運行腳本的帳戶對該文件夾沒有寫入權限。 – carny666

回答

1

我感覺好像你要留下一些東西了..這是如何在VBS中編寫一個文本文件。

dim filesys, filetxt, getname, path 
Set filesys = CreateObject("Scripting.FileSystemObject") 
Set filetxt = filesys.CreateTextFile("c:\somefile.txt", True) 
path = filesys.GetAbsolutePathName("c:\somefile.txt") 
getname = filesys.GetFileName(path) 
filetxt.WriteLine("Your text goes here.") 
filetxt.Close 
If filesys.FileExists(path) Then 
    Response.Write ("Your file, '" & getname & "', has been created.") 
End If 
+0

我得到一個「權限被拒絕」 - 800A0046錯誤信息 –

+0

您的第三留置權, –

+0

很明顯,運行該腳本的帳戶需要對該文件夾的寫入權限。 – carny666

0

它可能是最簡單的信息保存到本地文本文件,並與調用批處理腳本的FTP命令行工具上傳你的腳本,而不是試圖發明另一個輪子,並在VBScript中。

可以列出FTP的命令行選項:

ftp /? 

我建議設立這樣的:

ftp -s:control.txt 

control.txt將包含這樣的內容:

open [hostname or address] 
[username] 
[password] 
cd [remote directory name] 
put logging.txt 
disconnect 
bye 
+0

這是行不通的,因爲我最終必須將其部署到700個最終用戶。 –

+0

你可以從VB調用命令行ftp客戶端嗎?它是一個Windows組件,並且存在於每個Windows系統中,可能早在Windows 95和更早的版本中。 – Wug

+0

即使是這樣,一旦發生這種情況,我將不得不手動將信息解析到另一個文件。 –