posted 19/06/06

Bra PowerShell kommandon – del 2

By Fredrik Wall

flagse 

Excecution Policy

PowerShell är ett kraftfullt shell som även kan agera som skriptmotor.
Men för att detta ska funka så måste man ändra säkerhetsinställningarna (execution policy).
 

Out of the box eller out of the installation så är PowerShell inställt så att det ändast funkar i interaktivt läge (restricted).
 

För att se vilket säkerhetsläge man har PowerShell i på den dator man sitter vid så skriver man

Get-ExecutionPolicy
 

De 4 olika ”execution policyna” är: 

  • Restricted
    Inga skript fungerar att köra. PowerShell fungerar endast i interaktivt läge.

  • AllSigned
    Endast skript som är signerade av en ”trusted publisher” kan köras.

  • RemoteSigned
    Nerladdade skript måste vara signerade av en ”trusted publisher” innan de kan köras.

  • Unrestricted
    Alla PowerShell skript kan köras.

För att ändra säkerhetsläge skriver man t ex

Set-ExecutionPolicy AllSigned 

 

PowerShell historia

Get-History är en Cmdlet som visar PowerShell historia. Den visar en historia av vilka kommandon som använts.

 

För att få fram en lista på de 64 senaste kommandona så skriver man bara
Get-History

eller något av följande aliases
ghy
h
history 

Om du nu har en lista på kommandon som du använt och skulle vilja använda t ex kommando nummer 14 (id) på listan så skriver du bara Invoke-History 14, så körs ditt tidigare kommando igen.
 

Om det skulle vara så att du använder 10-20 kommandon ofta och skulle vilja spara undan dessa för att senare kunna plocka fram dem igen för att köra dem. Så går det alldelses utmärkt att exportera history listan.

Get-History | Export-Clixml ”c:\skript\pshistory.xml”

Nästa gång du vill använda samma kommandon kör du bara
Import-Clixml "c:\skript\pshistory.xml" | Add-History

Get-History
Invoke-History (id)

Lista språk
Get-Culture är en cmdlet som bara gör en sak, tar fram vilket språk man har på OSet.
 

PS C:\Documents and Settings\Fredrik> get-culture

LCID             Name             DisplayName
—-                 —-                  ———–
1053              sv-SE             Swedish ( Sweden)

 

Technorati-taggar:

Andra (Bloggar.se) skriver om:
No Comments
read more
posted 18/06/06

Bra PowerShell kommandon – del 1

By Fredrik Wall

flagse 

Om du har installerat PowerShell så kan det vara lite nice att lära sig lite enkla kommandon och trix.

 

 

Tjänster

 

Stoppa en tjänst

Stop-Service -displayname ”print spooler”
eller med alias
Spsv -displayname ”print spooler”

 

Starta en tjänst

Start-Service -displayname ”print spooler”
eller med alias
Sasv -displayname ”print spooler”

 

Starta om en tjänst

Restart-Service -displayname ”print spooler” 

 

Processer

Stoppa en process

stop-Process -processname notepad
eller med alias

spps -processname notepad
kill -processname notepad
dessutom kan man använda wildcards

stop-Process -processname notep*

 

 Aliases


En av de fina fördelarna som jag ser med PowerShell är PowerShell Aliases.
För att lista alla aliases skriver man Get-Alias
Om man bara vill lista alla aliases som börjar på t ex s skriver man Get-Alias -name s*

Man kan dessutom skapa egna aliases istället för alla långa namn på Cmdlets.
Ett bra exempel som finns på Microsofts websidor är att skapa ett alias istället för Get-ChildItem.

För att få mer info om vad Get-ChildItem gör skriv help Get-ChildItem.

 

För att skapa ett alias som håller i sig mellan olika PowerShell sessioner måste vi göra följande:
Först måste vi ta reda på vart PowerShell konfigurations katalogen finns med en profilfil.

Get-Variable profile | Format-List

 

Name        : PROFILE

Description :

Value       : C:\Documents and Settings\Fredrik\My Documents\PSConfiguration\Mi

              crosoft.PowerShell_profile.ps1

Options     : None

Attributes  : {}

 

Först skapar vi en katalog som heter PSConfiguration under My Documents.
Sedan skapar vi filen Microsoft.PowerShell_profile.ps1 och skriver in följande:

New-Alias show Get-ChildItem

 

Spara och nästa gång du kör PowerShell så finns ditt lilla alias med.

 

 

Technorati-taggar:

Andra (Bloggar.se) skriver om:

No Comments
read more
posted 18/06/06

Mappa enheter efter grupptillhörighet

By Fredrik Wall
flagse 
Här kommer nästa subrutin som kollar i AD grupper och utför något efter det.
Denna mappar upp enheter.
 
 
 
Sub MapDriveWithGroup(sLetter, sNetshare, sGroup)
‘ Namn: MapDriveWithGroup
‘ Skriven Av: Fredrik Wall, fredrik.wall@edsbacka.net, http://itbloggen.se/cs/blogs/dalle

‘ Syfte: Koppla upp nätverksenhet efter grupptillhörighet
‘ Användning: MapDriveWithGroup "X:","\\server\share","grupp"
‘ Kommentar: Funkar i Win2000/2003 ActiveDirectory

On Error Resume Next

Dim WshNetwork, objADSysInfo, objUser, objGroup
Dim strUser, strGroup

Set WshNetwork = CreateObject(“WScript.Network”)
Set objADSysInfo = CreateObject(“ADSystemInfo”)

strUser = objADSysInfo.UserName

Set objUser = GetObject(“LDAP://” & strUser)

For Each strGroup in objUser.memberOf
 
  Set objGroup = GetObject(“LDAP://” & strGroup)

If LCase(objGroup.CN) = LCase(sGroup) Then
   WshNetwork.RemoveNetworkDrive sLetter
   WshNetwork.MapNetworkDrive sLetter , sNetShare
End If
 
Next
End Sub

 

Andra (Bloggar.se) skriver om: , ,
No Comments
read more
posted 14/06/06

Tech Ed 2006 – Webcast Series – Scripting

By Fredrik Wall

flagse 

Scripting Secrets of Exchange Server 2003 (Level 300)
Exchange Server 2007 Management Shell and Scripting (Level 300)

 


Technorati-taggar: ,,

Andra (Bloggar.se) skriver om: , ,
No Comments
read more
posted 14/06/06

Webcasts om skriptning

By Fredrik Wall

flagse 

Då jag är en skript geek så har jag försökt att hitta webcasts om detta.
Inte en högprioriterad sak hos Microsoft eller hos någon annan heller.

Men här kommer några som jag hittat:

 

Technorati-taggar: ,

Andra (Bloggar.se) skriver om: ,
No Comments
read more
posted 14/06/06

Mappa skrivare efter grupptillhörighet

By Fredrik Wall

flagse

Många av de skriptfrågor som jag får handlar om grupptillhörighet och skrivare i AD.
Därför har jag skapat en liten subrutin som sköter detta.

Liten men väldigt smidig!

 

 

Sub AddPrinterWithGroup(sPrinter, sGroup)
‘ Namn: MapDriveWithGroup
‘ Skriven Av: Fredrik Wall
‘ Syfte: Koppla upp nätverksskrivare efter grupptillhörighet
‘ Användning: AddPrinterWithGroup "
\\printerserver\skrivarkö","grupp"
‘ Kommentar: Funkar i Win2000/2003 ActiveDirectory
On Error Resume Next

Dim WshNetwork, objADSysInfo, objUser, objGroup
Dim strUser, strGroup

Set WshNetwork = CreateObject("WScript.Network")
Set objADSysInfo = CreateObject("ADSystemInfo")

strUser = objADSysInfo.UserName
Set objUser = GetObject("LDAP://" & strUser)
For Each strGroup in objUser.memberOf

Set objGroup = GetObject("LDAP://" & strGroup)

If LCase(objGroup.CN) = LCase(sGroup) Then
  WshNetwork.RemovePrinterConnection sPrinter
  WshNetwork.AddWindowsPrinterConnection sPrinter
End If

Next
End Sub

 

Andra (Bloggar.se) skriver om: , ,
No Comments
read more