Powershell: Re-Install Printer depending on Username -
i'm trying learn powershell , have no experience in script language @ (well, except batch bit).
what i'm trying run batch command -> if "%username%"=="admin" goto admin powershell command , afterwards reinstall users default printer. reason why need goto because want use same script several users. have far batch/powershell hybrid
if "%username%"=="admin" goto admin :admin powershell (new-object -comobject wscript.network).removeprinterconnection("\\server\adprinter") (new-object -comobject wscript.network).addwindowsprinterconnection("\\server\adprinter") $printer = get-wmiobject -query "select * win32_printer sharename = 'adprinter'" $printer.setdefaultprinter() exit goto eof i'd whole thing in powershell don't it. read can "goto" in powershell if-loop. example that's have
$user = [environment]::username if ($user = admin) {""} but how run commands now? , how do loop other usernames?
thank help!
edit:
here whole script have far. need "goto" because have more 1 user, , each of them needs own printer. nice transform every batch command powershell command.
@echo off if "%username%"=="user1" goto user1 if "%username%"=="user2" goto user2 if "%username%"=="user3" goto user3 if "%username%"=="user4" goto user4 if "%username%"=="user5" goto user5 :user1 powershell (new-object -comobject wscript.network).removeprinterconnection("\\server\printer1") (new-object -comobject wscript.network).addwindowsprinterconnection("\\server\printer1") $printer = get-wmiobject -query "select * win32_printer sharename = 'printer1'" $printer.setdefaultprinter() exit goto eof :user2 powershell (new-object -comobject wscript.network).removeprinterconnection("\\server\printer2") (new-object -comobject wscript.network).addwindowsprinterconnection("\\server\printer2") $printer = get-wmiobject -query "select * win32_printer sharename = 'printer2'" $printer.setdefaultprinter() exit goto eof :user3 powershell (new-object -comobject wscript.network).removeprinterconnection("\\server\printer3") (new-object -comobject wscript.network).addwindowsprinterconnection("\\server\printer3") $printer = get-wmiobject -query "select * win32_printer sharename = 'printer3'" $printer.setdefaultprinter() exit goto eof :user4 powershell (new-object -comobject wscript.network).removeprinterconnection("\\server\printer4") (new-object -comobject wscript.network).addwindowsprinterconnection("\\server\printer4") $printer = get-wmiobject -query "select * win32_printer sharename = 'printer4'" $printer.setdefaultprinter() exit goto eof :user5 powershell (new-object -comobject wscript.network).removeprinterconnection("\\server\printer5") (new-object -comobject wscript.network).addwindowsprinterconnection("\\server\printer5") $printer = get-wmiobject -query "select * win32_printer sharename = 'printer5'" $printer.setdefaultprinter() exit goto eof :eof exit
i agree arco use of hashtables , issue perfect it. take @ code here should give point powershell start.
$drac = @{ } import-csv \\remoteserver\share\folder\powershell-scripts\connect-rac.csv | foreach-object { $drac[$_.servername] = $_.imm } if @ above takes csv file , loads hashtable
and below if how code used, make computer name , if matches return hashtable value.
if ($drac.contains($computername)) { write-host "servername : $computername" $url = $drac[$computername] $ie = new-object -com 'internetexplorer.application' $ie.navigate2("http:\\$url") $ie.visible = $true } see if helps you.
Comments
Post a Comment