- トリット
- 会議室デビュー日: 2004/10/11
- 投稿数: 2
|
投稿日時: 2006-01-26 23:14
こんにちは。
windows2000環境にて、コマンドもしくは、スクリプトなどで、プリンタを自動で追加して、共有する方法をさがしております。
キューの追加、プリンタ作成はできるようになったのですが、共有する方法がどうしてもわかりません。
何かいい方法はないでしょうか?
ご教授のほど宜しくお願いいたします。
|
- kaz
- ぬし
- 会議室デビュー日: 2003/11/06
- 投稿数: 5403
|
投稿日時: 2006-01-27 01:13
こんばんわ.
引用: |
|
トリットさんの書き込み (2006-01-26 23:14) より:
キューの追加、プリンタ作成はできるようになったのですが、共有する方法がどうしてもわかりません。
|
net share でできませんか?
|
- ちゃっぴ
- ぬし
- 会議室デビュー日: 2004/12/10
- 投稿数: 873
|
投稿日時: 2006-01-27 01:57
引用: |
|
kazさんの書き込み (2006-01-27 01:13) より:
こんばんわ.
引用: |
|
トリットさんの書き込み (2006-01-26 23:14) より:
キューの追加、プリンタ作成はできるようになったのですが、共有する方法がどうしてもわかりません。
|
net share でできませんか?
|
できましたっけ? NET SHARE ?
とりあえず私が知っている方法としては、
1. 「RUNDLL32.EXE printui.dll,PrintUIEntry」にて Printer Install と同時に共有
2. WMI を使って共有
2. の方法はたぶんどこにも具体的な方法が載っていないので
Source をおいておきます。
コード: |
|
Sub SharePrinter(strPrinterName, strShareName)
Dim objWmiService 'As WbemScripting.SWbemServices
Dim colW32Shares 'As WbemScripting.SWbemObjectSet
Dim objW32Share 'As WbemScripting.SWbemObject
Dim colW32Printers 'As WbemScripting.SWbemObjectSet
Dim objW32Printer 'As WbemScripting.SWbemObject
Dim strQuery 'As String
Dim lngReturn 'As Long
Set objWmiService = GetObject("winmgmts:\\.\root\CIMV2")
strQuery = "SELECT * FROM Win32_Printer WHERE DeviceID = '" & strPrinterName & "'"
Set colW32Printers = objWmiService.ExecQuery(strQuery)
If colW32Printers.Count <> 1 Then
WScript.Echo "Printer [" & strPrinterName & "] は存在しません。"
Exit Sub
End If
Set objW32Share = objWmiService.Get("Win32_Share")
lngReturn = objW32Share.Create( _
strPrinterName & ",LocalsplOnly", strShareName, 1)
If lngReturn <> 0 Then
WScript.Echo "Printer [" & strPrinterName & "] は共有に失敗しました。"
Exit Sub
End If
For Each objW32Printer In colW32Printers
With objW32Printer
.Attributes = .Attributes Or 8
.Shared = True
.ShareName = strShareName
.Put_
End With
Next
End Sub
|
Win32_Share.Create だけだと、Printer が共有の Icon で表示されないので
Win32_Printer の Property をいじってやる必要があります。
ちょいと面倒・・・
|
- kaz
- ぬし
- 会議室デビュー日: 2003/11/06
- 投稿数: 5403
|
投稿日時: 2006-01-27 08:55
おはようございます.
引用: |
|
ちゃっぴさんの書き込み (2006-01-27 01:57) より:
引用: |
|
kazさんの書き込み (2006-01-27 01:13) より:
こんばんわ.
引用: |
|
トリットさんの書き込み (2006-01-26 23:14) より:
キューの追加、プリンタ作成はできるようになったのですが、共有する方法がどうしてもわかりません。
|
net share でできませんか?
|
できましたっけ? NET SHARE ?
|
どこかでそんなやり方があるという記述を見た記憶があったんですが,
探してみたら見当たりませんでした,ゴメンナサイ.
|
- トリット
- 会議室デビュー日: 2004/10/11
- 投稿数: 2
|
投稿日時: 2006-01-28 01:01
早速のご回答ありがとうございます。
WMI を使って共有を実行してみました。
一度、ソースを修正して、実行してみたのですが、
.Shared = True
にて、存在しないオブジェクトですみたいなエラーが表示され行うことができませんでした。(VBSで)
wmiについてはまったく初心者のためか、発生した原因がさっぱりわかりませんでした。
ひとまず、WMIを使用すると、できることがわかりましたので、WMIの勉強を行って頑張ってみようと思います。
どうも、ありがとうございました。
|
- ちゃっぴ
- ぬし
- 会議室デビュー日: 2004/12/10
- 投稿数: 873
|
投稿日時: 2006-01-28 02:09
引用: |
|
WMI を使って共有を実行してみました。
一度、ソースを修正して、実行してみたのですが、
.Shared = True
にて、存在しないオブジェクトですみたいなエラーが表示され行うことができませんでした。(VBSで)
|
Windows 2000 でしょうか?
Win32_Printer class [WMI]
ここにあるように Windows 2000 では、Shared Property は not supported です。
なんで消しちゃってかまいません。
両方 Support するのであれば、OS による分岐が必要ですね。
それから、WMI の Reference は英語しかありませんので、
がんばって勉強してください。
# 解説なら、Script Center に結構ありますけどね。
|