posted
19/06/06
By Fredrik Wall
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:
PowerShell
Andra (Bloggar.se) skriver om:
PowerShell
posted
18/06/06
By Fredrik Wall
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:
PowerShell
Andra (Bloggar.se) skriver om:
PowerShell
posted
18/06/06
By Fredrik Wall
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:
VBScript,
Scripting,
Active Directory
posted
14/06/06
By Fredrik Wall
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:
Webcast,
Scripting
Andra (Bloggar.se) skriver om:
Webcast,
Scripting
posted
14/06/06
By Fredrik Wall
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:
VBScript,
Scripting,
Active Directory