2016-03-28 21 views
0

Certutil ile bir kullanıcının PKI kart verilerini okuyup verileri bir metin dosyasına döküyorum. Buradaki fikir, kullanıcılara, geçerlilik süresinin sona ermesiyle birlikte bazı verileri toplamak için bir giriş komut dosyasının parçası olarak koymaktır. İşte VBscript cmd'yi çalıştırın ve çıkışı bekleyin

kodum bölümdür:

bir metin dosyası (strPath değişken) için sertifika verilerini damping, iş gibi görünüyor, ama ben komut dosyasına fazla satır eklemek kez asla komutu bekler
set oShell = WScript.CreateObject("WScript.Shell") 
strcommand = "cmd /c certutil -scinfo -silent > " & StrPath 
oShell.Run strcommand, true 

bitirmek için pencere. Sadece bir kaç saniyede kapanır. PKI Kartını okumak için 7 saniye gerektiğini biliyorum. Bir do/while döngüsünün yanı sıra uyku denedim ve hiçbir şey komut penceresinin kendi rotasını çalıştırmasına izin vermiyor gibi görünüyor. Ayrıca, herhangi bir yardıma ihtiyaç duyduğunuz çeşitli intwindowstyle seçeneklerini de denedim.

cevap

1

oShell.Run strcommand, ,true çalışmalıdır. İkinci argüman, bWaitOnReturn değil intWindowStyle argümanıdır. Bu işe yaramazsa size Exec Method kullanmayı deneyebilirsiniz, =

gerçek: Ayrıca

oShell.Run strcommand, bWaitOnReturn kullanabilirsiniz. Bu bağlantıya yol açan belgelerin, işlem bitene kadar çalışan sleep ile bir döngü kullanmanın güzel bir örneği vardır.

+0

Açıkçası Certutil için verilen çıktıyı tanımladığımda işe yarayacak gibi görünüyor. Orada bir değişken girmeyi denediğimde, hızlı bir şekilde komut istemini sonlandırır ... Herhangi bir fikir mi? OExec = WshShell.Exec öğesini ayarlayın ("cmd/c certutil -scinfo -silent>" & StrPath) – user3067193