私は現在、ワークステーションの標準プリンターを読み取り、それをテキストファイルに書き込むスクリプトに取り組んでいます。ここで、出力文字列を変換または切り取り、別のファイルに書き込んで、切り取った文字列を新しいデフォルト プリンターとして設定する必要があります。
たとえば、最初のテキストファイルの内容は次のようになります。
\NDPS-mydomain\myprinter.ou.cn.mydomain.de
私はこれを取得したい:
PS-myprinter
「myprinter」の文字数はプリンターごとに異なります。
完全な文字列から必要な部分を切り取るのに苦労しています。
背景:私はノベルからマイクロソフトへのプリントサーバーの大規模な移行を行いました。ユーザーへの影響を最小限に抑えるために、このスクリプトを使用して新しい Microsoft 展開プリンターを既定のプリンターとして再度設定したいと考えています。これが理解できることを願っています。
私の悪い英語でごめんなさい。
前もって感謝します
これまでのサンプルコード:
$name = (get-content env:Computername)
Get-WmiObject -Class Win32_Printer -Filter "Default = $true" |
Select-Object - expandProperty Name |
Out-File -filepath C:\"$name"_defaultprinter.txt
Get-Content "C:\"$name"_defaultprinter.txt" |
Foreach-Object {$_.Replace("NDPS","PS")} |
Set-Content "C:\"$name"_defaultprinter.txt"
出力は次のとおりです。
\\mydomain\NDPS-MJP1-0014-SamsungML3471.A-Printers.MJP1.xx-xxxx.xxxxx-xxxxx.DE
\\mydomain\NDPS-MJP1-0014-SamsungML3471.A-Printers.MJP1.xx-xxxx.xxxxx-xxxxx.DE
出力はPS-MJP1-0014-SamsungML3471