Converting Active Directory Thumbnailphotos to file

Started by galaara98, October 28, 2013, 02:24:58 PM

Previous topic - Next topic

galaara98

In our AD environment we have stored small images of some of our users in the thumbnailphoto user object attribute.
AD stores the bitmap as a String, with each byte represented by a number (0-255) separated by a space

in PowerShell I can retrieve this attribute and write it to a file with the set-content $path -encoding byte
sample powershell
   $user = Get-ADUser someuser -properties SamAccountName,ThumbnailPhoto
   $user.thumbnailphoto | Set-Content ("c:\ADexport\Photos\"+$User.samaccountname+".jpg") -Encoding byte

I am trying to duplicate this behavior in Winbatch, the following code succeeds but is EXTREMELY inefficient
Sample Winbatch
  If WinMetrics(-2) == 3 Then AddExtender("WWADS64I.DLL") ; 64-bit
  Else AddExtender("WWADS44I.DLL") ; 32-bit

ADSIPath = dsFindPath("LDAP://xxx.xxx.loc","(samaccountname=someuser)")
Photo = dsgetproperty(ADSIPath,"thumbnailphoto")
StrBytes = ItemCount(Photo," ")
Outfile = "C:\ADExport\Photos\" : dsgetproperty(ADSIPath,"samaccountname") : "-winbatch.jpg"
binBuf = BinaryAlloc(StrBytes+100)
For i = 1 to StrBytes
   BinaryPoke(BinBuf,i-1,itemextract(i,Photo," "))
Next I

BinaryWrite( BinBuf, OutFile )         ; Writes a binary buffer to a file.
BinaryFree(BinBuf)

I have tons of experience with winbatch going back years, however I don't often work with bin buffers, so perhaps there is a much more efficient way to convert the string into a binary file.  Does anyone have some ideas on this?

==============
example of string as exist in AD (this is the full string and when converted and written to a file, would be a picture)

255 216 255 224 0 16 74 70 73 70 0 1 1 1 0 96 0 96 0 0 255 225 0 90 69 120 105 102 0 0 77 77 0 42 0 0 0 8 0 5 3 1 0 5 0 0 0 1 0 0 0 74 3 3 0 1 0 0 0 1 0 0 0 0 81 16 0 1 0 0 0 1 1 0 0 0 81 17 0 4 0 0 0 1 0 0 14 196 81 18 0 4 0 0 0 1 0 0 14 196 0 0 0 0 0 1 134 160 0 0 177 143 255 219 0 67 0 2 1 1 2 1 1 2 2 2 2 2 2 2 2 3 5 3 3 3 3 3 6 4 4 3 5 7 6 7 7 7 6 7 7 8 9 11 9 8 8 10 8 7 7 10 13 10 10 11 12 12 12 12 7 9 14 15 13 12 14 11 12 12 12 255 219 0 67 1 2 2 2 3 3 3 6 3 3 6 12 8 7 8 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 255 192 0 17 8 0 96 0 96 3 1 34 0 2 17 1 3 17 1 255 196 0 31 0 0 1 5 1 1 1 1 1 1 0 0 0 0 0 0 0 0 1 2 3 4 5 6 7 8 9 10 11 255 196 0 181 16 0 2 1 3 3 2 4 3 5 5 4 4 0 0 1 125 1 2 3 0 4 17 5 18 33 49 65 6 19 81 97 7 34 113 20 50 129 145 161 8 35 66 177 193 21 82 209 240 36 51 98 114 130 9 10 22 23 24 25 26 37 38 39 40 41 42 52 53 54 55 56 57 58 67 68 69 70 71 72 73 74 83 84 85 86 87 88 89 90 99 100 101 102 103 104 105 106 115 116 117 118 119 120 121 122 131 132 133 134 135 136 137 138 146 147 148 149 150 151 152 153 154 162 163 164 165 166 167 168 169 170 178 179 180 181 182 183 184 185 186 194 195 196 197 198 199 200 201 202 210 211 212 213 214 215 216 217 218 225 226 227 228 229 230 231 232 233 234 241 242 243 244 245 246 247 248 249 250 255 196 0 31 1 0 3 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 1 2 3 4 5 6 7 8 9 10 11 255 196 0 181 17 0 2 1 2 4 4 3 4 7 5 4 4 0 1 2 119 0 1 2 3 17 4 5 33 49 6 18 65 81 7 97 113 19 34 50 129 8 20 66 145 161 177 193 9 35 51 82 240 21 98 114 209 10 22 36 52 225 37 241 23 24 25 26 38 39 40 41 42 53 54 55 56 57 58 67 68 69 70 71 72 73 74 83 84 85 86 87 88 89 90 99 100 101 102 103 104 105 106 115 116 117 118 119 120 121 122 130 131 132 133 134 135 136 137 138 146 147 148 149 150 151 152 153 154 162 163 164 165 166 167 168 169 170 178 179 180 181 182 183 184 185 186 194 195 196 197 198 199 200 201 202 210 211 212 213 214 215 216 217 218 226 227 228 229 230 231 232 233 234 242 243 244 245 246 247 248 249 250 255 218 0 12 3 1 0 2 17 3 17 0 63 0 253 215 242 125 197 30 79 184 164 85 39 255 0 213 65 7 215 244 174 115 218 184 190 79 184 163 201 231 239 10 106 161 221 215 244 172 223 22 120 162 215 194 58 68 183 151 114 172 113 70 51 206 50 199 176 30 245 18 106 42 236 116 225 41 201 66 26 182 104 204 233 110 133 164 101 85 29 73 192 2 169 141 122 207 113 11 50 190 59 168 200 175 32 213 126 50 73 226 123 223 153 132 48 41 249 99 7 175 215 222 186 143 13 235 214 17 91 199 190 104 193 113 158 72 21 192 177 240 155 247 54 61 250 156 63 90 141 53 42 201 221 244 71 125 111 125 21 211 5 87 92 158 128 240 106 199 147 142 226 185 219 121 98 186 132 60 110 172 167 161 82 8 63 74 91 127 21 199 97 126 182 215 18 0 175 128 172 123 31 122 218 56 168 183 105 104 121 82 193 203 94 78 157 14 135 202 247 20 171 14 91 168 164 72 203 1 140 243 237 94 95 241 83 246 157 211 188 27 116 218 78 131 23 252 36 26 243 101 68 48 100 197 9 3 146 204 56 56 238 1 192 238 69 86 35 17 26 107 204 227 87 122 35 208 124 81 226 141 55 193 26 67 223 106 119 112 218 219 71 252 78 113 147 232 7 115 236 43 231 207 136 31 181 22 187 241 58 238 109 35 193 22 147 91 90 131 229 207 122 248 86 81 220 150 60 70 49 216 101 189 171 153 241 118 139 173 120 210 232 106 190 47 185 184 212 238 228 221 246 109 42 209 138 198 14 50 17 156 112 160 241 156 126 44 221 250 216 180 20 210 236 12 22 241 64 150 202 177 136 109 81 68 105 25 13 150 57 30 188 118 237 239 94 77 74 243 168 253 237 187 47 243 58 169 210 73 93 111 221 255 0 151 234 207 116 179 248 139 161 222 228 67 172 233 110 71 85 251 90 2 63 2 115 90 176 221 173 196 74 241 186 188 108 50 172 164 16 126 132 87 136 120 19 195 191 19 60 59 241 110 194 203 197 186 175 130 255 0 176 53 45 58 229 225 139 71 77 73 46 160 158 35 22 55 73 53 203 43 161 243 28 227 96 35 0 103 2 189 178 198 36 181 182 88 215 203 227 36 236 93 161 137 57 39 30 228 215 175 10 201 252 77 39 234 114 171 53 116 135 73 114 33 82 204 66 170 2 196 177 224 1 212 154 249 27 246 135 248 243 47 143 181 169 210 201 202 88 90 185 88 6 113 188 14 175 143 83 215 242 175 110 253 176 254 35 127 194 180 248 7 171 221 163 249 119 23 166 59 40 57 193 38 70 249 177 255 0 0 15 95 19 71 168 127 106 88 11 235 151 17 195 25 35 27 176 88 127 133 121 217 149 86 237 77 61 55 62 187 133 112 240 82 150 34 107 85 162 253 89 215 88 106 26 230 164 168 208 51 236 94 125 51 159 122 169 226 95 19 235 250 108 64 68 204 241 198 185 36 22 12 62 149 131 111 251 74 233 126 27 85 143 42 177 39 203 134 203 113 248 213 11 159 218 107 195 215 243 188 210 77 111 228 238 193 77 199 36 255 0 90 243 163 74 93 81 250 60 107 83 146 248 141 255 0 6 126 208 254 34 240 174 164 239 33 188 104 55 97 149 206 224 15 173 123 87 130 254 48 55 139 195 220 204 204 112 160 46 56 29 57 205 120 53 175 237 99 225 41 25 97 117 75 128 199 99 199 128 84 126 29 235 174 211 60 117 166 219 105 175 121 165 69 178 213 193 60 0 70 79 124 122 86 53 212 173 162 104 227 169 70 140 165 118 211 252 207 165 124 29 251 64 201 14 133 10 189 188 247 140 159 187 81 10 134 148 17 208 96 145 219 249 86 7 130 126 30 38 153 106 179 11 51 104 111 27 205 149 8 253 252 172 199 57 98 121 239 223 167 106 240 47 135 63 29 98 211 190 34 218 163 186 44 114 220 68 121 60 71 243 237 39 240 4 212 23 159 180 197 207 143 63 105 187 99 97 253 167 58 233 250 170 90 196 169 152 237 45 161 14 17 139 19 195 51 140 146 61 192 172 214 51 146 9 84 213 237 249 106 124 134 35 135 22 35 21 82 88 119 203 4 175 183 94 137 122 159 64 62 173 11 201 51 225 99 17 202 200 0 61 0 56 174 114 235 84 213 181 89 238 85 101 138 218 4 147 116 45 0 220 236 160 158 31 112 199 35 29 58 122 214 150 135 164 38 179 115 115 43 150 101 89 155 3 183 92 213 173 122 242 29 18 208 33 64 187 184 244 197 123 180 48 81 112 246 213 30 135 193 212 197 201 73 211 138 212 246 191 20 89 88 106 254 55 209 225 187 72 229 115 99 122 209 171 46 120 221 110 24 143 67 131 250 215 23 241 107 226 222 153 240 159 94 134 197 188 53 54 160 178 64 178 249 208 97 21 114 72 219 247 121 56 25 235 222 174 107 183 205 168 252 99 208 33 0 49 135 68 212 166 62 160 121 182 131 211 250 246 239 218 255 0 246 211 196 196 137 247 0 127 133 241 92 213 177 243 132 125 156 18 245 255 0 128 116 225 169 194 233 203 85 219 111 196 249 79 246 226 253 169 188 59 241 19 225 181 166 131 167 71 53 166 171 165 223 253 190 242 198 71 13 37 188 66 6 8 205 131 129 184 202 8 207 92 87 228 215 237 45 251 83 235 186 44 87 177 92 248 150 238 205 209 90 86 134 214 0 254 68 61 7 176 227 241 230 190 227 253 163 180 75 211 251 112 252 89 185 213 229 99 253 181 53 138 91 49 57 2 213 109 34 10 163 240 10 63 10 249 111 246 146 253 152 237 76 247 210 217 91 69 113 30 161 25 73 139 174 245 149 123 3 244 224 143 113 93 24 88 211 171 81 58 169 55 167 77 15 171 173 132 149 28 58 250 182 137 164 247 190 173 39 234 124 153 240 195 246 164 186 241 158 164 96 79 23 106 51 144 197 7 218 84 170 177 238 61 51 223 21 234 94 60 248 161 169 120 43 65 142 250 85 153 173 137 255 0 95 130 87 63 90 227 124 9 251 14 221 233 250 149 188 22 150 207 12 17 76 92 22 45 243 49 227 39 60 158 56 244 175 209 77 107 246 20 183 248 135 255 0 4 194 241 22 143 246 16 117 184 33 18 90 78 7 239 67 169 206 126 153 175 86 110 141 22 163 20 188 206 156 179 7 141 171 135 156 170 59 89 43 62 237 236 181 63 43 47 127 108 159 23 105 26 155 62 159 170 216 217 163 185 33 238 89 112 70 120 224 255 0 90 246 239 130 127 240 83 223 23 218 73 111 103 125 119 167 234 54 170 193 93 109 230 200 42 122 145 212 215 202 154 215 192 91 144 183 250 110 161 3 65 120 24 35 147 128 240 186 30 217 224 131 239 94 147 251 41 126 193 26 151 198 29 98 211 79 211 46 165 211 205 147 124 179 149 12 88 146 73 39 166 5 60 78 2 132 233 251 73 45 59 159 55 12 102 99 10 252 178 189 251 31 167 94 23 248 133 23 138 124 47 164 235 182 241 178 180 242 38 224 27 57 36 231 25 252 43 217 190 26 248 59 196 242 124 119 211 52 185 99 77 43 78 125 66 59 152 182 199 190 91 232 67 9 11 111 32 124 164 2 112 191 157 124 185 174 248 34 227 246 100 253 151 53 109 45 245 20 186 212 180 68 75 200 229 126 135 100 138 206 61 112 87 112 171 191 240 72 63 142 87 159 15 111 254 40 107 94 44 255 0 132 151 198 23 183 55 54 122 181 189 245 189 187 58 67 17 180 121 174 158 73 79 16 196 138 33 200 207 68 232 66 156 124 165 92 4 106 183 52 244 139 251 246 62 234 134 46 173 12 45 90 178 90 184 165 109 181 219 87 229 115 244 207 225 94 176 179 105 247 96 145 185 164 87 62 249 31 253 106 139 226 125 224 187 180 137 99 1 155 119 65 95 157 207 255 0 5 166 240 127 133 180 76 199 226 45 18 201 154 53 45 20 9 37 228 185 3 177 3 105 53 192 120 135 254 10 217 226 31 137 182 238 254 25 240 175 196 127 22 69 47 8 109 108 90 218 218 95 197 20 130 63 58 245 35 139 155 195 170 81 131 126 118 208 252 170 84 23 182 246 146 146 95 61 79 208 79 217 75 227 199 137 238 62 56 106 63 240 154 235 26 28 215 58 110 135 121 111 110 108 141 204 138 36 50 195 242 239 148 100 228 170 145 128 189 243 94 167 7 143 156 175 50 13 199 140 131 222 191 37 127 224 167 150 90 167 196 239 134 219 60 51 183 207 159 90 91 157 205 110 178 226 44 57 36 171 131 142 74 244 25 175 207 253 91 195 30 54 240 246 151 115 119 113 226 63 13 195 5 160 38 65 246 91 39 144 0 118 156 47 148 88 225 176 56 29 72 29 77 113 79 2 234 107 25 37 229 173 255 0 51 101 136 81 122 166 223 127 233 31 178 223 240 82 141 78 109 39 226 238 143 169 69 33 70 213 52 237 174 171 193 204 108 84 103 240 35 242 175 35 208 181 133 109 57 101 184 158 89 136 0 225 207 8 61 107 228 31 217 23 196 94 33 211 60 59 170 248 111 91 58 27 189 172 171 171 69 44 54 113 91 234 59 165 84 67 28 219 2 146 138 168 10 171 46 84 179 243 243 98 189 189 60 65 113 168 90 173 164 114 136 131 225 89 201 232 43 208 194 209 229 138 132 159 204 251 172 155 29 25 209 77 244 211 238 54 239 62 53 216 105 30 54 18 92 74 144 233 186 106 27 139 153 114 23 42 14 2 228 244 201 32 253 1 175 99 213 191 224 169 30 28 240 15 130 230 211 69 228 112 64 208 157 206 78 225 32 113 233 248 215 203 255 0 29 116 77 11 90 248 77 54 141 97 108 111 238 238 28 27 137 15 126 71 31 79 111 65 95 11 120 178 13 75 196 90 213 231 134 164 130 113 167 219 162 198 168 16 252 131 56 199 211 29 171 170 157 10 53 155 213 232 119 227 51 234 152 85 104 69 74 255 0 129 247 79 133 165 240 175 141 254 36 223 157 65 44 117 75 77 76 173 245 133 210 129 137 224 148 18 3 14 204 164 50 158 255 0 47 189 119 158 36 154 235 224 198 146 91 194 87 81 88 219 202 55 60 107 10 169 35 217 171 231 191 0 252 13 178 209 62 7 105 243 104 183 146 29 103 77 140 72 240 18 67 76 50 73 3 166 49 253 42 165 151 237 15 113 226 29 22 123 9 164 119 150 20 36 169 28 140 117 171 84 163 56 90 14 233 110 191 224 28 53 243 10 118 78 164 109 39 170 127 165 207 110 210 188 109 23 237 14 19 195 122 254 165 45 174 157 172 56 177 187 184 88 218 103 140 63 28 42 242 73 56 3 29 205 125 19 15 252 19 3 73 241 223 192 109 58 29 78 45 126 223 76 188 203 199 160 220 106 23 127 97 96 141 178 55 154 8 165 88 101 151 106 3 185 149 136 0 96 241 95 158 126 49 253 168 175 63 100 63 135 80 120 207 76 181 138 231 86 158 232 69 101 20 173 181 65 100 125 204 120 236 7 167 122 253 30 185 255 0 130 141 124 68 248 135 224 111 14 106 26 23 195 184 116 45 34 227 79 183 184 183 26 141 181 219 74 177 201 2 109 14 135 24 96 188 112 248 201 39 154 243 218 148 46 169 173 47 247 88 241 115 44 210 19 195 60 51 150 178 119 123 236 150 159 123 44 252 62 255 0 130 87 91 248 90 213 102 240 221 183 132 60 56 98 32 153 103 211 86 39 111 70 67 28 108 199 191 36 142 71 95 76 111 141 31 178 135 197 125 19 198 222 20 178 240 247 136 44 245 221 43 81 188 48 107 146 193 2 163 105 209 99 34 96 38 112 100 92 134 12 169 134 25 82 1 231 29 7 236 195 251 66 124 64 248 203 241 91 199 179 120 218 223 68 178 178 62 31 181 135 76 179 177 180 150 24 34 16 93 72 229 155 204 118 102 118 23 7 39 32 98 53 192 29 253 175 193 58 147 6 222 22 28 24 207 49 183 191 76 110 63 202 165 85 156 93 230 174 252 207 7 7 95 216 84 231 130 79 117 170 77 106 173 179 93 15 207 175 218 199 226 237 135 195 173 3 71 91 193 112 35 213 110 205 164 114 198 126 228 165 24 199 145 215 107 48 9 184 112 165 129 56 80 72 249 147 71 248 75 225 95 30 252 101 208 237 124 49 241 81 52 237 111 93 212 238 109 231 183 190 183 188 181 211 25 173 149 204 172 102 138 72 203 224 108 42 119 46 124 193 212 103 58 223 240 85 255 0 26 120 135 68 248 95 225 102 208 230 134 222 234 109 91 151 120 98 148 108 242 102 206 60 197 56 198 58 168 200 205 124 27 111 241 43 198 158 28 182 186 189 184 241 183 136 116 153 174 36 193 143 76 189 123 127 181 144 58 183 150 85 120 245 60 140 215 74 194 58 169 201 74 205 166 189 31 115 130 117 161 25 69 73 54 186 159 106 124 12 241 197 230 147 241 27 82 181 155 90 248 135 227 63 177 222 73 167 106 23 255 0 96 187 159 73 89 252 194 134 67 33 44 160 110 83 135 36 240 122 144 114 125 19 226 247 139 175 108 60 50 145 233 74 205 118 236 71 202 113 145 235 159 79 241 175 128 96 253 168 117 141 79 224 133 213 190 163 226 95 22 77 226 4 214 227 150 11 185 245 155 233 164 189 179 16 56 107 118 38 95 44 34 72 81 176 16 51 121 152 206 7 31 81 124 8 253 165 44 190 53 120 91 70 212 231 146 52 212 45 88 91 234 16 99 2 57 54 242 113 221 91 27 135 212 142 213 189 12 42 165 43 203 85 231 111 209 35 219 202 49 215 140 168 222 221 191 83 163 189 211 124 122 158 12 216 222 33 211 52 107 87 67 230 8 32 45 59 251 23 99 245 232 59 215 132 120 131 88 241 4 26 177 58 95 136 150 107 152 14 64 17 144 199 28 115 134 197 125 79 227 111 15 166 191 225 164 86 191 17 137 70 22 76 103 229 228 228 246 246 252 107 230 255 0 19 124 56 184 209 245 118 107 75 136 174 202 228 159 151 105 247 197 122 120 87 27 59 126 71 165 140 149 88 193 40 43 175 93 74 119 159 180 199 196 52 49 173 253 180 49 202 8 87 185 181 112 162 97 140 2 87 177 245 35 173 117 222 26 241 37 183 136 157 117 23 68 142 238 77 203 56 83 140 156 99 56 247 205 121 182 188 124 171 118 114 164 36 99 59 179 208 244 169 190 24 78 117 29 100 90 164 197 97 8 215 23 115 103 152 226 85 44 199 61 1 192 192 165 58 112 138 110 43 238 62 113 98 234 74 162 83 127 127 114 143 237 233 226 203 175 18 105 122 44 16 47 153 164 105 176 190 90 50 72 73 221 138 144 254 135 8 184 255 0 127 240 175 220 223 130 127 24 245 109 119 246 95 248 71 231 107 172 250 205 239 129 116 57 174 161 18 7 119 150 75 8 153 153 148 103 105 4 28 131 130 51 95 207 23 195 47 218 91 95 248 107 226 145 174 105 122 149 205 150 163 19 253 162 9 227 112 30 41 57 25 25 24 232 72 62 185 174 139 224 31 237 81 121 225 31 140 90 158 169 172 73 38 173 99 226 11 151 189 212 197 228 158 115 205 59 146 207 41 103 201 50 22 37 139 30 73 234 107 202 196 97 231 56 114 171 104 239 126 254 71 39 214 121 170 185 207 169 253 32 233 126 39 158 247 74 84 185 152 202 205 111 36 32 242 160 16 153 199 63 67 85 252 3 169 52 210 100 157 203 176 142 164 241 159 94 158 157 43 242 23 246 92 255 0 130 159 248 87 225 255 0 199 253 46 251 80 241 15 143 31 195 150 198 84 186 180 75 185 174 237 35 18 68 232 27 200 50 97 182 150 82 48 14 49 144 50 5 126 146 126 206 255 0 181 103 129 126 50 73 107 23 134 252 97 161 106 247 87 176 153 18 208 93 34 95 99 60 230 23 196 163 3 168 35 138 242 234 211 148 119 234 117 211 148 101 162 119 63 157 127 24 124 79 213 252 91 172 77 168 106 122 182 163 169 221 76 119 73 113 119 114 243 200 255 0 139 19 249 87 37 169 234 242 234 179 239 145 201 199 10 9 225 69 86 121 9 93 185 56 244 161 35 103 201 0 144 163 39 216 116 175 169 140 18 86 71 140 221 245 98 179 156 117 200 29 43 234 95 248 38 213 141 183 137 244 175 31 104 183 27 183 79 13 149 228 78 62 244 70 54 153 75 47 190 100 95 202 190 89 232 125 133 123 119 236 13 241 21 124 9 241 187 202 148 129 109 171 217 189 164 128 247 57 12 63 81 250 212 212 139 113 178 59 48 53 20 43 197 203 111 243 62 170 214 124 77 226 79 12 232 115 105 55 22 235 127 103 34 231 237 112 176 13 145 200 27 9 200 207 124 103 154 241 235 175 19 94 232 240 94 72 209 93 155 151 99 183 116 68 20 25 255 0 235 159 202 190 137 241 21 130 106 113 249 144 50 178 184 224 30 131 235 94 79 241 39 77 157 242 162 45 170 56 44 15 24 173 240 241 109 88 244 177 181 164 181 82 216 241 109 67 80 213 124 85 34 90 146 109 45 243 243 179 96 185 28 240 57 239 215 158 149 210 235 8 158 0 248 13 226 203 248 193 18 92 218 11 36 61 11 121 236 35 61 122 252 172 223 149 68 154 43 166 160 73 206 208 122 215 5 251 77 124 69 91 157 54 199 195 86 175 148 129 254 213 117 131 252 88 194 47 224 11 31 196 86 245 168 242 195 212 241 225 87 222 114 103 141 135 35 28 244 169 161 156 3 147 195 22 235 236 70 13 65 69 114 88 196 239 126 14 92 46 173 227 253 39 75 145 101 146 27 201 130 75 229 77 229 51 47 36 144 74 144 14 7 92 26 250 223 226 151 237 121 225 191 217 51 226 118 181 224 143 135 94 14 208 52 173 91 194 250 132 150 114 120 167 95 182 143 91 212 46 46 99 59 90 72 22 84 54 240 40 57 10 25 36 111 226 5 9 218 62 74 253 152 109 82 251 246 130 240 148 50 28 71 46 160 136 231 253 147 144 127 74 63 105 253 99 251 99 246 147 248 129 114 172 205 13 199 137 181 41 80 19 156 43 93 72 71 232 107 57 208 82 91 219 208 168 206 207 109 79 255 217

td

A mix of the ADSI extender and a little COM should speed things up quite a bit.

Here is a completely untested example

Code (winbatch) Select

ADSIPath = dsFindPath("LDAP://xxx.xxx.loc","(samaccountname=someuser)")
Outfile = "C:\ADExport\Photos\" : dsgetproperty(ADSIPath,"samaccountname") : "-winbatch.jpg"

objUser = ObjectGet(AdSIPath)
Photo   = objUser.Get("thumbnailphoto")
objUser = 0
hPhoto  = BinaryAllocArray( Photo )
BinaryWrite( hPhoto , OutFile )       
BinaryFree(hPhoto )
"No one who sees a peregrine falcon fly can ever forget the beauty and thrill of that flight."
  - Dr. Tom Cade

galaara98

Quote from: td on October 28, 2013, 02:56:39 PM
A mix of the ADSI extender and a little COM should speed things up quite a bit.

Here is a completely untested example

Code (winbatch) Select

ADSIPath = dsFindPath("LDAP://xxx.xxx.loc","(samaccountname=someuser)")
Outfile = "C:\ADExport\Photos\" : dsgetproperty(ADSIPath,"samaccountname") : "-winbatch.jpg"

objUser = ObjectGet(AdSIPath)
Photo   = objUser.objUser.Get("thumbnailphoto")
objUser = 0
hPhoto  = BinaryAllocArray( Photo )
BinaryWrite( hPhoto , OutFile )       
BinaryFree(hPhoto )


beautiful, had to make one minor adjustment to your code
OLD:
   Photo   = objUser.objUser.Get("thumbnailphoto")

NEW:
   Photo   = objUser.Get("thumbnailphoto")

td

Quote from: galaara98 on October 28, 2013, 03:37:54 PM

beautiful, had to make one minor adjustment to your code
OLD:
   Photo   = objUser.objUser.Get("thumbnailphoto")

NEW:
   Photo   = objUser.Get("thumbnailphoto")

Pasting error.  One of the dangers of posting an untried script snippet.  Glad you figured it out anyway.  We will add a request to provide an option to  change how the extender returns binary octet data.  If the binary data was in the form of a hex string, you could use a single call to BinaryPokeHex to convert to a binary buffer and then file.  It should be as fast as or maybe even faster than the COM solution.   
"No one who sees a peregrine falcon fly can ever forget the beauty and thrill of that flight."
  - Dr. Tom Cade