JEAZ The bump and grind of daily SysAdmin life


Remove Workflow Status Columns

Working in SharePoint 2010, I used the Content and Structure Tool to copy list items from a list with workflows to one without

Unfortunately, the workflow status column was also created in the destination list.
Clearly, this wasn't a useful column and I didn't want it in my fields.

How do you remove a workflow status column?
It's pretty easy with some PowerShell

PS C:\> $web = Get-SPWeb
PS C:\> $list = $web.Lists["List Name"]
PS C:\> $field = $list.Fields["Workflow Status Column Name"]
PS C:\> $field.Hidden
PS C:\> $field.ReadOnlyField
PS C:\> $field.ReadOnlyField = $false
PS C:\> $field.Update()

Once the field is no longer a ReadOnlyField you can delete it like any other column
You can also throw in $field.Delete() at the end


Set all user’s home directories with PowerShell

Get-ADUser -SearchBase "OU=Users,DC=test,DC=ad" | % { Set-ADUser $_ -HomeDrive "H:" -HomeDirectory ('\\fileserver\home\' + $_.SamAccountName) }

Let me explain how this works briefly:

Get-ADUser = Get users from AD
-SearchBase "ldap" = Root of the tree in AD to get users from
| = Pipe, provide input of query to...
% = ForEach item piped from query
Set-ADUser = Write changes to AD
$_ = item piped from query
-HomeDrive "X:" = Sets home drive letter, requires colon and quotes!!
-HomeDirectory = Home drive path
$_.SamAccountName = item piped from query's property "SamAccountName" aka username.

We chose to use the username for the folders in the home directory storage, you don't necessarily have to.

Notice the (paranthesis) which tell Powershell to take my string \\fileserver\home\ and variable $_.SamAccountName and mush them together, passing both as the final string to -HomeDirectory

Thanks #powershell on Freenode and MS documentation examples

Technet on Set-ADUser:

Tagged as: No Comments